1.1 restoration
[mir.git] / source / mircoders / producer / UnIndexingProducerNode.java
index 77a25d5..371ece7 100755 (executable)
@@ -30,6 +30,7 @@
 package mircoders.producer;
 
 import java.util.Map;
+import java.io.File;
 
 import mir.entity.Entity;
 import mir.entity.adapter.EntityAdapter;
@@ -37,22 +38,25 @@ import mir.log.LoggerWrapper;
 import mir.producer.ProducerFailure;
 import mir.producer.ProducerNode;
 import mir.util.ParameterExpander;
+import mir.util.FileFunctions;
 import mircoders.entity.EntityContent;
 import mircoders.search.IndexUtil;
 
 public class UnIndexingProducerNode implements ProducerNode {
   private String contentKey;
   private String indexPath;
+  private File indexBasePath;
 
-  public UnIndexingProducerNode(String aContentKey, String pathToIndex) {
+  public UnIndexingProducerNode(File anIndexBasePath, String aContentKey, String pathToIndex) {
     contentKey = aContentKey;
     indexPath=pathToIndex;
+    indexBasePath = anIndexBasePath;
   }
 
   public void produce(Map aValueMap, String aVerb, LoggerWrapper aLogger) throws ProducerFailure {
     Object data;
     Entity entity;
-    String index=null;
+    File indexFile;
 
     long startTime;
     long endTime;
@@ -60,7 +64,8 @@ public class UnIndexingProducerNode implements ProducerNode {
     startTime = System.currentTimeMillis();
 
     try {
-      index = ParameterExpander.expandExpression(aValueMap, indexPath);
+      indexFile = FileFunctions.getAbsoluteOrRelativeFile(indexBasePath, ParameterExpander.expandExpression(aValueMap, indexPath));
+
       data = ParameterExpander.findValueForKey( aValueMap, contentKey );
 
       if (! (data instanceof EntityAdapter)) {
@@ -71,9 +76,9 @@ public class UnIndexingProducerNode implements ProducerNode {
       if (! (entity instanceof EntityContent)) {
         throw new ProducerFailure("UnIndexingProducerNode: value of '"+contentKey+"' is not a content EntityAdapter, but a " + entity.getClass().getName() + " adapter", null);
       }
-      aLogger.info("UnIndexing " + (String) entity.getValue("id") + " out of " + index);
+      aLogger.info("UnIndexing " + entity.getFieldValue("id") + " out of " + indexFile.getAbsolutePath());
 
-      IndexUtil.unindexEntity((EntityContent) entity, index);
+      IndexUtil.unindexEntity((EntityContent) entity, indexFile);
     }
     catch (Throwable t) {
       aLogger.error("Error while unindexing content: " + t.getMessage());