// Path: src/main/java/model/IliasFile.java
// @Slf4j
// public class IliasFile extends IliasTreeNode {
// 
// 	private static final long serialVersionUID = -6286982393008142116L;
// 	private final int size;
// 	private final String extension;
// 	private final String sizeLabel;
// 	
// 	public IliasFile(String name, String url, IliasFolder parentFolder, int size, String sizeLabel,
// 			String extension) {
// 		super(name, url, parentFolder);
// 		this.size = size;
// 		this.extension = extension;
// 		this.sizeLabel = sizeLabel;
// 	}
// 
// 	public int getSize() {
// 		return size;
// 	}
// 
// 	public boolean isIgnored() {
// 		return Settings.getInstance().getFileStates().isIgnored(createStoreKey()) != -1;
// 	}
// 
// 	public void setIgnored(boolean b) {
// 		if (b) {
// 			Settings.getInstance().getFileStates()
// 					.storeIgnoredFileSize(createStoreKey(), getSize());
// 		} else {
// 			Settings.getInstance().getFileStates().removeIgnoredFileSize(createStoreKey());
// 		}
// 	}
// 
// 	private String createStoreKey() {
// 		String url = super.getUrl();
// 		Matcher matcher = Pattern.compile("(.*?)(\\d{3,})(.*)").matcher(url);
// 		String digits = "";
// 
// 		if (matcher.find()) {
// 			digits = matcher.group(2);
// 		} else {
// 			log.warn("StoreKey digits not found!");
// 		}
// 
// 		return digits;
// 	}
// 
// 	@Override
// 	public final ImageView getGraphic() {
// 		FileAppearanceManager appearanceManager = FileAppearanceManager.getInstance();
// 		if (isIgnored()) {
// 			return appearanceManager.getIgnoredPicture(getExtension());
// 		} else if (!(LocalFileStorage.getInstance().contains(this))) {
// 			return appearanceManager.getNotSynchronizedPicture(getExtension());
// 		} else {
// 			return appearanceManager.getNormalPicture(getExtension());
// 		}
// 	}
// 
// 	/**
// 	 * Returns the files {@link #extension}. e. g. "pdf" or "txt" <br>
// 	 * <b>NOT</b> .pdf !
// 	 * 
// 	 * @return {@link #extension}
// 	 */
// 	public String getExtension() {
// 		return extension;
// 	}
// 
// 	public String getSizeLabel() {
// 		return sizeLabel;
// 	}
// }
// 
// Path: src/main/java/model/IliasFolder.java
// public class IliasFolder extends IliasTreeNode {
// 	private static final long serialVersionUID = 6134132849917192741L;
// 	private final List<IliasTreeNode> childFolders;
// 
// 	public IliasFolder(String name, String url, IliasFolder parentDirectory) {
// 		super(name, url, parentDirectory);
// 		this.childFolders = new ArrayList<IliasTreeNode>();
// 	}
// 
// 	public List<IliasTreeNode> getChildNodes() {
// 		return childFolders;
// 	}
// 
// 	@Override
// 	public ImageView getGraphic() {
// 		if (LocalFileStorage.getInstance().isFolderSynchronized(this)) {
// 			return new ImageView("img/folder.png");
// 		} else {
// 			return new ImageView("img/folder_pdf_not_there.png");
// 		}
// 	}
// }
// 
// Path: src/main/java/model/IliasTreeNode.java
// public abstract class IliasTreeNode implements Serializable {
// 	private static final long serialVersionUID = -5666402232004312659L;
// 	private final String url;
// 	private final String name;
// 	private String nameChangedByUser;
// 	private final IliasFolder parentFolder;
// 
// 	public IliasTreeNode(String name, String url, IliasFolder parentFolder) {
// 		this.name = name;
// 		this.url = url;
// 		if (parentFolder != null) {
// 			parentFolder.getChildNodes().add(this);
// 		}
// 		this.parentFolder = parentFolder;
// 		this.nameChangedByUser = null;
// 	}
// 	
// 	public abstract ImageView getGraphic(); 
// 
// 	public String getUrl() {
// 		return url;
// 	}
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public void setNameChangedByUser(String nameChangedByUser) {
// 		this.nameChangedByUser = nameChangedByUser;
// 	}
// 
// 	public IliasFolder getParentFolder() {
// 		return parentFolder;
// 	}
// 
// 	public IliasTreeNode getRootCourse() {
// 		return getRoot(this);
// 	}
// 
// 	private IliasTreeNode getRoot(IliasTreeNode directory) {
// 		if (directory.getParentFolder() == null) {
// 			return directory;
// 		}
// 		return getRoot(directory.getParentFolder());
// 	}
// 
// 	@Override
// 	public String toString() {
// 		if (nameChangedByUser != null) {
// 			return nameChangedByUser;
// 		}
// 		return name;
// 	}
// 
// }


import java.util.ArrayList;
import java.util.List;
import model.IliasFile;
import model.IliasFolder;
import model.IliasTreeNode;

package model.persistance;



public class IliasTreeProvider {
	private static List<IliasFolder> allFiles = null;


// Path: src/main/java/model/IliasFile.java
// @Slf4j
// public class IliasFile extends IliasTreeNode {
// 
// 	private static final long serialVersionUID = -6286982393008142116L;
// 	private final int size;
// 	private final String extension;
// 	private final String sizeLabel;
// 	
// 	public IliasFile(String name, String url, IliasFolder parentFolder, int size, String sizeLabel,
// 			String extension) {
// 		super(name, url, parentFolder);
// 		this.size = size;
// 		this.extension = extension;
// 		this.sizeLabel = sizeLabel;
// 	}
// 
// 	public int getSize() {
// 		return size;
// 	}
// 
// 	public boolean isIgnored() {
// 		return Settings.getInstance().getFileStates().isIgnored(createStoreKey()) != -1;
// 	}
// 
// 	public void setIgnored(boolean b) {
// 		if (b) {
// 			Settings.getInstance().getFileStates()
// 					.storeIgnoredFileSize(createStoreKey(), getSize());
// 		} else {
// 			Settings.getInstance().getFileStates().removeIgnoredFileSize(createStoreKey());
// 		}
// 	}
// 
// 	private String createStoreKey() {
// 		String url = super.getUrl();
// 		Matcher matcher = Pattern.compile("(.*?)(\\d{3,})(.*)").matcher(url);
// 		String digits = "";
// 
// 		if (matcher.find()) {
// 			digits = matcher.group(2);
// 		} else {
// 			log.warn("StoreKey digits not found!");
// 		}
// 
// 		return digits;
// 	}
// 
// 	@Override
// 	public final ImageView getGraphic() {
// 		FileAppearanceManager appearanceManager = FileAppearanceManager.getInstance();
// 		if (isIgnored()) {
// 			return appearanceManager.getIgnoredPicture(getExtension());
// 		} else if (!(LocalFileStorage.getInstance().contains(this))) {
// 			return appearanceManager.getNotSynchronizedPicture(getExtension());
// 		} else {
// 			return appearanceManager.getNormalPicture(getExtension());
// 		}
// 	}
// 
// 	/**
// 	 * Returns the files {@link #extension}. e. g. "pdf" or "txt" <br>
// 	 * <b>NOT</b> .pdf !
// 	 * 
// 	 * @return {@link #extension}
// 	 */
// 	public String getExtension() {
// 		return extension;
// 	}
// 
// 	public String getSizeLabel() {
// 		return sizeLabel;
// 	}
// }
// 
// Path: src/main/java/model/IliasFolder.java
// public class IliasFolder extends IliasTreeNode {
// 	private static final long serialVersionUID = 6134132849917192741L;
// 	private final List<IliasTreeNode> childFolders;
// 
// 	public IliasFolder(String name, String url, IliasFolder parentDirectory) {
// 		super(name, url, parentDirectory);
// 		this.childFolders = new ArrayList<IliasTreeNode>();
// 	}
// 
// 	public List<IliasTreeNode> getChildNodes() {
// 		return childFolders;
// 	}
// 
// 	@Override
// 	public ImageView getGraphic() {
// 		if (LocalFileStorage.getInstance().isFolderSynchronized(this)) {
// 			return new ImageView("img/folder.png");
// 		} else {
// 			return new ImageView("img/folder_pdf_not_there.png");
// 		}
// 	}
// }
// 
// Path: src/main/java/model/IliasTreeNode.java
// public abstract class IliasTreeNode implements Serializable {
// 	private static final long serialVersionUID = -5666402232004312659L;
// 	private final String url;
// 	private final String name;
// 	private String nameChangedByUser;
// 	private final IliasFolder parentFolder;
// 
// 	public IliasTreeNode(String name, String url, IliasFolder parentFolder) {
// 		this.name = name;
// 		this.url = url;
// 		if (parentFolder != null) {
// 			parentFolder.getChildNodes().add(this);
// 		}
// 		this.parentFolder = parentFolder;
// 		this.nameChangedByUser = null;
// 	}
// 	
// 	public abstract ImageView getGraphic(); 
// 
// 	public String getUrl() {
// 		return url;
// 	}
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public void setNameChangedByUser(String nameChangedByUser) {
// 		this.nameChangedByUser = nameChangedByUser;
// 	}
// 
// 	public IliasFolder getParentFolder() {
// 		return parentFolder;
// 	}
// 
// 	public IliasTreeNode getRootCourse() {
// 		return getRoot(this);
// 	}
// 
// 	private IliasTreeNode getRoot(IliasTreeNode directory) {
// 		if (directory.getParentFolder() == null) {
// 			return directory;
// 		}
// 		return getRoot(directory.getParentFolder());
// 	}
// 
// 	@Override
// 	public String toString() {
// 		if (nameChangedByUser != null) {
// 			return nameChangedByUser;
// 		}
// 		return name;
// 	}
// 
// }


// Path: src/main/java/model/persistance/IliasTreeProvider.java
import java.util.ArrayList;
import java.util.List;
import model.IliasFile;
import model.IliasFolder;
import model.IliasTreeNode;

package model.persistance;



public class IliasTreeProvider {
	private static List<IliasFolder> allFiles = null;


	public static List<IliasFile> getAllIliasFiles() {
