KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jaspersoft > jasperserver > api > metadata > common > service > impl > hibernate > persistent > RepoFolder


1 /*
2  * Copyright (C) 2006 JasperSoft http://www.jaspersoft.com
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed WITHOUT ANY WARRANTY; and without the
10  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11  * See the GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
15  * or write to:
16  *
17  * Free Software Foundation, Inc.,
18  * 59 Temple Place - Suite 330,
19  * Boston, MA USA 02111-1307
20  */

21 package com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent;
22
23 import java.util.HashSet JavaDoc;
24 import java.util.Iterator JavaDoc;
25 import java.util.Set JavaDoc;
26
27 import org.apache.commons.lang.builder.EqualsBuilder;
28 import org.apache.commons.lang.builder.HashCodeBuilder;
29
30 import com.jaspersoft.jasperserver.api.JSException;
31 import com.jaspersoft.jasperserver.api.metadata.common.domain.Folder;
32 import com.jaspersoft.jasperserver.api.metadata.common.domain.Resource;
33 import com.jaspersoft.jasperserver.api.metadata.common.domain.client.FolderImpl;
34 import com.jaspersoft.jasperserver.api.metadata.common.service.ResourceFactory;
35 import com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.ReferenceResolver;
36
37
38 /**
39  * @author Lucian Chirita (lucianc@users.sourceforge.net)
40  * @version $Id: RepoFolder.java 3643 2006-06-12 09:13:34Z inedelcu $
41  *
42  * @disabled_hibernate.class table="resource_folder"
43  */

44 public class RepoFolder extends RepoResourceBase {
45     
46     private String JavaDoc uri;
47     private boolean hidden;
48     
49     private Set JavaDoc children;
50     private Set JavaDoc subFolders;
51     
52     public RepoFolder() {
53         children = new HashSet JavaDoc();
54     }
55
56     /**
57      * @hibernate.property
58      * column="uri" type="string" length="200" not-null="true" unique="true"
59      */

60     public String JavaDoc getURI()
61     {
62         return uri;
63     }
64     
65     public void setURI(String JavaDoc newURIString)
66     {
67         uri = newURIString;
68     }
69     
70     public void set(Folder folder, RepoFolder parent) {
71         setName(folder.getName());
72         setLabel(folder.getLabel());
73         setDescription(folder.getDescription());
74         setParent(parent);
75         setHidden(false);
76         setURI();
77     }
78
79     public void setURI() {
80         setURI(getResourceURI());
81     }
82
83
84     protected Class JavaDoc getClientItf() {
85         return Folder.class;
86     }
87
88     /**
89      * @hibernate.set inverse="true" cascade="save-update,delete,delete-orphan"
90      * @hibernate.key column="parent_folder"
91      * @hibernate.one-to-many class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoResource"
92      */

93     public Set JavaDoc getChildren() {
94         return children;
95     }
96
97     public void setChildren(Set JavaDoc children) {
98         this.children = children;
99     }
100     
101     public void addChild(RepoResource resource) {
102         resource.setParent(this);
103         children.add(resource);
104     }
105     
106     public boolean removeChild(RepoResource resource) {
107         return children.remove(resource);
108     }
109
110
111     /**
112      * @hibernate.set inverse="true" cascade="delete"
113      * @hibernate.key column="parent_folder"
114      * @hibernate.one-to-many class="com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent.RepoFolder"
115      */

116     public Set JavaDoc getSubFolders() {
117         return subFolders;
118     }
119
120     public void setSubFolders(Set JavaDoc subFolders) {
121         this.subFolders = subFolders;
122     }
123
124     protected void filterChildren(Set JavaDoc newChildren) {
125         if (newChildren == null) {
126             children.clear();
127         }
128         else {
129             for (Iterator JavaDoc it = children.iterator(); it.hasNext();) {
130                 RepoResource res = (RepoResource) it.next();
131                 if (!newChildren.contains(res)) {
132                     it.remove();
133                 }
134             }
135         }
136     }
137
138     /**
139      * @hibernate.property column="hidden" type="boolean"
140      */

141     public boolean isHidden() {
142         return hidden;
143     }
144
145     public void setHidden(boolean hidden) {
146         this.hidden = hidden;
147     }
148     
149     public boolean isRoot() {
150         return getURI().equals(Folder.SEPARATOR);
151     }
152     
153     public Folder toClient() {
154         Folder folder = new FolderImpl();
155         copyTo(folder);
156         return folder;
157     }
158     
159     protected void copyTo(Resource clientRes, ResourceFactory resourceFactory) {
160         throw new JSException("Resource copyTo not implemented");
161     }
162     
163     protected void copyFrom(Resource clientRes, ReferenceResolver referenceResolver) {
164         throw new JSException("Resource copyFrom not implemented");
165     }
166
167     public boolean equals(Object JavaDoc obj) {
168         if (!(obj instanceof RepoFolder)) {
169             return false;
170         }
171         if (this == obj) {
172             return true;
173         }
174         if (isNew()) {
175             return false;
176         }
177         RepoFolder res = (RepoFolder) obj;
178         return new EqualsBuilder().append(getId(), res.getId()).isEquals();
179     }
180
181     public int hashCode() {
182         if (isNew()) {
183             return super.hashCode();
184         }
185         return new HashCodeBuilder().append(getId()).toHashCode();
186     }
187
188     public String JavaDoc toString() {
189         return getURI();
190     }
191
192 }
193
Popular Tags