You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Ederson Marcos Ferreira <ed...@gmail.com> on 2006/01/31 16:48:47 UTC

Betwixt: Working with chain lists

Hi,

I've been using Betwixt to convert xml file in JavaBeans. But I've
found some problems.
I have 4 classes: Config, Arrow, Tip and ElementB. In accordance with
the XML file below, inside of element 'elementA' I may have several
'arrow' elements and inside of element 'arrow' I may have several
'tip' elements, and after 'elementA' I have an 'elementB'. This works
almost perfectly, because Config class, used in the registerBeanClass
(reader.registerBeanClass(new InputSource(dotBetwixtDocument),
Config.class)), is constructed with the elements 'arrow'(which is a
List in Config class) and 'elementB', but for the element 'tip'(which
is a List in Arrow class) doesn't work. The classes have to follow a
hierarchy and the classes can't be separate. The attribute 'tip' in
the
class Arrow is empty. In the end the Config class should be constructed
following the structure below:

Config class
	private ElementB elementB; (it's OK!!!)
	private List arrows; (which should be populated with instances of
Arrow - it's OK!!!)

	public Config() {
		this.arrows = new ArrayList();
	}

	public List getArrows() {
		return this.arrows;
	}

	public void addArrow(Arrow arrow) {
		this.arrows.add(arrow);
	}

Arrow class
	private String att1; (it's OK!!!)
	private String att2; (it's OK!!!)
	private String att3; (it's OK!!!)
	private List tips; (which should be populated with instances of Tip -
but doesn't work!!! - this is the point, it's empty)

	public Arrow() {
		this.arrows = new ArrayList();
	}

	public List getTips() {
		return this.tips;
	}

	public void addTip(Tip tip) {
		this.tips.add(tip);
	}
	

What it happens?
Thank's very much.
Ederson Ferreira

My XML file follows the structure below:
<config>
       <elementA>
		   <arrow att1="X" att2="Y" att3="Z">
			 <tip att4="W" att5="true" att6="false" />
			 <tip att4="U" att5="false" att6="true" />
		   </arrow>

		   <arrow att1="K" att2="L" att3="M">
			 <tip att4="R" att5="true" att6="false" />
			 <tip att4="S" att5="false" att6="true" />
		   </arrow>
       </elementA>
   <elementB att7="Q" />
<config>

My .betwixt document, inside application:
<?xml version='1.0' encoding='UTF-8' ?>
<info primitiveTypes='attribute'>
   <element name='config'>

	   <element name='elementA'>
		   <element name='arrow'
				class='com.emf.tests.Arrow'
				property='arrows'>
			   <attribute name='att1' property='att1'/>
			   <attribute name='att2' property='att2'/>
			   <attribute name='att3' property='att3'/>

			   <element name='tip'
						class='com.emf.tests.Tip'
						property='tips'>
					   <attribute name='att4' property='att4'/>
					   <attribute name='att5' property='att5'/>
					   <attribute name='att6' property='att6'/>
			   </element>

		   </element>
	   </element>

	   <element name='elementB'
			class='com.emf.tests.ElementB'
			property='elementB'>
		   <attribute name='att7' property='att7'/>
	   </element>

	   <addDefaults/>
   </element>
</info>

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org