Hi all
I have attached a patch to this mail regarding this proposal
Marcus,
How are you mate? :-)
I couldnt see any obvious way to avoid iterating over remove with
FileSystemStore/PersistentStore
Regards,
Michael Melhem
On Tue, 13 Aug 2002, Michael Melhem wrote:
> Hi all,
>
> Re: org.apache.excalibur.store.Store
>
> I have a simple proposal to add a "Clear()" method to the Store
> components.
>
> That would give store components the ability to rid themselves of any
> information they are holding. That is, an ability to clear the store of
> all the entries it currently holds!
>
> Does anyone see any issues with this? If not I will submit a
> patch to implement this proposal.
>
> Regards,
> Michael Melhem
>
>
>
> --
> To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
>
? clear.diff
Index: src/java/org/apache/excalibur/store/Store.java
===================================================================
RCS file:
/home/cvspublic/jakarta-avalon-excalibur/store/src/java/org/apache/excalibur/store/Store.java,v
retrieving revision 1.3
diff -u -r1.3 Store.java
--- src/java/org/apache/excalibur/store/Store.java 14 Jul 2002 01:28:01 -0000
1.3
+++ src/java/org/apache/excalibur/store/Store.java 14 Aug 2002 09:09:10 -0000
@@ -65,6 +65,11 @@
void remove( Object key );
/**
+ * Clear the Store of all data it holds
+ */
+ void clear();
+
+ /**
* Indicates if the given key is associated to a contained object.
*/
boolean containsKey( Object key );
Index: src/java/org/apache/excalibur/store/impl/AbstractFilesystemStore.java
===================================================================
RCS file:
/home/cvspublic/jakarta-avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/AbstractFilesystemStore.java,v
retrieving revision 1.3
diff -u -r1.3 AbstractFilesystemStore.java
--- src/java/org/apache/excalibur/store/impl/AbstractFilesystemStore.java 13 Jun
2002 17:24:52 -0000 1.3
+++ src/java/org/apache/excalibur/store/impl/AbstractFilesystemStore.java 14 Aug
+2002 09:09:11 -0000
@@ -161,6 +161,20 @@
}
/**
+ * Clear the Store of all elements
+ */
+ public synchronized void clear() {
+ Enumeration enum = this.keys();
+ while (enum.hasMoreElements()) {
+ Object key = enum.nextElement();
+ if (key == null) {
+ continue;
+ }
+ this.remove(key);
+ }
+ }
+
+ /**
* Indicates if the given key is associated to a contained object.
*/
public synchronized boolean containsKey(final Object key) {
Index: src/java/org/apache/excalibur/store/impl/MRUMemoryStore.java
===================================================================
RCS file:
/home/cvspublic/jakarta-avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/MRUMemoryStore.java,v
retrieving revision 1.5
diff -u -r1.5 MRUMemoryStore.java
--- src/java/org/apache/excalibur/store/impl/MRUMemoryStore.java 10 Jul 2002
09:40:17 -0000 1.5
+++ src/java/org/apache/excalibur/store/impl/MRUMemoryStore.java 14 Aug 2002
+09:09:11 -0000
@@ -222,6 +222,20 @@
}
/**
+ * Clear the Store of all elements
+ */
+ public synchronized void clear() {
+ Enumeration enum = this.cache.keys();
+ while (enum.hasMoreElements()) {
+ Object key = enum.nextElement();
+ if (key == null) {
+ continue;
+ }
+ this.remove(key);
+ }
+ }
+
+ /**
* Indicates if the given key is associated to a contained object.
*
* @param key The key of the object
Index: src/java/org/apache/excalibur/store/impl/MemoryStore.java
===================================================================
RCS file:
/home/cvspublic/jakarta-avalon-excalibur/store/src/java/org/apache/excalibur/store/impl/MemoryStore.java,v
retrieving revision 1.1
diff -u -r1.1 MemoryStore.java
--- src/java/org/apache/excalibur/store/impl/MemoryStore.java 2 May 2002 08:55:39
-0000 1.1
+++ src/java/org/apache/excalibur/store/impl/MemoryStore.java 14 Aug 2002 09:09:11
+-0000
@@ -68,6 +68,13 @@
table.remove(key);
}
+ /**
+ * Clear the Store of all elements
+ */
+ public synchronized void clear() {
+ table.clear();
+ }
+
public synchronized void free() {}
/**
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>