+
+ public Folder getParent() {
+ return parent;
+ }
+
+ public String getUri() {
+ return "/" + container + (prefix.length() == 0 ? "" : "/" + prefix);
+ }
+
+ public boolean isContainer() {
+ return parent == null;
+ }
+
+ public void setContainer(String container) {
+ this.container = container;
+ }
+
+ public Set<String> getTags() {
+ return tags;
+ }
+
+ public String getInheritedPermissionsFrom() {
+ return inheritedPermissionsFrom;
+ }
+
+ public Map<String, Boolean[]> getPermissions() {
+ return permissions;
+ }
+
+ public String getOwner() {
+ return owner;
+ }
+
+ public boolean existChildrenPermissions() {
+ for (File f : files)
+ if (!f.getPermissions().isEmpty() && f.getInheritedPermissionsFrom() == null)
+ return true;
+
+ for (Folder fo : subfolders)
+ if ((!fo.getPermissions().isEmpty() && fo.getInheritedPermissionsFrom() == null) || fo.existChildrenPermissions())
+ return true;
+ return false;
+ }
+
+ public boolean isShared() {
+ return !permissions.isEmpty();
+ }
+
+ /**
+ * I am THE trash
+ *
+ * @return
+ */
+ public boolean isTrash() {
+ return isContainer() && name.equals(Pithos.TRASH_CONTAINER);
+ }
+
+ /**
+ * I am IN THE trash
+ *
+ * @return
+ */
+ public boolean isInTrash() {
+ return container.equals(Pithos.TRASH_CONTAINER);
+ }
+
+ public boolean isHome() {
+ return isContainer() && name.equals(Pithos.HOME_CONTAINER);
+ }
+
+ public boolean contains(Folder folder) {
+ for (Folder f : subfolders)
+ if (f.equals(folder) || f.contains(folder))
+ return true;
+ return false;
+ }