import java.util.Date;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
+import com.google.gwt.core.client.GWT;
import com.google.gwt.http.client.Response;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
return name;
}
- public Date getLastModified() {
+ @Override
+ public Date getLastModified() {
return lastModified;
}
return bytesUsed;
}
- public void setLastModified(Date lastModified) {
- this.lastModified = lastModified;
- }
-
public Set<Folder> getSubfolders() {
return subfolders;
}
this.owner = _owner;
String header = response.getHeader("Last-Modified");
if (header != null)
- lastModified = DateTimeFormat.getFormat(PredefinedFormat.RFC_2822).parse(header);
+ try {
+ lastModified = DateTimeFormat.getFormat(PredefinedFormat.RFC_2822).parse(header);
+ } catch (IllegalArgumentException e) {
+ GWT.log("Last-Modified will be set to null", e);
+ lastModified = null;
+ }
header = response.getHeader("X-Container-Bytes-Used");
- if (header != null)
+ if (header != null && header.length() > 0)
bytesUsed = Long.valueOf(header);
header = response.getHeader("X-Container-Object-Meta");
}
}
- inheritedPermissionsFrom = response.getHeader("X-Object-Shared-By");
- String rawPermissions = response.getHeader("X-Object-Sharing");
- if (rawPermissions != null)
- parsePermissions(rawPermissions);
-
subfolders.clear(); //This is necessary in case we update a pre-existing Folder so that stale subfolders won't show up
files.clear();
JSONValue json = JSONParser.parseStrict(response.getText());
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;
+ }
}