Author: rwesten
Date: Wed Jul 25 14:29:02 2012
New Revision: 1365601

URL: http://svn.apache.org/viewvc?rev=1365601&view=rev
Log:
STANBOL-471,STANBOL-498: Added IndexingSource interface - the minimal interface 
required for indexing . Store now extends IndexingSource and extend it by 
create, remove functionalities. 

The Idea is the SemanticIndexes do only require the IndexingSource interface as 
the do not need modify items.

Added:
    
incubator/stanbol/branches/contenthub-two-layered-structure/commons/semanticindex/servicesapi/src/main/java/org/apache/stanbol/commons/semanticindex/store/IndexingSource.java
   (with props)
Modified:
    
incubator/stanbol/branches/contenthub-two-layered-structure/commons/semanticindex/servicesapi/src/main/java/org/apache/stanbol/commons/semanticindex/store/Store.java
    
incubator/stanbol/branches/contenthub-two-layered-structure/contenthub/index/src/main/java/org/apache/stanbol/contenthub/index/ldpath/LDPathSemanticIndex.java

Added: 
incubator/stanbol/branches/contenthub-two-layered-structure/commons/semanticindex/servicesapi/src/main/java/org/apache/stanbol/commons/semanticindex/store/IndexingSource.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/branches/contenthub-two-layered-structure/commons/semanticindex/servicesapi/src/main/java/org/apache/stanbol/commons/semanticindex/store/IndexingSource.java?rev=1365601&view=auto
==============================================================================
--- 
incubator/stanbol/branches/contenthub-two-layered-structure/commons/semanticindex/servicesapi/src/main/java/org/apache/stanbol/commons/semanticindex/store/IndexingSource.java
 (added)
+++ 
incubator/stanbol/branches/contenthub-two-layered-structure/commons/semanticindex/servicesapi/src/main/java/org/apache/stanbol/commons/semanticindex/store/IndexingSource.java
 Wed Jul 25 14:29:02 2012
@@ -0,0 +1,42 @@
+package org.apache.stanbol.commons.semanticindex.store;
+
+
+/**
+ * Minimal interface required by the Semantic Index as an indexing source.
+ *
+ * @param <Item>
+ */
+public interface IndexingSource<Item> {
+
+       /**
+        * Getter for the type of Items managed by this Store
+        * @return
+        */
+       Class<Item> getItemType();
+
+       /** 
+     * Gets a Item by uri, null if non-existing 
+     * @param uri the uri of the item
+     * @return the item or <code>null</code> if not present
+     * @throws StoreException on any error while retrieving the item
+     */
+    Item get(String uri) throws StoreException;
+
+    /**
+     * Requests the next <code>batchSize</code> changes starting from 
<code>revision</code>. If there are no
+     * more revisions that a {@link ChangeSet} with an empty {@link 
ChangeSet#changed()} set. There can be
+     * more changes in the results than the given <code>batchSize</code> not 
to return a subset of changes
+     * regarding a specific revision. For instance, if the batch size is 5, 
given revision is 9 and there 15
+     * changes regarding revision 10. As a result, there will be 10 changed 
items in the returned change set.
+     * 
+     * @param revision
+     *            Starting revision number for the returned {@link ChangeSet}
+     * @param batchSize
+     *            Maximum number of changes to be returned
+     * @return the {@link ChangeSet} with a maximum of <code>batchSize</code> 
changes
+     * @throws StoreException
+     *             On any error while accessing the store.
+     * @see ChangeSet
+     */
+    ChangeSet<Item> changes(long revision, int batchSize) throws 
StoreException;
+}

Propchange: 
incubator/stanbol/branches/contenthub-two-layered-structure/commons/semanticindex/servicesapi/src/main/java/org/apache/stanbol/commons/semanticindex/store/IndexingSource.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
incubator/stanbol/branches/contenthub-two-layered-structure/commons/semanticindex/servicesapi/src/main/java/org/apache/stanbol/commons/semanticindex/store/Store.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/branches/contenthub-two-layered-structure/commons/semanticindex/servicesapi/src/main/java/org/apache/stanbol/commons/semanticindex/store/Store.java?rev=1365601&r1=1365600&r2=1365601&view=diff
==============================================================================
--- 
incubator/stanbol/branches/contenthub-two-layered-structure/commons/semanticindex/servicesapi/src/main/java/org/apache/stanbol/commons/semanticindex/store/Store.java
 (original)
