summaryrefslogtreecommitdiffstats
path: root/org/madore/damlengine/TodoAttr.java
diff options
context:
space:
mode:
authorDavid A. Madore <david@procyon.(none)>2010-04-14 20:52:52 +0200
committerDavid A. Madore <david@procyon.(none)>2010-04-14 20:52:52 +0200
commit5c6ccfca16a421860cd57d11e41d94d8a70cda76 (patch)
treee4a8591e48ebaf93d003dc61f1a42bcf66c1033d /org/madore/damlengine/TodoAttr.java
parent7d6eccbd43ba703306328e133c43e0760ceead8c (diff)
downloaddamlengine-5c6ccfca16a421860cd57d11e41d94d8a70cda76.tar.gz
damlengine-5c6ccfca16a421860cd57d11e41d94d8a70cda76.tar.bz2
damlengine-5c6ccfca16a421860cd57d11e41d94d8a70cda76.zip
Make handlers instances instead of using static methods.
Diffstat (limited to 'org/madore/damlengine/TodoAttr.java')
-rw-r--r--org/madore/damlengine/TodoAttr.java31
1 files changed, 7 insertions, 24 deletions
diff --git a/org/madore/damlengine/TodoAttr.java b/org/madore/damlengine/TodoAttr.java
index c4e554a..e11abac 100644
--- a/org/madore/damlengine/TodoAttr.java
+++ b/org/madore/damlengine/TodoAttr.java
@@ -1,7 +1,5 @@
package org.madore.damlengine;
-import java.lang.reflect.Method;
-import java.lang.reflect.InvocationTargetException;
import java.util.Map;
import java.util.HashMap;
import org.w3c.dom.Element;
@@ -9,18 +7,11 @@ import org.w3c.dom.Attr;
public class TodoAttr extends TodoItem {
- protected static Map<String,Method> damlHandlers;
+ protected static Map<String,AttrHandler> damlAttrHandlers;
{
- Class[] handlerArgTypes = new Class[]{ TodoAttr.class };
- damlHandlers = new HashMap<String,Method>();
- try {
- damlHandlers.put("xempty",
- XemptyAttrHandler.class.getMethod("handle", handlerArgTypes));
- } catch (NoSuchMethodException e) {
- // FIXME: this isn't good...
- throw new Error("this is impossible");
- }
+ damlAttrHandlers = new HashMap<String,AttrHandler>();
+ damlAttrHandlers.put("xempty", new XemptyAttrHandler());
}
Attr attr;
@@ -37,22 +28,14 @@ public class TodoAttr extends TodoItem {
}
public void dispatch() {
- Method handler;
+ AttrHandler handler;
String nsuri = attr.getNamespaceURI();
if ( nsuri != null && nsuri.equals(DamlEngine.DAML_NS) ) {
- handler = damlHandlers.get(attr.getLocalName());
+ handler = damlAttrHandlers.get(attr.getLocalName());
} else
handler = null;
- try {
- if ( handler != null )
- handler.invoke(null, new Object[]{this});
- } catch (IllegalAccessException e) {
- // FIXME: this isn't good...
- throw new Error("this is impossible");
- } catch (InvocationTargetException e) {
- // FIXME: this isn't good...
- throw new Error("this is impossible");
- }
+ if ( handler != null )
+ handler.handle(this);
}
}