Changeset 40
- Timestamp:
- 08/03/05 13:13:16 (3 years ago)
- Files:
-
- trunk/src/net/schst/XJConf/XmlReader.java (modified) (1 diff)
- trunk/src/net/schst/XJConf/ext/Math.java (modified) (3 diffs)
- trunk/xml/defines-extension.xml (modified) (1 diff)
- trunk/xml/test-extension.xml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/net/schst/XJConf/XmlReader.java
r39 r40 323 323 return; 324 324 } 325 DefinedTag tag = (DefinedTag)this.tagStack.peek();325 Tag tag = (Tag)this.tagStack.peek(); 326 326 tag.addData(buf, offset, len); 327 327 } trunk/src/net/schst/XJConf/ext/Math.java
r39 r40 1 1 package net.schst.XJConf.ext; 2 3 import java.util.ArrayList; 2 4 3 5 import net.schst.XJConf.Extension; … … 9 11 /** 10 12 * Basic example to show, how extensions may return values 13 * 14 * Supported tags are: 15 * - add 11 16 * 12 17 * @author Stephan Schmidt … … 27 32 throws XJConfException { 28 33 29 // add twovalues34 // add several values 30 35 if (tag.getName().equals("add")) { 31 Integer result = new Integer(Integer.parseInt(tag.getAttribute("value1")) + Integer.parseInt(tag.getAttribute("value2"))); 36 double result = 0; 37 38 ArrayList children = tag.getChildren(); 39 Tag child; 40 for (int i = 0; i < children.size(); i++) { 41 child = (Tag)children.get(i); 42 result = result + Double.parseDouble(child.getConvertedValue(this.getClass().getClassLoader()).toString()); 43 } 32 44 GenericTag resultTag = new GenericTag(tag.getName()); 33 resultTag.setValue( result);45 resultTag.setValue(new Double(result)); 34 46 return resultTag; 35 47 } 36 37 48 return null; 38 49 } trunk/xml/defines-extension.xml
r39 r40 1 1 <defines> 2 2 <tag name="map" type="java.util.HashMap"/> 3 <tag name="number" type="java.lang.Integer" keyAttribute="name"/> 3 <tag name="number" type="java.lang.Double" keyAttribute="name"/> 4 <tag name="int" type="java.lang.Integer" key="__none"/> 5 <tag name="double" type="java.lang.Double" key="__none"/> 4 6 5 7 <tag name="array" type="java.util.ArrayList"/> trunk/xml/test-extension.xml
r39 r40 3 3 xmlns:math="http://www.schst.net/XJConf/Math"> 4 4 <map> 5 <number name="foo"><math:add value1="10" value2="13"/></number> 6 <number name="bar"><math:add value1="35" value2="17"/></number> 5 <number name="foo"> 6 <math:add> 7 <int>13</int><int>34</int> 8 </math:add> 9 </number> 10 <number name="bar"> 11 <math:add> 12 <int>104</int><double>34.5</double> 13 </math:add> 14 </number> 7 15 </map> 8 16 <array> 9 <math:add value1="10" value2="13"/> 10 <math:add value1="20" value2="13"/> 17 <math:add> 18 <int>104</int><double>34.5</double> 19 </math:add> 20 <math:add> 21 <int>123</int><double>34.5321</double><double>-4</double> 22 </math:add> 11 23 </array> 12 24 </xj:configuration>
