|
From: <ri...@us...> - 2007-03-01 07:46:51
|
Revision: 88
http://techne-dev.svn.sourceforge.net/techne-dev/?rev=88&view=rev
Author: rickles
Date: 2007-02-28 23:46:51 -0800 (Wed, 28 Feb 2007)
Log Message:
-----------
Utility for XML parsing.
Added Paths:
-----------
sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/
sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/ConfigHandler.java
sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/SimpleElement.java
sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/bundle.java
sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/container.java
sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/containertype.java
Added: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/ConfigHandler.java
===================================================================
--- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/ConfigHandler.java (rev 0)
+++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/ConfigHandler.java 2007-03-01 07:46:51 UTC (rev 88)
@@ -0,0 +1,81 @@
+package org.digivitality.techne.core.util;
+
+import org.xml.sax.*;
+import org.xml.sax.helpers.*;
+import java.util.*;
+import java.lang.reflect.*;
+
+public class ConfigHandler extends DefaultHandler {
+ Stack stack = new Stack();
+ SimpleElement element;
+
+ public void startElement(String namespace, String localname, String qname, Attributes atts)
+ throws SAXException {
+
+ SimpleElement element = null;
+ String key = null;
+ try {
+ element = (SimpleElement)Class.forName("org.digivitality.techne.core.util." + qname).newInstance();
+ } catch (Exception e) {/*No class for element*/}
+
+ for(int i=0; i<atts.getLength(); i++) {
+ element.setAttributeValue(atts.getQName(i), atts.getValue(i));
+ }
+
+ stack.push(element);
+ }
+
+ public void endElement(String namespace, String localname, String qname)
+ throws SAXException {
+
+ element = (SimpleElement)stack.pop();
+
+ if (!stack.empty()) {
+ try {
+ //System.out.println("qname: " + qname);
+ //System.out.println("stack object: " + stack.peek());
+ //System.out.println("element: " + element);
+ setProperty(qname, stack.peek(), element );
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public void characters(char[] ch, int start, int len) {
+ String text = new String(ch, start, len);
+ ((SimpleElement)(stack.peek())).addText(text);
+ }
+
+ void setProperty(String name, Object target, Object value) throws SAXException {
+ //System.out.println("property: " + name);
+ //System.out.println("target: " + target.getClass());
+ //System.out.println("value: " + value.getClass());
+ Method method = null;
+ try {
+ method = target.getClass().getMethod(
+ "add" + name, new Class[] { value.getClass() } );
+ // invoke the method
+ //System.out.println("Method to execute: " + method.toString());
+ method.invoke(target, new Object[]{value});
+ } catch (Exception e) {throw new SAXException(e.toString()); }
+ /*
+ if (method == null) {
+ try {
+ method = target.getClass().getMethod(
+ "set" + name, new Class[] { value.getClass()} );
+ method.invoke(target.getClass().newInstance(), new Object[]{value});
+ } catch (Exception e) {throw new SAXException(e.toString()); }
+ }
+ */
+ if (method == null) {
+ throw new SAXException("No add method detected for " + target.getClass());
+ }
+
+ this.element = (SimpleElement)target;
+ }
+
+ public SimpleElement getModel() {
+ return element;
+ }
+}
Added: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/SimpleElement.java
===================================================================
--- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/SimpleElement.java (rev 0)
+++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/SimpleElement.java 2007-03-01 07:46:51 UTC (rev 88)
@@ -0,0 +1,26 @@
+package org.digivitality.techne.core.util;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class SimpleElement {
+
+ StringBuffer text = new StringBuffer();
+ Map properties = new HashMap();
+
+ public void addText(String s) {
+ text.append(s);
+ }
+
+ public String getText() {
+ return text.toString();
+ }
+
+ public void setAttributeValue(String key, String value) {
+ properties.put(key, value);
+ }
+
+ public Map getProperties() {
+ return properties;
+ }
+}
Added: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/bundle.java
===================================================================
--- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/bundle.java (rev 0)
+++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/bundle.java 2007-03-01 07:46:51 UTC (rev 88)
@@ -0,0 +1,14 @@
+package org.digivitality.techne.core.util;
+
+public class bundle extends SimpleElement {
+
+ String url;
+
+ public void seturl(String url) {
+ this.url = url;
+ }
+
+ public String getusr() {
+ return url;
+ }
+}
Added: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/container.java
===================================================================
--- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/container.java (rev 0)
+++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/container.java 2007-03-01 07:46:51 UTC (rev 88)
@@ -0,0 +1,18 @@
+package org.digivitality.techne.core.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class container extends SimpleElement {
+
+ List containerTypes = new ArrayList();
+
+ public void addcontainertype(containertype ct) {
+ //System.out.println("Adding containertype " + ct);
+ containerTypes.add(ct);
+ }
+
+ public List getContainerTypes() {
+ return containerTypes;
+ }
+}
Added: sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/containertype.java
===================================================================
--- sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/containertype.java (rev 0)
+++ sandbox/rickles/org.digivitality.techne.core/src/org/digivitality/techne/core/util/containertype.java 2007-03-01 07:46:51 UTC (rev 88)
@@ -0,0 +1,38 @@
+package org.digivitality.techne.core.util;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class containertype extends SimpleElement {
+
+ List bundles = new ArrayList();
+ String value;
+ String base;
+
+ public void addbundle(bundle b) {
+ bundles.add(b);
+ }
+ public List getBundles() {
+ return bundles;
+ }
+
+ public void setbundles(List bundles) {
+ this.bundles = bundles;
+ }
+
+ public void setvalue(String value) {
+ this.value = value;
+ }
+
+ public String getvalue() {
+ return value;
+ }
+
+ public void setbase(String base) {
+ this.base = base;
+ }
+
+ public String getbase() {
+ return base;
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|