package nl.nikhef.tools.xml;

import java.util.ArrayList;
import java.util.List;

import javax.xml.stream.XMLStreamException;

public class XOLTest {

	public static class Foo {
		
		private int _stuff;
		private List<Bar> _bars = new ArrayList<Bar>();
		
		public void setStuff(int stuff)
		{
			_stuff = stuff;			
		}
		
		public void add(Bar b) {
			_bars.add(b);
		}
		
		public String toString() {
			return String.format("{Foo stuff=%d bars=%s}", _stuff, _bars.toString());
		}
	}
	
	public static class Bar {
		
		
		private String _id;
		
		@Override
		public String toString() {
			return String.format("{Bar id=%s}", _id);
		}
		
		public void setId(String id) {
			_id = id;
		}
	}
	
	
	public static void main(String[] args) {
		
		XOL xol = new XOL();
		
		xol.setMapping("foo", Foo.class);
		xol.setMapping("bar", Bar.class);
		
		try {
			List<? extends Object> objs = xol.parseString(
					"<?xml version=\"1.0\"?>" +
					"<foo stuff=\"3\"><bar id=\"3\"/><bar id=\"4\"/></foo>");
			
			for (Object obj : objs) {
				System.out.println(obj.toString());
			}
		} catch (XMLStreamException e) {
			e.printStackTrace();
		}
		
	}
}

