1 21 package com.jaspersoft.jasperserver.api.metadata.common.service.impl.hibernate.persistent; 22 23 import java.util.HashSet ; 24 import java.util.Iterator ; 25 import java.util.Set ; 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 44 public class RepoFolder extends RepoResourceBase { 45 46 private String uri; 47 private boolean hidden; 48 49 private Set children; 50 private Set subFolders; 51 52 public RepoFolder() { 53 children = new HashSet (); 54 } 55 56 60 public String getURI() 61 { 62 return uri; 63 } 64 65 public void setURI(String 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 getClientItf() { 85 return Folder.class; 86 } 87 88 93 public Set getChildren() { 94 return children; 95 } 96 97 public void setChildren(Set 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 116 public Set getSubFolders() { 117 return subFolders; 118 } 119 120 public void setSubFolders(Set subFolders) { 121 this.subFolders = subFolders; 122 } 123 124 protected void filterChildren(Set newChildren) { 125 if (newChildren == null) { 126 children.clear(); 127 } 128 else { 129 for (Iterator 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 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 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 toString() { 189 return getURI(); 190 } 191 192 } 193 | Popular Tags |