+++ 
incubator/stanbol/branches/contenthub-two-layered-structure/commons/semanticindex/servicesapi/src/main/java/org/apache/stanbol/commons/semanticindex/store/Store.java
 Wed Jul 25 14:29:02 2012
@@ -18,14 +18,11 @@ package org.apache.stanbol.commons.seman
 
 /**
  * Interface to store and retrieve Items instances persistently.
+ * This extends the {@link IndexingSource} interface to support
+ * full CRUD operations
  */
-public interface Store<Item> {
+public interface Store<Item> extends IndexingSource<Item>{
 
-       /**
-        * Getter for the type of Items managed by this Store
-        * @return
-        */
-       Class<Item> getItemType();
        
        /**
         * Removes an item with the given uri from the  store
@@ -46,29 +43,4 @@ public interface Store<Item> {
      */
     String put(Item item) throws StoreException;
 
-    /** 
-     * Gets a Item by uri, null if non-existing 
-     * @param uri the uri of the item
-     * @return the item or <code>null</code> if not present
-     * @throws StoreException on any error while retrieving the item
-     */
-    Item get(String uri) throws StoreException;
-
-    /**
-     * Requests the next <code>batchSize</code> changes starting from 
<code>revision</code>. If there are no
-     * more revisions that a {@link ChangeSet} with an empty {@link 
ChangeSet#changed()} set. There can be
-     * more changes in the results than the given <code>batchSize</code> not 
to return a subset of changes
-     * regarding a specific revision. For instance, if the batch size is 5, 
given revision is 9 and there 15
-     * changes regarding revision 10. As a result, there will be 10 changed 
items in the returned change set.
-     * 
-     * @param revision
-     *            Starting revision number for the returned {@link ChangeSet}
-     * @param batchSize
-     *            Maximum number of changes to be returned
-     * @return the {@link ChangeSet} with a maximum of <code>batchSize</code> 
changes
-     * @throws StoreException
-     *             On any error while accessing the store.
-     * @see ChangeSet
-     */
-    ChangeSet<Item> changes(long revision, int batchSize) throws 
StoreException;
 }

Modified: 
incubator/stanbol/branches/contenthub-two-layered-structure/contenthub/index/src/main/java/org/apache/stanbol/contenthub/index/ldpath/LDPathSemanticIndex.java
URL: 
http://svn.apache.org/viewvc/incubator/stanbol/branches/contenthub-two-layered-structure/contenthub/index/src/main/java/org/apache/stanbol/contenthub/index/ldpath/LDPathSemanticIndex.java?rev=1365601&r1=1365600&r2=1365601&view=diff
==============================================================================
--- 
incubator/stanbol/branches/contenthub-two-layered-structure/contenthub/index/src/main/java/org/apache/stanbol/contenthub/index/ldpath/LDPathSemanticIndex.java
 (original)
+++ 
incubator/stanbol/branches/contenthub-two-layered-structure/contenthub/index/src/main/java/org/apache/stanbol/contenthub/index/ldpath/LDPathSemanticIndex.java
 Wed Jul 25 14:29:02 2012
@@ -53,7 +53,7 @@ import org.apache.stanbol.commons.semant
 import org.apache.stanbol.commons.semanticindex.index.IndexState;
 import org.apache.stanbol.commons.semanticindex.index.SemanticIndex;
 import org.apache.stanbol.commons.semanticindex.store.ChangeSet;
-import org.apache.stanbol.commons.semanticindex.store.Store;
+import org.apache.stanbol.commons.semanticindex.store.IndexingSource;
 import org.apache.stanbol.commons.semanticindex.store.StoreException;
 import org.apache.stanbol.commons.solr.IndexReference;
 import org.apache.stanbol.commons.solr.RegisteredSolrServerTracker;
@@ -147,7 +147,7 @@ public class LDPathSemanticIndex impleme
     // Semantic Indexes should be connected to stores based on the
     // name of the Store!
     @Reference
-    private Store<ContentItem> store;
+    private IndexingSource<ContentItem> store;
 
     @Reference
     private SiteManager siteManager;


Reply via email to