Author: mes
Date: 2011-03-13 18:26:37 -0700 (Sun, 13 Mar 2011)
New Revision: 24423
Added:
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/AbstractStringTunableHandler.java
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/FileTunableHandler.java
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/IntTunableHandler.java
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/StringTunableHandler.java
Modified:
core3/command-executor-impl/trunk/pom.xml
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/CommandExecutorImpl.java
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/NTFExecutor.java
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/TFExecutor.java
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableHandlerFactory.java
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableInterceptorImpl.java
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/DummyTunableHandler.java
Log:
added tunable support
Modified: core3/command-executor-impl/trunk/pom.xml
===================================================================
--- core3/command-executor-impl/trunk/pom.xml 2011-03-12 02:08:09 UTC (rev
24422)
+++ core3/command-executor-impl/trunk/pom.xml 2011-03-14 01:26:37 UTC (rev
24423)
@@ -85,6 +85,11 @@
</dependency>
<dependency>
<groupId>org.cytoscape</groupId>
+ <artifactId>work-api</artifactId>
+ <version>3.0.0-alpha3-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.cytoscape</groupId>
<artifactId>work-spring-hack</artifactId>
<version>3.0.0-alpha1</version>
</dependency>
Modified:
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/CommandExecutorImpl.java
===================================================================
---
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/CommandExecutorImpl.java
2011-03-12 02:08:09 UTC (rev 24422)
+++
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/CommandExecutorImpl.java
2011-03-14 01:26:37 UTC (rev 24423)
@@ -23,7 +23,7 @@
private final Map<String, Map<String,Executor>> commandExecutorMap =
new
HashMap<String,Map<String,Executor>>();
- private final TunableInterceptor interceptor = new
CommandTunableInterceptorImpl(new CommandTunableHandlerFactory());
+ private final CommandTunableInterceptorImpl interceptor = new
CommandTunableInterceptorImpl(new CommandTunableHandlerFactory());
private final CyApplicationManager appMgr;
public CommandExecutorImpl(CyApplicationManager appMgr) {
Modified:
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/NTFExecutor.java
===================================================================
---
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/NTFExecutor.java
2011-03-12 02:08:09 UTC (rev 24422)
+++
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/NTFExecutor.java
2011-03-14 01:26:37 UTC (rev 24423)
@@ -5,12 +5,13 @@
import org.cytoscape.task.NetworkTaskFactory;
import org.cytoscape.work.TunableInterceptor;
import org.cytoscape.session.CyApplicationManager;
+import org.cytoscape.command.internal.tunables.CommandTunableInterceptorImpl;
class NTFExecutor extends TFExecutor {
private final NetworkTaskFactory ntf;
private final CyApplicationManager appMgr;
- public NTFExecutor(NetworkTaskFactory ntf, TunableInterceptor
interceptor, CyApplicationManager appMgr) {
+ public NTFExecutor(NetworkTaskFactory ntf,
CommandTunableInterceptorImpl interceptor, CyApplicationManager appMgr) {
super(ntf,interceptor);
this.ntf = ntf;
this.appMgr = appMgr;
Modified:
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/TFExecutor.java
===================================================================
---
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/TFExecutor.java
2011-03-12 02:08:09 UTC (rev 24422)
+++
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/TFExecutor.java
2011-03-14 01:26:37 UTC (rev 24423)
@@ -6,13 +6,14 @@
import org.cytoscape.work.TaskIterator;
import org.cytoscape.work.Task;
import org.cytoscape.work.TunableInterceptor;
+import org.cytoscape.command.internal.tunables.CommandTunableInterceptorImpl;
class TFExecutor implements Executor {
private final TaskFactory tf;
- private final TunableInterceptor interceptor;
+ private final CommandTunableInterceptorImpl interceptor;
private final TaskMonitor tm = new OutTaskMonitor();
- public TFExecutor(TaskFactory tf, TunableInterceptor interceptor) {
+ public TFExecutor(TaskFactory tf, CommandTunableInterceptorImpl
interceptor) {
this.tf = tf;
this.interceptor = interceptor;
}
@@ -23,6 +24,7 @@
TaskIterator ti = tf.getTaskIterator();
while (ti.hasNext()) {
Task t = ti.next();
+ interceptor.setArgString(args);
interceptor.loadTunables(t);
interceptor.execUI(t);
t.run(tm);
Added:
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/AbstractStringTunableHandler.java
===================================================================
---
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/AbstractStringTunableHandler.java
(rev 0)
+++
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/AbstractStringTunableHandler.java
2011-03-14 01:26:37 UTC (rev 24423)
@@ -0,0 +1,58 @@
+
+package org.cytoscape.command.internal.tunables;
+
+
+
+import org.cytoscape.work.TunableHandler;
+import org.cytoscape.work.Tunable;
+import org.cytoscape.work.AbstractTunableHandler;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public abstract class AbstractStringTunableHandler extends
AbstractTunableHandler implements StringTunableHandler {
+
+ private static final Logger logger =
LoggerFactory.getLogger(IntTunableHandler.class);
+
+ protected String[] args;
+
+ public AbstractStringTunableHandler(Field f, Object o, Tunable t) {
+ super(f,o,t);
+ }
+
+ public AbstractStringTunableHandler(Method get, Method set, Object o,
Tunable t) {
+ super(get,set,o,t);
+ }
+
+ public void handle() {
+ try {
+ for ( int i = 0; i < args.length; i++ ) {
+ String arg = args[i];
+ if ( arg.equals(getName()) && (i+1) < args.length ) {
+ Object value;
+ try {
+ value = processArg(args[i+1]);
+ } catch (Exception e) {
+ logger.warn("Couldn't parse value from:
" + args[i+1], e);
+ return;
+ }
+ setValue(value);
+ return;
+ }
+ }
+ logger.warn("found no match for tunable: " +
getQualifiedName());
+ } catch ( Exception e) {
+ logger.warn("tunable handler exception: " +
getQualifiedName(), e);
+ }
+ }
+
+ public void setArgString(String s) {
+ if ( s != null )
+ args = s.split("\\s+");
+ }
+
+ public abstract Object processArg(String arg) throws Exception;
+}
Modified:
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableHandlerFactory.java
===================================================================
---
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableHandlerFactory.java
2011-03-12 02:08:09 UTC (rev 24422)
+++
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableHandlerFactory.java
2011-03-14 01:26:37 UTC (rev 24423)
@@ -18,10 +18,10 @@
import org.cytoscape.work.util.ListSingleSelection;
-public class CommandTunableHandlerFactory implements
TunableHandlerFactory<TunableHandler> {
+public class CommandTunableHandlerFactory implements
TunableHandlerFactory<StringTunableHandler> {
- public TunableHandler getHandler(final Method getter, final Method
setter, final Object instance, final Tunable tunable) {
+ public StringTunableHandler getHandler(final Method getter, final
Method setter, final Object instance, final Tunable tunable) {
final Class<?> type = getter.getReturnType();
if (type == Boolean.class || type == boolean.class)
@@ -29,7 +29,7 @@
if (type == String.class)
return new DummyTunableHandler(getter, setter,
instance, tunable);
if (type == Integer.class || type == int.class)
- return new DummyTunableHandler(getter, setter,
instance, tunable);
+ return new IntTunableHandler(getter, setter, instance,
tunable);
if (type == Double.class || type == double.class)
return new DummyTunableHandler(getter, setter,
instance, tunable);
if (type == Float.class || type == float.class)
@@ -49,7 +49,7 @@
if (type == ListMultipleSelection.class)
return new DummyTunableHandler(getter, setter,
instance, tunable);
if (type == File.class)
- return new DummyTunableHandler(getter, setter,
instance, tunable);
+ return new FileTunableHandler(getter, setter, instance,
tunable);
if (type == URL.class)
return new DummyTunableHandler(getter, setter,
instance, tunable);
if (type == InputStream.class)
@@ -58,7 +58,7 @@
return null;
}
- public TunableHandler getHandler(final Field field, final Object
instance, final Tunable tunable) {
+ public StringTunableHandler getHandler(final Field field, final Object
instance, final Tunable tunable) {
final Class<?> type = field.getType();
if (type == Boolean.class || type == boolean.class)
@@ -66,7 +66,7 @@
if (type == String.class)
return new DummyTunableHandler(field, instance,
tunable);
if (type == Integer.class || type == int.class)
- return new DummyTunableHandler(field, instance,
tunable);
+ return new IntTunableHandler(field, instance, tunable);
if (type == Double.class || type == double.class)
return new DummyTunableHandler(field, instance,
tunable);
if (type == Float.class || type == float.class)
@@ -86,7 +86,7 @@
if (type == ListMultipleSelection.class)
return new DummyTunableHandler(field, instance,
tunable);
if (type == File.class)
- return new DummyTunableHandler(field, instance,
tunable);
+ return new FileTunableHandler(field, instance, tunable);
if (type == URL.class)
return new DummyTunableHandler(field, instance,
tunable);
if (type == InputStream.class)
Modified:
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableInterceptorImpl.java
===================================================================
---
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableInterceptorImpl.java
2011-03-12 02:08:09 UTC (rev 24422)
+++
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/CommandTunableInterceptorImpl.java
2011-03-14 01:26:37 UTC (rev 24423)
@@ -17,24 +17,29 @@
import org.slf4j.LoggerFactory;
-public class CommandTunableInterceptorImpl extends
SpringTunableInterceptor<TunableHandler> {
- private boolean newValuesSet;
+public class CommandTunableInterceptorImpl extends
SpringTunableInterceptor<StringTunableHandler> {
+ private String args;
- public CommandTunableInterceptorImpl(final
TunableHandlerFactory<TunableHandler> factory) {
+ public CommandTunableInterceptorImpl(final
TunableHandlerFactory<StringTunableHandler> factory) {
super(factory);
}
public boolean execUI(Object... objs) {
return validateAndWriteBackTunables(objs);
}
+
+ public void setArgString(String args) {
+ this.args = args;
+ }
public boolean validateAndWriteBackTunables(Object... objs) {
for ( Object o : objs ) {
- Map<String,TunableHandler> handlers = getHandlers(o);
- for ( String s : handlers.keySet() ) {
- System.out.println("got handler for tunable
param: " + s);
+ Map<String,StringTunableHandler> handlers =
getHandlers(o);
+ for ( StringTunableHandler h : handlers.values() ) {
+ h.setArgString(args);
+ h.handle();
}
- }
+ }
return true;
}
}
Modified:
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/DummyTunableHandler.java
===================================================================
---
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/DummyTunableHandler.java
2011-03-12 02:08:09 UTC (rev 24422)
+++
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/DummyTunableHandler.java
2011-03-14 01:26:37 UTC (rev 24423)
@@ -11,15 +11,12 @@
import java.lang.reflect.Method;
-public class DummyTunableHandler extends AbstractTunableHandler {
+public class DummyTunableHandler extends AbstractTunableHandler implements
StringTunableHandler {
- public DummyTunableHandler(Field f, Object o, Tunable t) {
- super(f,o,t);
- }
- public DummyTunableHandler(Method get, Method set, Object o, Tunable t)
{
- super(get,set,o,t);
- }
+ public DummyTunableHandler(Field f, Object o, Tunable t) {
super(f,o,t); }
+ public DummyTunableHandler(Method get, Method set, Object o, Tunable t)
{ super(get,set,o,t); }
public void handle() {
- System.out.println("handling! " + getName());
+ System.out.println("Dummy handling! " + getName());
}
+ public void setArgString(String s) { }
}
Added:
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/FileTunableHandler.java
===================================================================
---
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/FileTunableHandler.java
(rev 0)
+++
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/FileTunableHandler.java
2011-03-14 01:26:37 UTC (rev 24423)
@@ -0,0 +1,17 @@
+
+package org.cytoscape.command.internal.tunables;
+
+import java.io.File;
+import org.cytoscape.work.Tunable;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class FileTunableHandler extends AbstractStringTunableHandler {
+
+ public FileTunableHandler(Field f, Object o, Tunable t) { super(f,o,t); }
+ public FileTunableHandler(Method get, Method set, Object o, Tunable t) {
super(get,set,o,t); }
+
+ public Object processArg(String arg) throws Exception {
+ return new File(arg);
+ }
+}
Added:
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/IntTunableHandler.java
===================================================================
---
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/IntTunableHandler.java
(rev 0)
+++
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/IntTunableHandler.java
2011-03-14 01:26:37 UTC (rev 24423)
@@ -0,0 +1,14 @@
+
+package org.cytoscape.command.internal.tunables;
+
+import org.cytoscape.work.Tunable;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class IntTunableHandler extends AbstractStringTunableHandler {
+ public IntTunableHandler(Field f, Object o, Tunable t) { super(f,o,t); }
+ public IntTunableHandler(Method get, Method set, Object o, Tunable t) {
super(get,set,o,t); }
+ public Object processArg(String arg) throws Exception {
+ return Integer.parseInt(arg);
+ }
+}
Added:
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/StringTunableHandler.java
===================================================================
---
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/StringTunableHandler.java
(rev 0)
+++
core3/command-executor-impl/trunk/src/main/java/org/cytoscape/command/internal/tunables/StringTunableHandler.java
2011-03-14 01:26:37 UTC (rev 24423)
@@ -0,0 +1,11 @@
+
+
+package org.cytoscape.command.internal.tunables;
+
+
+import org.cytoscape.work.TunableHandler;
+
+public interface StringTunableHandler extends TunableHandler {
+
+ void setArgString(String s);
+}
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.