KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > blandware > atleap > common > util > FolderList


1 /*
2  * Copyright 2004 Blandware (http://www.blandware.com)
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 com.blandware.atleap.common.util;
17
18 import java.io.Serializable JavaDoc;
19 import java.util.Collection JavaDoc;
20 import java.util.Iterator JavaDoc;
21 import java.util.LinkedList JavaDoc;
22 import java.util.List JavaDoc;
23
24 /**
25  * <p>Contains list of folders and provides some operations for it.
26  * This class is backed by instance of <code>java.util.List</code></p>
27  * <p><a HREF="FolderList.java.htm"><i>View Source</i></a></p>
28  *
29  * @author Sergey Zubtcovskii <a HREF="mailto:sergey.zubtcovskii@blandware.com">&lt;sergey.zubtcovskii@blandware.com&gt;</a>
30  * @version $Revision: 1.6 $ $Date: 2005/08/02 14:53:33 $
31  */

32 public class FolderList implements Serializable JavaDoc {
33
34     protected LinkedList JavaDoc folders = new LinkedList JavaDoc();
35     /**
36      * Delimiter between folder names in string
37      */

38     protected char delimiter = '/';
39
40     /**
41      * Creates new instance of FolderList.
42      */

43     public FolderList() {
44         this(new LinkedList JavaDoc());
45     }
46
47     /**
48      * Creates new instance of FolderList from a collection of folders.
49      *
50      * @param folders Collection of folders
51      */

52     public FolderList(Collection JavaDoc folders) {
53         this(folders, '/');
54     }
55
56     /**
57      * Creates new instance of FolderList from a collection of folders with
58      * a given delimiter.
59      *
60      * @param folders List of folders
61      * @param delimiter Delimiter between folder names in path
62      */

63     public FolderList(Collection JavaDoc folders, char delimiter) {
64         this.folders = new LinkedList JavaDoc(folders);
65         this.delimiter = delimiter;
66     }
67
68     /**
69      * Sets delimiter between folder names
70      *
71      * @param delimiter the string that will serve as a delimiter
72      */

73     public void setDelimiter(char delimiter) {
74         this.delimiter = delimiter;
75     }
76
77     /**
78      * Adds {@link Folder} to list
79      *
80      * @param folder the folder to add to list
81      * @return <code>true</code>
82      * @see com.blandware.atleap.common.util.Folder
83      */

84     public boolean addFolder(Folder folder) {
85         return folders.add(folder);
86     }
87
88     /**
89      * Clears folder list
90      */

91     public void clear() {
92         folders.clear();
93     }
94
95     /**
96      * Gets a <code>List</code> of folders
97      *
98      * @return list of folders
99      */

100     public List JavaDoc getFolders() {
101         return folders;
102     }
103
104     /**
105      * Gets a number of folders in list
106      *
107      * @return number of folders in list
108      */

109     public int getNumberOfFolders() {
110         return folders.size();
111     }
112
113     /**
114      * Gets the last folder in list, if there are some folders, or <code>null</code>
115      * otherwise
116      *
117      * @return last folder in list, or <code>null</code>
118      */

119     public Folder getLastFolder() {
120         if ( !folders.isEmpty() ) {
121             return (Folder) folders.getLast();
122         } else {
123             return null;
124         }
125     }
126
127     public String JavaDoc toString() {
128         StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
129         sb.append(delimiter);
130         for ( Iterator JavaDoc i = folders.iterator(); i.hasNext(); ) {
131             Folder folder = (Folder) i.next();
132             sb.append(folder.getName()).append(delimiter);
133         }
134         return sb.toString();
135     }
136
137
138 }
139
Popular Tags