1 /* 2 * Copyright 2006-2016 The JGUIraffe Team. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License") 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package net.sf.jguiraffe.examples.tutorial.model; 17 18 import java.io.File; 19 import java.util.List; 20 21 /** 22 * <p> 23 * A data class for storing information about a directory. 24 * </p> 25 * <p> 26 * Objects of this class are used by the file system browser to keep track about 27 * the directories already scanned. They are stored in the model of the tree 28 * view. Whenever a node in the tree is selected the corresponding {@code 29 * DirectoryData} object is determined. From this object the content of the 30 * directory can be obtained. It is also possible to find out whether this 31 * directory has already been read. 32 * </p> 33 * 34 * @author Oliver Heger 35 * @version $Id: DirectoryData.java 205 2012-01-29 18:29:57Z oheger $ 36 */ 37 public class DirectoryData 38 { 39 /** Stores the file representing the directory. */ 40 private final File directory; 41 42 /** A list with the content of this directory. */ 43 private List<FileData> content; 44 45 /** 46 * Creates a new instance of {@code DirectoryData} and initializes it with 47 * the {@code File} object representing the associated directory. 48 * 49 * @param dir the directory 50 */ 51 public DirectoryData(File dir) 52 { 53 directory = dir; 54 } 55 56 /** 57 * Returns a list with the content of this directory. 58 * 59 * @return a list with the content of this directory 60 */ 61 public List<FileData> getContent() 62 { 63 return content; 64 } 65 66 /** 67 * Sets the list with the content of this directory. 68 * 69 * @param content the list with the content 70 */ 71 public void setContent(List<FileData> content) 72 { 73 this.content = content; 74 } 75 76 /** 77 * Returns the {@code File} object representing the associated directory. 78 * 79 * @return the directory 80 */ 81 public File getDirectory() 82 { 83 return directory; 84 } 85 86 /** 87 * Returns a flag whether this directory has already been initialized. 88 * Initialized means that the content of the directory is available. 89 * 90 * @return a flag whether this directory has been initialized 91 */ 92 public boolean isInitialized() 93 { 94 return content != null; 95 } 96 97 /** 98 * Returns a string representation for this object. This string contains the 99 * directory object itself and its content as well (if it is available 100 * already). 101 * 102 * @return a string for this object 103 */ 104 @Override 105 public String toString() 106 { 107 StringBuilder buf = new StringBuilder(); 108 buf.append("DirectoryData [ directory = ").append(getDirectory()); 109 if (isInitialized()) 110 { 111 buf.append(", content = ").append(content); 112 } 113 buf.append(" ]"); 114 return buf.toString(); 115 } 116 }