// Path: Dumbledroid/Dumbledroid/src/main/java/io/leocad/dumbledroid/data/xml/Node.java
// public class Node {
// 
// 	public String name;
// 	public String text;
// 	public List<Node> subnodes;
// 	public Map<String, String> attributes;
// 
// 	public Node() {
// 		this(null, null);
// 	}
// 
// 	public Node(String name, String text) {
// 		this.name = name;
// 		this.text = text;
// 	}
// 
// 	public String getAttribute(String attributeName) {
// 		if (this.attributes == null) {
// 			return null;
// 		}
// 
// 		return this.attributes.get(attributeName);
// 	}
// 
// 	public void setAttribute(String attributeName, String attributeValue) {
// 		if (this.attributes == null) {
// 			this.attributes = new HashMap<String, String>();
// 		}
// 		this.attributes.put(attributeName, attributeValue);
// 	}
// 
// 	public Node getFirstChild() {
// 		if (this.subnodes != null || this.subnodes.size() > 0) {
// 			return this.subnodes.get(0);
// 		}
// 		return null;
// 	}
// 
// 	public void addChild(Node subNode) {
// 		if (this.subnodes == null) {
// 			this.subnodes = new ArrayList<Node>();
// 		}
// 		this.subnodes.add(subNode);
// 	}
// 
// 	public List<Node> getChildrenByName(String nodeName) {
// 		List<Node> result = new ArrayList<Node>();
// 
// 		if (this.subnodes == null || nodeName == null || nodeName.length() == 0) {
// 			return result;
// 		}
// 
// 		for (Node node : this.subnodes) {
// 			if (nodeName.equalsIgnoreCase(node.name)) {
// 				result.add(node);
// 			}
// 		}
// 
// 		return result;
// 	}
// 
// 	public Node getChildByName(String name) {
// 		if (this.subnodes == null || name == null || name.length() == 0) {
// 			return null;
// 		}
// 
// 		for (Node node : this.subnodes) {
// 			if (name.equalsIgnoreCase(node.name)) {
// 				return node;
// 			}
// 		}
// 
// 		return null;
// 	}
// 
// 	protected void removeAllChildren() {
// 		if (this.subnodes != null) {
// 			this.subnodes.clear();
// 		}
// 	}
// }


import io.leocad.dumbledroid.data.xml.Node;
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import java.util.Vector;
import android.util.Log;
			} else {
				processSingleField(model, field, node);
			}

		} catch (NoSuchFieldException e) {
			Log.w(XmlReflector.class.getName(), "Can not locate field named " + node.name);

		} catch (IllegalAccessException e) {
			Log.w(XmlReflector.class.getName(), "Can not access field named " + node.name);

		} catch (InstantiationException e) {
			Log.w(XmlReflector.class.getName(), "Can not create an instance of the type defined in the field named " + node.name);
		}
	}

	private static void processSingleField(Object model, Field field, Node node) throws IllegalArgumentException, IllegalAccessException, InstantiationException {

		Class<?> type = field.getType();

		field.set(model, getObject(node, type));
	}

	private static Object getObject(Node node, Class<?> type) throws InstantiationException {

		if (type == String.class) {
			return node.text;

		} else if (type == boolean.class || type == Boolean.class) {
			return Boolean.valueOf(node.text);

// Path: Dumbledroid/Dumbledroid/src/main/java/io/leocad/dumbledroid/data/xml/Node.java
// public class Node {
// 
// 	public String name;
// 	public String text;
// 	public List<Node> subnodes;
// 	public Map<String, String> attributes;
// 
// 	public Node() {
// 		this(null, null);
// 	}
// 
// 	public Node(String name, String text) {
// 		this.name = name;
// 		this.text = text;
// 	}
// 
// 	public String getAttribute(String attributeName) {
// 		if (this.attributes == null) {
// 			return null;
// 		}
// 
// 		return this.attributes.get(attributeName);
// 	}
// 
// 	public void setAttribute(String attributeName, String attributeValue) {
// 		if (this.attributes == null) {
// 			this.attributes = new HashMap<String, String>();
// 		}
// 		this.attributes.put(attributeName, attributeValue);
// 	}
// 
// 	public Node getFirstChild() {
// 		if (this.subnodes != null || this.subnodes.size() > 0) {
// 			return this.subnodes.get(0);
// 		}
// 		return null;
// 	}
// 
// 	public void addChild(Node subNode) {
// 		if (this.subnodes == null) {
// 			this.subnodes = new ArrayList<Node>();
// 		}
// 		this.subnodes.add(subNode);
// 	}
// 
// 	public List<Node> getChildrenByName(String nodeName) {
// 		List<Node> result = new ArrayList<Node>();
// 
// 		if (this.subnodes == null || nodeName == null || nodeName.length() == 0) {
// 			return result;
// 		}
// 
// 		for (Node node : this.subnodes) {
// 			if (nodeName.equalsIgnoreCase(node.name)) {
// 				result.add(node);
// 			}
// 		}
// 
// 		return result;
// 	}
// 
// 	public Node getChildByName(String name) {
// 		if (this.subnodes == null || name == null || name.length() == 0) {
// 			return null;
// 		}
// 
// 		for (Node node : this.subnodes) {
// 			if (name.equalsIgnoreCase(node.name)) {
// 				return node;
// 			}
// 		}
// 
// 		return null;
// 	}
// 
// 	protected void removeAllChildren() {
// 		if (this.subnodes != null) {
// 			this.subnodes.clear();
// 		}
// 	}
// }


// Path: Dumbledroid/Dumbledroid/src/main/java/io/leocad/dumbledroid/data/XmlReflector.java
import io.leocad.dumbledroid.data.xml.Node;
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import java.util.Vector;
import android.util.Log;

			} else {
				processSingleField(model, field, node);
			}

		} catch (NoSuchFieldException e) {
			Log.w(XmlReflector.class.getName(), "Can not locate field named " + node.name);

		} catch (IllegalAccessException e) {
			Log.w(XmlReflector.class.getName(), "Can not access field named " + node.name);

		} catch (InstantiationException e) {
			Log.w(XmlReflector.class.getName(), "Can not create an instance of the type defined in the field named " + node.name);
		}
	}

	private static void processSingleField(Object model, Field field, Node node) throws IllegalArgumentException, IllegalAccessException, InstantiationException {

		Class<?> type = field.getType();

		field.set(model, getObject(node, type));
	}

	private static Object getObject(Node node, Class<?> type) throws InstantiationException {

		if (type == String.class) {
			return node.text;

		} else if (type == boolean.class || type == Boolean.class) {
			return Boolean.valueOf(node.text);

		} else if (type == int.class || type == Integer.class) {