Author: ruschein
Date: 2011-04-08 16:09:39 -0700 (Fri, 08 Apr 2011)
New Revision: 24731
Added:
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/filechoosersupport/
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/filechoosersupport/GenomeSpaceFile.java
Log:
Work in progress.
Added:
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/filechoosersupport/GenomeSpaceFile.java
===================================================================
---
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/filechoosersupport/GenomeSpaceFile.java
(rev 0)
+++
csplugins/trunk/ucsd/mes/genomespace-plugin/src/main/java/cytoscape/genomespace/filechoosersupport/GenomeSpaceFile.java
2011-04-08 23:09:39 UTC (rev 24731)
@@ -0,0 +1,267 @@
+package cytoscape.genomespace.filechoosersupport;
+
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.net.URI;
+import java.util.List;
+import java.util.ArrayList;
+
+import org.genomespace.client.DataManagerClient;
+import org.genomespace.datamanager.core.GSFileMetadata;
+
+
+public final class GenomeSpaceFile extends File {
+ private final GSFileMetadata fileMetadata;
+ private final DataManagerClient dataManagerClient;
+
+ public GenomeSpaceFile(final GSFileMetadata fileMetadata,
+ final DataManagerClient dataManagerClient)
+ {
+ super(fileMetadata.getPath() + "/" + fileMetadata.getName());
+ this.fileMetadata = fileMetadata;
+ this.dataManagerClient = dataManagerClient;
+ }
+
+ @Override
+ public boolean canExecute() {
+ return false;
+ }
+
+ @Override
+ public boolean canRead() {
+ return true;
+ }
+
+ @Override
+ public boolean canWrite() {
+ return true;
+ }
+
+ @Override
+ public int compareTo(final File pathname) {
+ try {
+ return (fileMetadata.getPath() + "/" +
fileMetadata.getName())
+
.compareToIgnoreCase(pathname.getCanonicalPath());
+ } catch (final IOException e) {
+ return 0;
+ }
+ }
+
+ @Override
+ public boolean createNewFile() {
+ throw new UnsupportedOperationException("currently can't create
new GenomeSpace files!");
+ }
+
+ @Override
+ public boolean delete() {
+ throw new UnsupportedOperationException("currently can't delete
GenomeSpace files!");
+ }
+
+ @Override
+ public void deleteOnExit() {
+ throw new UnsupportedOperationException("currently can't delete
GenomeSpace files when exiting the JVM!");
+ }
+
+ @Override
+ public boolean equals(final Object other) {
+ return other instanceof GenomeSpaceFile ? other.equals(this) :
false;
+ }
+
+ @Override
+ public boolean exists() {
+ return true;
+ }
+
+ @Override
+ public File getAbsoluteFile() {
+ return this;
+ }
+
+ @Override
+ public String getCanonicalPath() throws IOException {
+ return fileMetadata.getPath() + "/" + fileMetadata.getName();
+ }
+
+ @Override
+ public File getCanonicalFile() throws IOException {
+ return this;
+ }
+
+ @Override
+ public String getAbsolutePath() {
+ return fileMetadata.getPath() + "/" + fileMetadata.getName();
+ }
+
+ @Override
+ public long getFreeSpace() {
+ throw new UnsupportedOperationException("don't know how to get
free space from GenomeSpace!");
+ }
+
+ @Override
+ public String getName() {
+ return fileMetadata.getName();
+ }
+
+ @Override
+ public String getParent() {
+ return fileMetadata.getPath();
+ }
+
+ @Override
+ public File getParentFile() {
+ throw new UnsupportedOperationException("don't know how to get
the parent file from GenomeSpace!");
+ }
+
+ @Override
+ public String getPath() {
+ return fileMetadata.getPath() + "/" + fileMetadata.getName();
+ }
+
+ @Override
+ public long getTotalSpace() {
+ throw new UnsupportedOperationException("don't know how to get
the total space from GenomeSpace!");
+ }
+
+ @Override
+ public long getUsableSpace() {
+ throw new UnsupportedOperationException("don't know how to get
the total space from GenomeSpace!");
+ }
+
+ @Override
+ public int hashCode() {
+ return fileMetadata.hashCode();
+ }
+
+ @Override
+ public boolean isAbsolute() {
+ return true;
+ }
+
+ @Override
+ public boolean isDirectory() {
+ return fileMetadata.isDirectory();
+ }
+
+ @Override
+ public boolean isFile() {
+ return !fileMetadata.isDirectory();
+ }
+
+ @Override
+ public boolean isHidden() {
+ return false;
+ }
+
+ @Override
+ public long lastModified() {
+ return fileMetadata.getLastModified().getTime();
+ }
+
+ @Override
+ public long length() {
+ return fileMetadata.getSize();
+ }
+
+ @Override
+ public String[] list() {
+ if (!fileMetadata.isDirectory())
+ return null;
+
+ final List<GSFileMetadata> filesMetaData =
dataManagerClient.list(fileMetadata).getContents();
+ final List<String> fileNames = new
ArrayList<String>(filesMetaData.size());
+ for (final GSFileMetadata metadata : filesMetaData)
+ fileNames.add(metadata.getName());
+ final String[] strings = new String[filesMetaData.size()];
+ return fileNames.toArray(strings);
+ }
+
+ @Override
+ public String[] list(final FilenameFilter filter) {
+ throw new UnsupportedOperationException("filtering is currently
not impemented for GenomeSpace(1)!");
+ }
+
+ @Override
+ public File[] listFiles() {
+ if (!fileMetadata.isDirectory())
+ return null;
+
+ final List<GSFileMetadata> filesMetaData =
dataManagerClient.list(fileMetadata).getContents();
+ final List<File> fileNames = new
ArrayList<File>(filesMetaData.size());
+ for (final GSFileMetadata metadata : filesMetaData)
+ fileNames.add(new GenomeSpaceFile(metadata,
dataManagerClient));
+ final File[] files = new GenomeSpaceFile[filesMetaData.size()];
+ return fileNames.toArray(files);
+ }
+
+ @Override
+ public File[] listFiles(final FilenameFilter filter) {
+ throw new UnsupportedOperationException("filtering is currently
not impemented for GenomeSpace(2)!");
+ }
+
+ @Override
+ public boolean mkdir() {
+ throw new UnsupportedOperationException("directory creation is
currently not impemented for GenomeSpace!");
+ }
+
+ @Override
+ public boolean mkdirs() {
+ throw new UnsupportedOperationException("recursive directory
creation is currently not impemented for GenomeSpace!");
+ }
+
+ @Override
+ public boolean renameTo(final File dest) {
+ throw new UnsupportedOperationException("file renaming is
currently not supported for GenomeSpace!");
+ }
+
+ @Override
+ public boolean setExecutable(final boolean executable) {
+ return false;
+ }
+
+ @Override
+ public boolean setExecutable(final boolean executable, final boolean
ownerOnly) {
+ return false;
+ }
+
+ @Override
+ public boolean setLastModified(final long time) {
+ return false;
+ }
+
+ @Override
+ public boolean setReadable(final boolean readable) {
+ return false;
+ }
+
+ @Override
+ public boolean setReadable(final boolean readable, final boolean
ownerOnly) {
+ return false;
+ }
+
+ @Override
+ public boolean setReadOnly() {
+ return false;
+ }
+
+ @Override
+ public boolean setWritable(final boolean writable) {
+ return false;
+ }
+
+ @Override
+ public boolean setWritable(final boolean writable, final boolean
ownerOnly) {
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return getPath();
+ }
+
+ @Override
+ public URI toURI() {
+ throw new UnsupportedOperationException("currently can't
generate URIs for GenomeSpace files!");
+ }
+}
\ No newline at end of file
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.