@@ -3,30 +3,11 @@ package knowing.test.processor
import java.util.Properties
import akka.actor.ActorRef
import akka.actor.Actor.actorOf
import de.lmu.ifi.dbs.knowing.core.factory.TFactory
import de.lmu.ifi.dbs.knowing.core.factory.ProcessorFactory
import de.lmu.ifi.dbs.knowing.core.japi.JProcessor
import scala.collection.immutable.Map

class TestJavaProcessorFactory extends TFactory {

val id = TestJavaProcessorFactory.id // id from static field
val name = TestJavaProcessorFactory.name // name from static field

// actorOf our Wrapper class defined below
def getInstance(): ActorRef = actorOf[TestJavaProcessorWrapper]

def createDefaultProperties(): Properties = new Properties
def createPropertyValues(): Map[String, Array[_ <: Any]] = Map()
def createPropertyDescription(): Map[String, String] = Map()
}

/**
* static fields id and name
*/
object TestJavaProcessorFactory {
val id = classOf[TestJavaProcessor].getName
val name = "Test Java Processor"
}
class TestJavaProcessorFactory extends ProcessorFactory(classOf[TestJavaProcessorWrapper])

/**
* Wrapper class
@@ -0,0 +1,49 @@
package knowing.test.processor;

import weka.core.Instances;
import weka.filters.SimpleBatchFilter;
import de.lmu.ifi.dbs.knowing.core.events.*;
import de.lmu.ifi.dbs.knowing.core.japi.ILoggableProcessor;
import de.lmu.ifi.dbs.knowing.core.processing.TProcessor;
import de.lmu.ifi.dbs.knowing.core.util.ResultsUtil;

import static de.lmu.ifi.dbs.knowing.core.japi.LoggableProcessor.debug;
import static de.lmu.ifi.dbs.knowing.core.japi.LoggableProcessor.info;
import static de.lmu.ifi.dbs.knowing.core.japi.LoggableProcessor.warning;
import static de.lmu.ifi.dbs.knowing.core.japi.LoggableProcessor.error;
import static de.lmu.ifi.dbs.knowing.core.japi.LoggableProcessor.statusChanged;

public class TestWekaFilter extends SimpleBatchFilter implements ILoggableProcessor {

private static final long serialVersionUID = -1911272743884897903L;

private TProcessor processor;

@Override
public String globalInfo() {
return "";
}

@Override
protected Instances determineOutputFormat(Instances inputFormat) throws Exception {
info(processor, "DetermineOutputFormat ");
for(int i=0; i < 5; i++) {
statusChanged(processor, new Progress("DetermineOutputFormat", i, 5));
Thread.sleep(500);
}
warning(processor, "Just returning emptyResult");
return ResultsUtil.emptyResult();
}

@Override
protected Instances process(Instances instances) throws Exception {
debug(processor, "Process!");
return ResultsUtil.emptyResult();
}

@Override
public void setProcessor(TProcessor processor) {
this.processor = processor;
}

}
@@ -0,0 +1,13 @@
package knowing.test.processor

import de.lmu.ifi.dbs.knowing.core.weka.WekaFilterFactory
import de.lmu.ifi.dbs.knowing.core.weka.WekaFilter
import knowing.test.processor.TestWekaFilter

class TestWekaFilterFactory extends WekaFilterFactory[TestWekaFilterWrapper, TestWekaFilter](classOf[TestWekaFilterWrapper], classOf[TestWekaFilter]) {

}

class TestWekaFilterWrapper extends WekaFilter(new TestWekaFilter) {

}