Author: imario
Date: Mon May 14 11:37:14 2007
New Revision: 537943
URL: http://svn.apache.org/viewvc?view=rev&rev=537943
Log:
VFS-149: Add FileContent.hasAttribute and removeAttribute - Thanks to Adam
Heath for the patch!
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/FileContent.java
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/Resources.properties
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/FileContent.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/FileContent.java?view=diff&rev=537943&r1=537942&r2=537943
==============================================================================
---
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/FileContent.java
(original)
+++
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/FileContent.java
Mon May 14 11:37:14 2007
@@ -76,6 +76,16 @@
void setLastModifiedTime(long modTime) throws FileSystemException;
/**
+ * Checks if an attribute of the file's content exists.
+ *
+ * @param attrName The name of the attribute.
+ * @throws FileSystemException If the file does not exist, or does not
support
+ * attributes.
+ */
+ boolean hasAttribute(String attrName)
+ throws FileSystemException;
+
+ /**
* Returns a read-only map of this file's attributes.
*
* @throws FileSystemException If the file does not exist, or does not
support attributes.
@@ -110,6 +120,16 @@
* attributes, or on error setting the
attribute.
*/
void setAttribute(String attrName, Object value)
+ throws FileSystemException;
+
+ /**
+ * Removes the value of an attribute of the file's content.
+ *
+ * @param attrName The name of the attribute.
+ * @throws FileSystemException If the file does not exist, or is
read-only, or does not support
+ * attributes, or on error removing the
attribute.
+ */
+ void removeAttribute(String attrName)
throws FileSystemException;
/**
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/Resources.properties
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/Resources.properties?view=diff&rev=537943&r1=537942&r2=537943
==============================================================================
---
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/Resources.properties
(original)
+++
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/Resources.properties
Mon May 14 11:37:14 2007
@@ -29,6 +29,7 @@
vfs.provider/get-last-modified-not-supported.error=This file type does not
support retriving last modified time.
vfs.provider/set-last-modified-not-supported.error=This file type does not
support setting last modified time.
vfs.provider/set-attribute-not-supported.error=This file type does not support
setting attributes.
+vfs.provider/remove-attribute-not-supported.error=This file type does not
support removing attributes.
vfs.provider/get-attribute-not-supported.error=This file type does not support
getting attributes.
vfs.provider/write-not-supported.error=This file type cannot be written to.
vfs.provider/get-type.error=Could not determine the type of file "{0}".
@@ -82,10 +83,13 @@
vfs.provider/get-certificates.error=Could not retrieve the certificates of
"{0}".
vfs.provider/close-instr.error=Could not close the input stream for file "{0}".
vfs.provider/close-outstr.error=Could not close the output stream for file
"{0}".
+vfs.provider/exists-attribute-no-exist.error=Could not check if attribute
"{0}" of "{1}" exists because attributes are not supported.
vfs.provider/get-attributes-no-exist.error=Could not get attributes for file
"{0}" because it does not exist.
vfs.provider/get-attributes.error=Could not get attributes "{0}".
vfs.provider/set-attribute-no-exist.error=Could not set attribute "{0}" of
"{1}" because it does not exist.
vfs.provider/set-attribute.error=Could not set attribute "{0}" of "{1}".
+vfs.provider/remove-attribute-no-exist.error=Could not check if attribute
"{0}" of "{1}" exists because attributes are not supported.
+vfs.provider/remove-attribute.error=Could not remove attribute "{0}" of "{1}".
# AbstractFileSystemProvider
vfs.provider/invalid-absolute-uri.error=Invalid absolute URI "{0}".
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java?view=diff&rev=537943&r1=537942&r2=537943
==============================================================================
---
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java
(original)
+++
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/AbstractFileObject.java
Mon May 14 11:37:14 2007
@@ -302,6 +302,20 @@
}
/**
+ * Removes an attribute of this file. Is only called if [EMAIL PROTECTED]
#doGetType}
+ * does not return [EMAIL PROTECTED] FileType#IMAGINARY}.
+ * <p/>
+ * This implementation throws an exception.
+ * @returns true if removing the attribute succeed. In this case we
remove the attribute from
+ * our cache
+ */
+ protected void doRemoveAttribute(final String atttrName)
+ throws Exception
+ {
+ throw new
FileSystemException("vfs.provider/remove-attribute-not-supported.error");
+ }
+
+ /**
* Returns the certificates used to sign this file. Is only called if
* [EMAIL PROTECTED] #doGetType} does not return [EMAIL PROTECTED]
FileType#IMAGINARY}.
* <p/>
Modified:
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java?view=diff&rev=537943&r1=537942&r2=537943
==============================================================================
---
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java
(original)
+++
jakarta/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs/provider/DefaultFileContent.java
Mon May 14 11:37:14 2007
@@ -197,6 +197,19 @@
}
}
+ /**
+ * Checks if an attribute exists.
+ */
+ public boolean hasAttribute(final String attrName) throws
FileSystemException
+ {
+ if (!file.getType().hasAttributes())
+ {
+ throw new
FileSystemException("vfs.provider/exists-attributes-no-exist.error", file);
+ }
+ getAttributes();
+ return attrs.containsKey(attrName);
+ }
+
/**
* Returns a read-only map of this file's attributes.
*/
@@ -269,6 +282,31 @@
if (attrs != null)
{
attrs.put(attrName, value);
+ }
+ }
+
+ /**
+ * Removes an attribute.
+ */
+ public void removeAttribute(final String attrName) throws
FileSystemException
+ {
+ if (!file.getType().hasAttributes())
+ {
+ throw new
FileSystemException("vfs.provider/remove-attribute-no-exist.error", file);
+ }
+
+ try
+ {
+ file.doRemoveAttribute(attrName);
+ }
+ catch (final Exception e)
+ {
+ throw new
FileSystemException("vfs.provider/remove-attribute.error", new
Object[]{attrName, file}, e);
+ }
+
+ if (attrs != null)
+ {
+ attrs.remove(attrName);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]