Author: vgritsenko
Date: Tue Nov 13 08:59:33 2007
New Revision: 594581

URL: http://svn.apache.org/viewvc?rev=594581&view=rev
Log:
add putEntryMeta method.
javadoc changes.

Modified:
    xml/xindice/trunk/java/src/org/apache/xindice/core/Collection.java
    xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCache.java
    
xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCacheImpl.java

Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/Collection.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/Collection.java?rev=594581&r1=594580&r2=594581&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/Collection.java 
(original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/Collection.java Tue Nov 
13 08:59:33 2007
@@ -1255,7 +1255,6 @@
          */
 
         byte[] documentBytes;
-        String documentChars = null;
 
         // FIXME: concurrent symbol table access.
         if (compressed) {
@@ -1276,7 +1275,7 @@
             }
         } else {
             // Create uncompressed document bytes to be stored in the filer
-            documentChars = TextWriter.toString(document);
+            String documentChars = TextWriter.toString(document);
             try {
                 documentBytes = documentChars.getBytes("utf-8");
             } catch (UnsupportedEncodingException e) {
@@ -1582,7 +1581,7 @@
 
         Key key = getIdentityKey(createNewKey(id));
         synchronized (key) {
-            if (getEntry(id) == null) {
+            if (getEntryMeta(id) == null) {
                 throw new DBException(FaultCodes.COL_DOCUMENT_NOT_FOUND,
                                       "Resource '" + id + "' does not exist in 
'" + getCanonicalName() + "'");
             }
@@ -1635,12 +1634,12 @@
 
         Key key = getIdentityKey(createNewKey(id));
         synchronized (key) {
-            if (null == getEntry(id)) {
+            if (getEntryMeta(id) == null) {
                 throw new DBException(FaultCodes.COL_DOCUMENT_NOT_FOUND,
                                       "Resource '" + id + "' does not exist in 
'" + getCanonicalName() + "'");
             }
 
-            if (null != meta) {
+            if (meta != null) {
                 if (meta.getType() == MetaData.UNKNOWN || meta.getType() == 
MetaData.COLLECTION) {
                     throw new DBException(FaultCodes.GEN_UNKNOWN,
                                           "Mismatch type of meta data for 
document " + getCanonicalDocumentName(id));

Modified: 
xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCache.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCache.java?rev=594581&r1=594580&r2=594581&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCache.java 
(original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCache.java 
Tue Nov 13 08:59:33 2007
@@ -27,26 +27,24 @@
 import java.util.Map;
 
 /**
- * DocumentCache implements a simple database Entry caching system for
- * Collections.
+ * DocumentCache implements a simple caching system for
+ * Collection resources.
  *
  * @version $Revision$, $Date$
  */
 public interface DocumentCache {
 
-    // Cache Entry types constants
-
-    /** Entry type for the compressed XML document entry */
+    /** Compressed document resource type */
     int COMPRESSED   = 1;
 
-    /** Entry type for the uncompressed XML document entry */
+    /** Uncompressed document resource type */
     int UNCOMPRESSED = 2;
 
-    /** Entry type for the binary entry */
+    /** Binary resource type */
     int BINARY       = 3;
 
     /**
-     * Cache key consists of collection and entry key
+     * Cache key consists of collection and resource key
      */
     class CacheKey {
         private final Collection col;
@@ -90,39 +88,49 @@
     }
 
     /**
-     * Obtains entry from the cache
+     * Obtains resource entry from the cache
      *
-     * @param col entry collection
-     * @param key entry key
-     * @return entry from the cache or null if not present
+     * @param col resource collection
+     * @param key resource key
+     * @return entry cached resource entry or null if not present
      */
     Entry getEntry(Collection col, Key key);
 
     /**
-     * Obtains entry metadata from cache.
+     * Obtains resource entry metadata from cache.
      *
-     * @param col entry collection
-     * @param key entry key
-     * @return entry meta data from the cache or null if not present
+     * @param col resource collection
+     * @param key resource key
+     * @return entry cached resource metadata or null if not present
      */
     Entry getEntryMeta(Collection col, Key key);
 
     /**
-     * Stores entry value in the cache
+     * Stores resource entry value in the cache
      *
-     * @param col document entry collection
-     * @param key document entry key
-     * @param type entry type: COMPRESSED, UNCOMPRESSED, BINARY
+     * @param col resource collection
+     * @param key resource key
+     * @param type resource type: COMPRESSED, UNCOMPRESSED, BINARY
      * @param value entry value
-     * @param meta document meta attributes map
+     * @param meta resource meta attributes map
      */
     void putEntry(Collection col, Key key, int type, Value value, Map meta);
 
     /**
-     * Remove entry from the cache
+     * Stores resource meta entry in the cache
+     *
+     * @param col resource collection
+     * @param key resource key
+     * @param type resource type: COMPRESSED, UNCOMPRESSED, BINARY
+     * @param meta resource metadata attributes map
+     */
+    void putEntryMeta(Collection col, Key key, int type, Map meta);
+
+    /**
+     * Remove resource entry from the cache
      *
-     * @param col entry collection
-     * @param key entry key
+     * @param col resource collection
+     * @param key resource key
      */
     void removeEntry(Collection col, Key key);
 }

Modified: 
xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCacheImpl.java
URL: 
http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCacheImpl.java?rev=594581&r1=594580&r2=594581&view=diff
==============================================================================
--- 
xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCacheImpl.java 
(original)
+++ 
xml/xindice/trunk/java/src/org/apache/xindice/core/cache/DocumentCacheImpl.java 
Tue Nov 13 08:59:33 2007
@@ -61,7 +61,7 @@
         private final int type;
         private final Key key;
         private final Value value;
-        private final Map meta;
+        private Map meta;
 
         public CacheEntry(int type, Key key, Value value, Map meta) {
             this.type = type;
@@ -85,6 +85,10 @@
         public Map getMeta() {
             return meta;
         }
+
+        void setMeta(Map meta) {
+            this.meta = meta;
+        }
     }
 
 
@@ -144,6 +148,19 @@
         CacheKey ckey = new CacheKey(col, key);
         synchronized (table) {
             table.put(ckey, new CacheEntry(type, key, value, meta));
+        }
+    }
+
+    public void putEntryMeta(Collection col, Key key, int type, Map meta) {
+        CacheKey ckey = new CacheKey(col, key);
+        synchronized (table) {
+            CacheEntry e = (CacheEntry) table.get(ckey);
+            if (e == null) {
+                e = new CacheEntry(type, key, null, meta);
+            } else {
+                e.setMeta(meta);
+            }
+            table.put(ckey, e);
         }
     }
 


Reply via email to