You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by tf...@apache.org on 2013/04/20 23:23:42 UTC
svn commit: r1470235 [4/7] - in /db/torque/torque4/trunk: torque-generator/
torque-generator/src/main/java/org/apache/torque/generator/configuration/
torque-generator/src/main/java/org/apache/torque/generator/configuration/outlet/
torque-generator/src/...
Modified: db/torque/torque4/trunk/torque-generator/src/main/java/org/apache/torque/generator/template/groovy/TorqueGenGroovy.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/main/java/org/apache/torque/generator/template/groovy/TorqueGenGroovy.java?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/main/java/org/apache/torque/generator/template/groovy/TorqueGenGroovy.java (original)
+++ db/torque/torque4/trunk/torque-generator/src/main/java/org/apache/torque/generator/template/groovy/TorqueGenGroovy.java Sat Apr 20 21:23:39 2013
@@ -21,12 +21,10 @@ package org.apache.torque.generator.temp
import java.io.File;
import java.util.Date;
-import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.torque.generator.GeneratorException;
import org.apache.torque.generator.control.ControllerState;
-import org.apache.torque.generator.source.SourceElement;
import org.apache.torque.generator.variable.Variable;
/**
@@ -39,12 +37,12 @@ public class TorqueGenGroovy
/**
* The state of the controller in which this generator interface is used.
*/
- private ControllerState controllerState;
+ private final ControllerState controllerState;
/**
* The outlet in which context this class is used.
*/
- private GroovyOutlet outlet;
+ private final GroovyOutlet outlet;
/**
* A counter which can be used in velocity templates.
@@ -61,8 +59,8 @@ public class TorqueGenGroovy
* @throws NullPointerException if outlet or controllerState are null.
*/
public TorqueGenGroovy(
- GroovyOutlet outlet,
- ControllerState controllerState)
+ final GroovyOutlet outlet,
+ final ControllerState controllerState)
{
if (controllerState == null)
{
@@ -84,7 +82,7 @@ public class TorqueGenGroovy
* @throws GeneratorException if the mergepoint could not be processed
* completely.
*/
- public String mergepoint(String mergepointName)
+ public String mergepoint(final String mergepointName)
throws GeneratorException
{
return outlet.mergepoint(mergepointName, controllerState);
@@ -101,69 +99,33 @@ public class TorqueGenGroovy
}
/**
- * Returns the current source element. This method is shorthand for
- * <code>getControllerState().getSourceElement()</code>
+ * Returns the current model. This method is shorthand for
+ * <code>getControllerState().getModel()</code>
*
* @return the current source element, never null.
*/
- public SourceElement getSourceElement()
+ public Object getModel()
{
- return controllerState.getSourceElement();
+ return controllerState.getModel();
}
/**
- * Returns all children of the current source element.
- * This method is shorthand for
- * <code>getSourceElement().getChildren()</code>
- *
- * @return the children of the current source element, never null.
- */
- public List<SourceElement> getChildren()
- {
- return getSourceElement().getChildren();
- }
-
- /**
- * Returns the children of the current source element with a certain name.
- * This method is shorthand for
- * <code>getSourceElement().getChildren(name)</code>
- *
- * @param name the name of the children elements to select.
- *
- * @return the children of the current source element with the name name,
- * never null.
- */
- public List<SourceElement> getChildren(String name)
- {
- return getSourceElement().getChildren(name);
- }
-
- /**
- * Returns the first child of the current source element
- * with the given name.
- * This method is shorthand for
- * <code>getSourceElement().getChild(name)</code>
+ * Returns the option with the given key. The key can either be a name
+ * prefixed with a namespace, or a name without namespace, in which case
+ * the namespace of the currently active outlet is used.
*
- * @param name the name of the child element to select.
+ * In the case that the option is not set in this namespace, the parent
+ * namespaces are searched recursively. If the option is not set in any
+ * of the parent namespaces, null is returned.
*
- * @return the first child with the given name, or null if no such child
- * exists.
+ * @param key the key for the option to retrieve.
+ * @return the option for the given key.
*/
- public SourceElement getChild(String name)
+ public Object option(final String key)
{
- return getSourceElement().getChild(name);
- }
+ final Object result = controllerState.getOption(key);
- /**
- * Returns the parent of the current source element.
- * <code>getSourceElement().getParent()</code>
- *
- * @return the parent of the current source element, or null if the current
- * source element has no parent.
- */
- public SourceElement getParent()
- {
- return getSourceElement().getParent();
+ return result;
}
/**
@@ -178,9 +140,9 @@ public class TorqueGenGroovy
* @param key the key for the option to retrieve.
* @return the option for the given key.
*/
- public Object option(String key)
+ public Object getOption(final String key)
{
- Object result = controllerState.getOption(key);
+ final Object result = controllerState.getOption(key);
return result;
}
@@ -198,9 +160,9 @@ public class TorqueGenGroovy
* @param key the key for the option to retrieve.
* @return the option for the given key, converted to a boolean
*/
- public boolean booleanOption(String key)
+ public boolean booleanOption(final String key)
{
- boolean result = controllerState.getBooleanOption(key);
+ final boolean result = controllerState.getBooleanOption(key);
return result;
}
@@ -218,14 +180,14 @@ public class TorqueGenGroovy
* @param key the key for the option to retrieve.
* @return the option for the given key, converted to a boolean
*/
- public int intOption(String key)
+ public int intOption(final String key)
{
- Object optionValue = controllerState.getOption(key);
+ final Object optionValue = controllerState.getOption(key);
if (optionValue == null)
{
return 0;
}
- String optionString = optionValue.toString();
+ final String optionString = optionValue.toString();
if (StringUtils.isBlank(optionString))
{
return 0;
@@ -247,7 +209,7 @@ public class TorqueGenGroovy
* @return the variable for the given key, or null if the variable is not
* set or explicitly set to null.
*/
- public Object getVariable(String key)
+ public Object getVariable(final String key)
{
return outlet.getVariable(key, controllerState);
}
@@ -264,7 +226,7 @@ public class TorqueGenGroovy
* @throws NullPointerException if key or scope is null.
* @throws IllegalArgumentException if the key is no valid QualifiedName.
*/
- public void setVariable(String key, Object value)
+ public void setVariable(final String key, final Object value)
{
outlet.setVariable(key, value, controllerState);
}
@@ -281,9 +243,9 @@ public class TorqueGenGroovy
* @throws NullPointerException if key or scope is null.
* @throws IllegalArgumentException if the key is no valid QualifiedName.
*/
- public void setVariable(String key, Object value, String scope)
+ public void setVariable(final String key, final Object value, final String scope)
{
- Variable.Scope scopeValue = Variable.Scope.valueOf(scope);
+ final Variable.Scope scopeValue = Variable.Scope.valueOf(scope);
outlet.setVariable(key, value, scopeValue, controllerState);
}
Modified: db/torque/torque4/trunk/torque-generator/src/main/java/org/apache/torque/generator/template/velocity/TorqueGenVelocity.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/main/java/org/apache/torque/generator/template/velocity/TorqueGenVelocity.java?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/main/java/org/apache/torque/generator/template/velocity/TorqueGenVelocity.java (original)
+++ db/torque/torque4/trunk/torque-generator/src/main/java/org/apache/torque/generator/template/velocity/TorqueGenVelocity.java Sat Apr 20 21:23:39 2013
@@ -27,6 +27,7 @@ import org.apache.commons.lang.StringUti
import org.apache.torque.generator.GeneratorException;
import org.apache.torque.generator.control.ControllerState;
import org.apache.torque.generator.source.SourceElement;
+import org.apache.torque.generator.source.SourceException;
import org.apache.torque.generator.variable.Variable;
/**
@@ -101,14 +102,34 @@ public class TorqueGenVelocity
}
/**
- * Returns the current source element. This method is shorthand for
- * <code>getControllerState().getSourceElement()</code>
+ * Returns the current model object. This method is shorthand for
+ * <code>getControllerState().getModel()</code>
*
* @return the current source element, never null.
*/
- public SourceElement getSourceElement()
+ public Object getModel()
{
- return controllerState.getSourceElement();
+ return controllerState.getModel();
+ }
+
+ /**
+ * Returns the current source element, if it is a SourceElement.
+ * This method is shorthand for
+ * <code>(SourceElement)getControllerState().getModel()</code>
+ *
+ * @return the current source element, never null.
+ *
+ * @throws SourceException if the model is no SourceElement
+ */
+ public SourceElement getSourceElement() throws SourceException
+ {
+ Object model = controllerState.getModel();
+ if (model instanceof SourceElement)
+ {
+ return (SourceElement) model;
+ }
+ throw new SourceException("model is no SourceElement but is of class "
+ + model.getClass().getName());
}
/**
@@ -117,8 +138,10 @@ public class TorqueGenVelocity
* <code>getSourceElement().getChildren()</code>
*
* @return the children of the current source element, never null.
+ *
+ * @throws SourceException if the model is no SourceElement
*/
- public List<SourceElement> getChildren()
+ public List<SourceElement> getChildren() throws SourceException
{
return getSourceElement().getChildren();
}
@@ -132,8 +155,10 @@ public class TorqueGenVelocity
*
* @return the children of the current source element with the name name,
* never null.
+ *
+ * @throws SourceException if the model is no SourceElement
*/
- public List<SourceElement> getChildren(String name)
+ public List<SourceElement> getChildren(String name) throws SourceException
{
return getSourceElement().getChildren(name);
}
@@ -148,8 +173,10 @@ public class TorqueGenVelocity
*
* @return the first child with the given name, or null if no such child
* exists.
+ *
+ * @throws SourceException if the model is no SourceElement
*/
- public SourceElement getChild(String name)
+ public SourceElement getChild(String name) throws SourceException
{
return getSourceElement().getChild(name);
}
@@ -160,8 +187,10 @@ public class TorqueGenVelocity
*
* @return the parent of the current source element, or null if the current
* source element has no parent.
+ *
+ * @throws SourceException if the model is no SourceElement
*/
- public SourceElement getParent()
+ public SourceElement getParent() throws SourceException
{
return getSourceElement().getParent();
}
Modified: db/torque/torque4/trunk/torque-generator/src/main/java/org/apache/torque/generator/template/velocity/VelocityOutlet.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/main/java/org/apache/torque/generator/template/velocity/VelocityOutlet.java?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/main/java/org/apache/torque/generator/template/velocity/VelocityOutlet.java (original)
+++ db/torque/torque4/trunk/torque-generator/src/main/java/org/apache/torque/generator/template/velocity/VelocityOutlet.java Sat Apr 20 21:23:39 2013
@@ -230,20 +230,6 @@ public class VelocityOutlet extends Temp
e);
}
- SourceElement sourceElement = controllerState.getSourceElement();
-
- String inputElementName = getInputElementName();
- if (inputElementName != null
- && !inputElementName.equals(sourceElement.getName()))
- {
- throw new GeneratorException("Input element name, "
- + sourceElement.getName()
- + ", is not the expected name, "
- + getInputElementName()
- + ", for outlet "
- + getName());
- }
-
Context context = createVelocityContext(controllerState);
Writer writer = new StringWriter();
@@ -314,8 +300,13 @@ public class VelocityOutlet extends Temp
log.debug("options in context are disabled");
}
- SourceElement sourceElement = controllerState.getSourceElement();
- if (sourceAttributesInContext)
+ Object model = controllerState.getModel();
+ SourceElement sourceElement = null;
+ if (model instanceof SourceElement)
+ {
+ sourceElement = (SourceElement) model;
+ }
+ if (sourceAttributesInContext && sourceElement != null)
{
Set<String> attributes = sourceElement.getAttributeNames();
for (String key : attributes)
Modified: db/torque/torque4/trunk/torque-generator/src/main/resources/org/apache/torque/generator/configuration/configuration.xsd
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/main/resources/org/apache/torque/generator/configuration/configuration.xsd?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/main/resources/org/apache/torque/generator/configuration/configuration.xsd (original)
+++ db/torque/torque4/trunk/torque-generator/src/main/resources/org/apache/torque/generator/configuration/configuration.xsd Sat Apr 20 21:23:39 2013
@@ -198,14 +198,6 @@
</documentation>
</annotation>
</attribute>
- <attribute name="modelRootClass" type="string" use="optional">
- <annotation>
- <documentation>
- The fully qualified name of the class to construct from the root
- element.
- </documentation>
- </annotation>
- </attribute>
<attribute name="skipDecider" type="string" use="optional">
<annotation>
<documentation>
@@ -287,15 +279,6 @@
</documentation>
</annotation>
</attribute>
- <attribute name="elements" type="string" use="optional">
- <annotation>
- <documentation>
- The path to source elements to which the transformer is applied.
- If not set, the transformer is applied to the root element
- of the source.
- </documentation>
- </annotation>
- </attribute>
</complexType>
<complexType name="outletReference">
Modified: db/torque/torque4/trunk/torque-generator/src/main/resources/org/apache/torque/generator/configuration/outlet.xsd
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/main/resources/org/apache/torque/generator/configuration/outlet.xsd?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/main/resources/org/apache/torque/generator/configuration/outlet.xsd (original)
+++ db/torque/torque4/trunk/torque-generator/src/main/resources/org/apache/torque/generator/configuration/outlet.xsd Sat Apr 20 21:23:39 2013
@@ -83,6 +83,13 @@
<attribute name="sourceAttributesInBinding" type="string" use="optional"/>
<attribute name="variablesInBinding" type="string" use="optional"/>
<attribute name="encoding" type="string" use="optional"/>
+ <!--
+ Whether the outlet is a script(false) or template (true)
+ If not set, the type is retrieved from the path ending.
+ If the path ends with ".groovy" it is a script,
+ in all other cases it is a template;
+ -->
+ <attribute name="template" type="boolean" use="optional"/>
</extension>
</complexContent>
</complexType>
@@ -105,7 +112,9 @@
</complexType>
<complexType name="input">
- <attribute name="elementName" use="required" />
+ <!-- Exactly one of the attributes must be set -->
+ <attribute name="elementName" use="optional" />
+ <attribute name="class" use="optional" />
</complexType>
<complexType name="mergepoint">
Modified: db/torque/torque4/trunk/torque-generator/src/test/configuration/src/main/torque-gen-parent/conf/control.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/configuration/src/main/torque-gen-parent/conf/control.xml?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/configuration/src/main/torque-gen-parent/conf/control.xml (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/configuration/src/main/torque-gen-parent/conf/control.xml Sat Apr 20 21:23:39 2013
@@ -43,8 +43,7 @@
format="xml"
combineFiles="false"
skipDecider="org.apache.torque.generator.configuration.OtherConfigurationTestSkipDecider">
- <transformer elements="parent/database"
- class="org.apache.torque.generator.configuration.OtherConfigurationTestTransformer" />
+ <transformer class="org.apache.torque.generator.configuration.OtherConfigurationTestTransformer" />
<include>parentSource</include>
</source>
<outlet name="org.apache.torque.generator.test.readConfiguration.testParentOutlet"/>
@@ -54,8 +53,7 @@
<source xsi:type="fileSource"
format="properties"
skipDecider="org.apache.torque.generator.configuration.OtherConfigurationTestSkipDecider">
- <transformer elements="second/parent/database"
- class="org.apache.torque.generator.configuration.ConfigurationTestTransformer" />
+ <transformer class="org.apache.torque.generator.configuration.ConfigurationTestTransformer" />
<include>secondParentSource</include>
<exclude>secondParentExclude</exclude>
</source>
Modified: db/torque/torque4/trunk/torque-generator/src/test/configuration/src/main/torque-gen/conf/control.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/configuration/src/main/torque-gen/conf/control.xml?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/configuration/src/main/torque-gen/conf/control.xml (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/configuration/src/main/torque-gen/conf/control.xml Sat Apr 20 21:23:39 2013
@@ -50,8 +50,7 @@
combineFiles="true"
skipDecider="org.apache.torque.generator.configuration.ConfigurationTestSkipDecider">
<transformer class="org.apache.torque.generator.configuration.ConfigurationTestTransformer" />
- <transformer elements="database"
- class="org.apache.torque.generator.configuration.OtherConfigurationTestTransformer" />
+ <transformer class="org.apache.torque.generator.configuration.OtherConfigurationTestTransformer" />
<include>second.source.path.properties</include>
<exclude>second.excluded.properties</exclude>
</source>
Modified: db/torque/torque4/trunk/torque-generator/src/test/deeplyNestedMergepoints/src/main/torque-gen/conf/control.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/deeplyNestedMergepoints/src/main/torque-gen/conf/control.xml?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/deeplyNestedMergepoints/src/main/torque-gen/conf/control.xml (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/deeplyNestedMergepoints/src/main/torque-gen/conf/control.xml Sat Apr 20 21:23:39 2013
@@ -23,7 +23,7 @@
xsi:schemaLocation="http://db.apache.org/torque/4.0/generator/configuration http://db.apache.org/torque/4.0/generator/configuration.xsd"
xmlns="http://db.apache.org/torque/4.0/generator/configuration">
<output name="output" file="output.txt">
- <source xsi:type="fileSource" elements="sourceElement" format="xml">
+ <source xsi:type="fileSource" elements="/" format="xml">
<include>source.xml</include>
</source>
<outlet name="nestingOutlet0"/>
Modified: db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/appendStrategy/src/main/torque-gen/conf/control.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/appendStrategy/src/main/torque-gen/conf/control.xml?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/appendStrategy/src/main/torque-gen/conf/control.xml (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/appendStrategy/src/main/torque-gen/conf/control.xml Sat Apr 20 21:23:39 2013
@@ -24,13 +24,13 @@
xmlns="http://db.apache.org/torque/4.0/generator/configuration"
loglevel="debug">
<output name="output1" file="output1.txt" existingTargetStrategy="append">
- <source xsi:type="fileSource" elements="properties">
+ <source xsi:type="fileSource" elements="/">
<include>source1.properties</include>
</source>
<outlet name="org.apache.torque.generator.velocity.propertiesCopy" />
</output>
<output name="output2" file="output2.txt" existingTargetStrategy="append" outputDirKey="outputDirKey2">
- <source xsi:type="fileSource" elements="properties">
+ <source xsi:type="fileSource" elements="/">
<include>source2.properties</include>
</source>
<outlet name="org.apache.torque.generator.velocity.propertiesCopy" />
Modified: db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/initial/src/main/torque-gen/conf/control.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/initial/src/main/torque-gen/conf/control.xml?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/initial/src/main/torque-gen/conf/control.xml (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/initial/src/main/torque-gen/conf/control.xml Sat Apr 20 21:23:39 2013
@@ -24,13 +24,13 @@
xmlns="http://db.apache.org/torque/4.0/generator/configuration"
loglevel="debug">
<output name="output1" file="output1.txt">
- <source xsi:type="fileSource" elements="properties">
+ <source xsi:type="fileSource" elements="/">
<include>source1.properties</include>
</source>
<outlet name="org.apache.torque.generator.velocity.propertiesCopy" />
</output>
<output name="output2" file="output2.txt" outputDirKey="outputDirKey2">
- <source xsi:type="fileSource" elements="properties">
+ <source xsi:type="fileSource" elements="/">
<include>source2.properties</include>
</source>
<outlet name="org.apache.torque.generator.velocity.propertiesCopy" />
Modified: db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/mergeStrategy/src/main/torque-gen/conf/control.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/mergeStrategy/src/main/torque-gen/conf/control.xml?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/mergeStrategy/src/main/torque-gen/conf/control.xml (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/mergeStrategy/src/main/torque-gen/conf/control.xml Sat Apr 20 21:23:39 2013
@@ -24,13 +24,13 @@
xmlns="http://db.apache.org/torque/4.0/generator/configuration"
loglevel="debug">
<output name="output1" file="output1.txt" existingTargetStrategy="merge">
- <source xsi:type="fileSource" elements="properties">
+ <source xsi:type="fileSource" elements="/">
<include>source1.properties</include>
</source>
<outlet name="org.apache.torque.generator.velocity.propertiesCopy" />
</output>
<output name="output2" file="output2.txt" existingTargetStrategy="merge" outputDirKey="outputDirKey2">
- <source xsi:type="fileSource" elements="properties">
+ <source xsi:type="fileSource" elements="/">
<include>source2.properties</include>
</source>
<outlet name="org.apache.torque.generator.velocity.propertiesCopy" />
Modified: db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/replaceStrategy/src/main/torque-gen/conf/control.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/replaceStrategy/src/main/torque-gen/conf/control.xml?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/replaceStrategy/src/main/torque-gen/conf/control.xml (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/replaceStrategy/src/main/torque-gen/conf/control.xml Sat Apr 20 21:23:39 2013
@@ -24,13 +24,13 @@
xmlns="http://db.apache.org/torque/4.0/generator/configuration"
loglevel="debug">
<output name="output1" file="output1.txt">
- <source xsi:type="fileSource" elements="properties">
+ <source xsi:type="fileSource" elements="/">
<include>source1.properties</include>
</source>
<outlet name="org.apache.torque.generator.velocity.propertiesCopy" />
</output>
<output name="output2" file="output2.txt" existingTargetStrategy="replace" outputDirKey="outputDirKey2">
- <source xsi:type="fileSource" elements="properties">
+ <source xsi:type="fileSource" elements="/">
<include>source2.properties</include>
</source>
<outlet name="org.apache.torque.generator.velocity.propertiesCopy" />
Modified: db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/skipStrategy/src/main/torque-gen/conf/control.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/skipStrategy/src/main/torque-gen/conf/control.xml?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/skipStrategy/src/main/torque-gen/conf/control.xml (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/existingTargetStrategy/skipStrategy/src/main/torque-gen/conf/control.xml Sat Apr 20 21:23:39 2013
@@ -24,13 +24,13 @@
xmlns="http://db.apache.org/torque/4.0/generator/configuration"
loglevel="debug">
<output name="output1" file="output1.txt" existingTargetStrategy="skip">
- <source xsi:type="fileSource" elements="properties">
+ <source xsi:type="fileSource" elements="/">
<include>source1.properties</include>
</source>
<outlet name="org.apache.torque.generator.velocity.propertiesCopy" />
</output>
<output name="output2" file="output2.txt" existingTargetStrategy="skip" outputDirKey="outputDirKey2">
- <source xsi:type="fileSource" elements="properties">
+ <source xsi:type="fileSource" elements="/">
<include>source2.properties</include>
</source>
<outlet name="org.apache.torque.generator.velocity.propertiesCopy" />
Modified: db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/conf/control.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/conf/control.xml?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/conf/control.xml (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/conf/control.xml Sat Apr 20 21:23:39 2013
@@ -22,11 +22,17 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://db.apache.org/torque/4.0/generator/configuration http://db.apache.org/torque/4.0/generator/configuration.xsd"
xmlns="http://db.apache.org/torque/4.0/generator/configuration">
- <output name="output" file="output.txt">
- <source xsi:type="fileSource" elements="root" format="xml">
+ <output name="templateOutput" file="templateOutput.txt">
+ <source xsi:type="fileSource" elements="/" format="xml">
<include>source.xml</include>
</source>
- <outlet name="testGroovyOutlet"/>
+ <outlet name="groovyTemplate"/>
+ </output>
+ <output name="scriptOutput" file="scriptOutput.txt">
+ <source xsi:type="fileSource" elements="/" format="xml">
+ <include>source.xml</include>
+ </source>
+ <outlet name="groovyScript"/>
</output>
</control>
\ No newline at end of file
Modified: db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/outlets/outlets.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/outlets/outlets.xml?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/outlets/outlets.xml (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/outlets/outlets.xml Sat Apr 20 21:23:39 2013
@@ -22,8 +22,10 @@
xsi:schemaLocation="http://db.apache.org/torque/4.0/generator/configuration http://db.apache.org/torque/4.0/generator/configuration.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <outlet name="testGroovyOutlet"
+ <outlet name="groovyTemplate"
xsi:type="groovyOutlet"
- path="template.gtl">
- </outlet>
+ path="template.gtl"/>
+ <outlet name="groovyScript"
+ xsi:type="groovyOutlet"
+ path="template.groovy"/>
</outlets>
\ No newline at end of file
Added: db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/templates/template.groovy
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/templates/template.groovy?rev=1470235&view=auto
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/templates/template.groovy (added)
+++ db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/templates/template.groovy Sat Apr 20 21:23:39 2013
@@ -0,0 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+return "groovy script output: ${torqueGen.getModel().getName()}"
\ No newline at end of file
Modified: db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/templates/template.gtl
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/templates/template.gtl?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/templates/template.gtl (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/groovyTemplates/src/main/torque-gen/templates/template.gtl Sat Apr 20 21:23:39 2013
@@ -16,4 +16,4 @@
* specific language governing permissions and limitations
* under the License.
*/
-%>groovy template output: ${torqueGen.getSourceElement().getName()}
\ No newline at end of file
+%>groovy template output: ${torqueGen.getModel().getName()}
\ No newline at end of file
Modified: db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/configuration/ConfigurationTestTransformer.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/configuration/ConfigurationTestTransformer.java?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/configuration/ConfigurationTestTransformer.java (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/configuration/ConfigurationTestTransformer.java Sat Apr 20 21:23:39 2013
@@ -20,7 +20,6 @@ package org.apache.torque.generator.conf
*/
import org.apache.torque.generator.control.ControllerState;
-import org.apache.torque.generator.source.SourceElement;
import org.apache.torque.generator.source.transform.SourceTransformer;
import org.apache.torque.generator.source.transform.SourceTransformerException;
@@ -31,7 +30,7 @@ import org.apache.torque.generator.sourc
*/
public class ConfigurationTestTransformer implements SourceTransformer
{
- public SourceElement transform(SourceElement toTransformRoot,
+ public Object transform(Object toTransformRoot,
ControllerState controllerState) throws SourceTransformerException
{
return toTransformRoot;
Modified: db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/configuration/OtherConfigurationTestTransformer.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/configuration/OtherConfigurationTestTransformer.java?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/configuration/OtherConfigurationTestTransformer.java (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/configuration/OtherConfigurationTestTransformer.java Sat Apr 20 21:23:39 2013
@@ -20,7 +20,6 @@ package org.apache.torque.generator.conf
*/
import org.apache.torque.generator.control.ControllerState;
-import org.apache.torque.generator.source.SourceElement;
import org.apache.torque.generator.source.transform.SourceTransformer;
import org.apache.torque.generator.source.transform.SourceTransformerException;
@@ -31,7 +30,7 @@ import org.apache.torque.generator.sourc
*/
public class OtherConfigurationTestTransformer implements SourceTransformer
{
- public SourceElement transform(SourceElement toTransformRoot,
+ public Object transform(Object toTransformRoot,
ControllerState controllerState) throws SourceTransformerException
{
return toTransformRoot;
Modified: db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/configuration/ReadConfigurationTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/configuration/ReadConfigurationTest.java?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/configuration/ReadConfigurationTest.java (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/configuration/ReadConfigurationTest.java Sat Apr 20 21:23:39 2013
@@ -307,12 +307,10 @@ public class ReadConfigurationTest exten
transformerDefinitions.add(
new SourceTransformerDefinition(
- new ConfigurationTestTransformer(),
- null));
+ new ConfigurationTestTransformer()));
transformerDefinitions.add(
new SourceTransformerDefinition(
- new OtherConfigurationTestTransformer(),
- "database"));
+ new OtherConfigurationTestTransformer()));
sourceProcessConfiguration.setSourceTransformerDefinitions(
transformerDefinitions);
sourceProcessConfiguration.setSkipDecider(
@@ -397,7 +395,6 @@ public class ReadConfigurationTest exten
"org.apache.torque.generator.velocity.propertyCopy",
true),
action);
- assertEquals("inputElement", outlet.getInputElementName());
}
{
// mergepoint from the separate mapping
@@ -412,7 +409,6 @@ public class ReadConfigurationTest exten
"someOutletAction",
false),
action);
- assertEquals("inputElement", outlet.getInputElementName());
}
{
// other mergepoint from the separate mapping
@@ -427,7 +423,6 @@ public class ReadConfigurationTest exten
"newOutletAction",
true),
action);
- assertEquals("inputElement", outlet.getInputElementName());
}
}
@@ -445,7 +440,6 @@ public class ReadConfigurationTest exten
"test template output",
templateContentLicenseRemoved);
assertEquals(0, outlet.getMergepointMappings().size());
- assertNull(outlet.getInputElementName());
assertFalse(outlet.isOptionsInContext());
assertFalse(outlet.isSourceAttributesInContext());
assertFalse(outlet.isVariablesInContext());
@@ -712,8 +706,7 @@ public class ReadConfigurationTest exten
transformerDefinitions.add(
new SourceTransformerDefinition(
- new OtherConfigurationTestTransformer(),
- "parent/database"));
+ new OtherConfigurationTestTransformer()));
sourceProcessConfiguration.setSourceTransformerDefinitions(
transformerDefinitions);
sourceProcessConfiguration.setSkipDecider(
@@ -846,12 +839,10 @@ public class ReadConfigurationTest exten
= new ArrayList<SourceTransformerDefinition>();
transformerDefinitions.add(
new SourceTransformerDefinition(
- new ConfigurationTestTransformer(),
- null));
+ new ConfigurationTestTransformer()));
transformerDefinitions.add(
new SourceTransformerDefinition(
- new OtherConfigurationTestTransformer(),
- "database"));
+ new OtherConfigurationTestTransformer()));
sourceProcessConfiguration.setSourceTransformerDefinitions(
transformerDefinitions);
sourceProcessConfiguration.setSkipDecider(
@@ -936,7 +927,6 @@ public class ReadConfigurationTest exten
"org.apache.torque.generator.velocity.propertyCopy",
true),
action);
- assertEquals("inputElement", outlet.getInputElementName());
}
{
// mergepoint from the separate mapping in child
@@ -951,7 +941,6 @@ public class ReadConfigurationTest exten
"someOutletAction",
false),
action);
- assertEquals("inputElement", outlet.getInputElementName());
}
{
// other mergepoint from the separate mapping in child
@@ -966,7 +955,6 @@ public class ReadConfigurationTest exten
"newOutletAction",
true),
action);
- assertEquals("inputElement", outlet.getInputElementName());
}
}
Modified: db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/java/JavaOutlet.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/java/JavaOutlet.java?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/java/JavaOutlet.java (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/java/JavaOutlet.java Sat Apr 20 21:23:39 2013
@@ -83,9 +83,6 @@ public class JavaOutlet extends OutletIm
result = prime * result + ((bar == null) ? 0 : bar.hashCode());
result = prime * result + ((foo == null) ? 0 : foo.hashCode());
result = prime * result + getName().hashCode();
- result = prime * result + ((getInputElementName() == null)
- ? 0
- : getInputElementName().hashCode());
return result;
}
@@ -131,17 +128,6 @@ public class JavaOutlet extends OutletIm
{
return false;
}
- if (getInputElementName() == null)
- {
- if (other.getInputElementName() != null)
- {
- return false;
- }
- }
- else if (!getInputElementName().equals(other.getInputElementName()))
- {
- return false;
- }
return true;
}
}
Modified: db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/outlet/java/XmlOutletTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/outlet/java/XmlOutletTest.java?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/outlet/java/XmlOutletTest.java (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/outlet/java/XmlOutletTest.java Sat Apr 20 21:23:39 2013
@@ -43,7 +43,7 @@ public class XmlOutletTest
SourceElement rootElement = new SourceElement("root");
rootElement.getChildren().add(new SourceElement("child"));
ControllerState controllerState = new ControllerState();
- controllerState.setRootElement(rootElement);
+ controllerState.setModelRoot(rootElement);
XmlOutlet xmlOutlet = new XmlOutlet(new QualifiedName("test"));
OutletResult result = xmlOutlet.execute(controllerState);
assertEquals(
@@ -62,7 +62,7 @@ public class XmlOutletTest
SourceElement rootElement = new SourceElement("root");
rootElement.getChildren().add(new SourceElement("child"));
ControllerState controllerState = new ControllerState();
- controllerState.setRootElement(rootElement);
+ controllerState.setModelRoot(rootElement);
XmlOutlet xmlOutlet = new XmlOutlet(new QualifiedName("test"));
xmlOutlet.setCreateIdAttributes(true);
OutletResult result = xmlOutlet.execute(controllerState);
Modified: db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/source/SourcePathTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/source/SourcePathTest.java?rev=1470235&r1=1470234&r2=1470235&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/source/SourcePathTest.java (original)
+++ db/torque/torque4/trunk/torque-generator/src/test/java/org/apache/torque/generator/source/SourcePathTest.java Sat Apr 20 21:23:39 2013
@@ -20,9 +20,12 @@ package org.apache.torque.generator.sour
*/
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import org.apache.torque.generator.GeneratorException;
@@ -36,7 +39,10 @@ public class SourcePathTest
private SourceElement firstLevel2;
private SourceElement firstLevel3;
private SourceElement secondLevel;
+ private SourceElement secondLevela;
+ private SourceElement secondLevelb;
private SourceElement thirdLevel;
+ private Root modelRoot;
@Before
public void setUp()
@@ -52,6 +58,22 @@ public class SourcePathTest
firstLevel2.getChildren().add(secondLevel);
thirdLevel = new SourceElement("thirdLevel");
secondLevel.getChildren().add(thirdLevel);
+ secondLevela = new SourceElement("secondLevel");
+ firstLevel2.getChildren().add(secondLevela);
+ secondLevelb = new SourceElement("secondLevel");
+ firstLevel2.getChildren().add(secondLevelb);
+
+ modelRoot = new Root();
+ modelRoot.childList.add(new Child("child1"));
+ modelRoot.childList.add(new Child("child2"));
+ modelRoot.stringList.add("string1");
+ modelRoot.stringList.add("string2");
+ modelRoot.getPropertyList().add("propertyString1");
+ modelRoot.getPropertyList().add("propertyString2");
+ modelRoot.fieldValue = "fieldValue";
+ modelRoot.setPropertyValue("propertyValue");
+ modelRoot.setValue("setterValue");
+ modelRoot.value = "fieldValue";
}
@Test
@@ -65,8 +87,8 @@ public class SourcePathTest
@Test(expected = GeneratorException.class)
public void testGetPathInfiniteLoop() throws GeneratorException
{
- SourceElement loopElement1 = new SourceElement("loopElement1");
- SourceElement loopElement2 = new SourceElement("loopElement2");
+ final SourceElement loopElement1 = new SourceElement("loopElement1");
+ final SourceElement loopElement2 = new SourceElement("loopElement2");
loopElement1.getChildren().add(loopElement2);
loopElement2.getChildren().add(loopElement1);
SourcePath.getPathAsString(loopElement1);
@@ -75,9 +97,9 @@ public class SourcePathTest
@Test
public void testGetElementFromRootWithSlash()
{
- List<SourceElement> result
+ final List<SourceElement> result
= SourcePath.getElementsFromRoot(root, "/");
- List<SourceElement> expected = new ArrayList<SourceElement>();
+ final List<SourceElement> expected = new ArrayList<SourceElement>();
expected.add(root);
assertEquals(expected, result);
}
@@ -85,9 +107,9 @@ public class SourcePathTest
@Test
public void testGetElementFromRootSingleRelativeElement()
{
- List<SourceElement> result
+ final List<SourceElement> result
= SourcePath.getElementsFromRoot(root, "root");
- List<SourceElement> expected = new ArrayList<SourceElement>();
+ final List<SourceElement> expected = new ArrayList<SourceElement>();
expected.add(root);
assertEquals(expected, result);
}
@@ -95,7 +117,7 @@ public class SourcePathTest
@Test
public void testGetElementFromRootSingleRelativeElementNoMatch()
{
- List<SourceElement> result
+ final List<SourceElement> result
= SourcePath.getElementsFromRoot(root, "root1");
assertEquals(0, result.size());
}
@@ -103,9 +125,9 @@ public class SourcePathTest
@Test
public void testGetElementFromRootSingleAbsoluteElement()
{
- List<SourceElement> result
+ final List<SourceElement> result
= SourcePath.getElementsFromRoot(root, "/root");
- List<SourceElement> expected = new ArrayList<SourceElement>();
+ final List<SourceElement> expected = new ArrayList<SourceElement>();
expected.add(root);
assertEquals(expected, result);
}
@@ -113,7 +135,7 @@ public class SourcePathTest
@Test
public void testGetElementFromRootSingleAbsoluteElementNoMatch()
{
- List<SourceElement> result
+ final List<SourceElement> result
= SourcePath.getElementsFromRoot(root, "/root1");
assertEquals(0, result.size());
}
@@ -121,9 +143,9 @@ public class SourcePathTest
@Test
public void testGetElementFromRootWildcardAtStart()
{
- List<SourceElement> result
+ final List<SourceElement> result
= SourcePath.getElementsFromRoot(root, "/*");
- List<SourceElement> expected = new ArrayList<SourceElement>();
+ final List<SourceElement> expected = new ArrayList<SourceElement>();
expected.add(root);
assertEquals(expected, result);
}
@@ -131,10 +153,12 @@ public class SourcePathTest
@Test
public void testGetElementFromRootWildcardInMiddle()
{
- List<SourceElement> result
+ final List<SourceElement> result
= SourcePath.getElementsFromRoot(root, "/root/*/secondLevel");
- List<SourceElement> expected = new ArrayList<SourceElement>();
+ final List<SourceElement> expected = new ArrayList<SourceElement>();
expected.add(secondLevel);
+ expected.add(secondLevela);
+ expected.add(secondLevelb);
assertEquals(expected, result);
}
@@ -152,10 +176,10 @@ public class SourcePathTest
@Test
public void testGetElementFromRootParentInMiddle()
{
- List<SourceElement> result = SourcePath.getElementsFromRoot(
+ final List<SourceElement> result = SourcePath.getElementsFromRoot(
root,
"/root/firstLevel1/../firstLevel2");
- List<SourceElement> expected = new ArrayList<SourceElement>();
+ final List<SourceElement> expected = new ArrayList<SourceElement>();
expected.add(firstLevel2);
assertEquals(expected, result);
}
@@ -163,7 +187,7 @@ public class SourcePathTest
@Test
public void testGetPreceding()
{
- List<SourceElement> result
+ final List<SourceElement> result
= SourcePath.getPreceding(firstLevel2, "firstLevel1");
assertEquals(1, result.size());
assertSame(firstLevel1, result.get(0));
@@ -172,7 +196,7 @@ public class SourcePathTest
@Test
public void testGetPrecedingNoMatch()
{
- List<SourceElement> result
+ final List<SourceElement> result
= SourcePath.getPreceding(firstLevel2, "firstLevel2");
assertEquals(0, result.size());
}
@@ -180,7 +204,7 @@ public class SourcePathTest
public void testGetFollowing()
{
- List<SourceElement> result
+ final List<SourceElement> result
= SourcePath.getFollowing(firstLevel2, "firstLevel3");
assertEquals(1, result.size());
assertSame(firstLevel3, result.get(0));
@@ -189,8 +213,168 @@ public class SourcePathTest
@Test
public void testGetFollowingNoMatch()
{
- List<SourceElement> result
+ final List<SourceElement> result
= SourcePath.getFollowing(firstLevel2, "firstLevel2");
assertEquals(0, result.size());
}
+
+ @Test
+ public void testIterateGetRoot()
+ {
+ final Iterator<?> resultIt = SourcePath.iterate(root, "/");
+ assertTrue(resultIt.hasNext());
+ assertSame(root, resultIt.next());
+ assertFalse(resultIt.hasNext());
+ }
+
+ @Test
+ public void testIterateGetChild()
+ {
+ final Iterator<?> resultIt = SourcePath.iterate(root, "firstLevel1");
+ assertTrue(resultIt.hasNext());
+ assertSame(firstLevel1, resultIt.next());
+ assertFalse(resultIt.hasNext());
+ }
+
+ @Test
+ public void testIterateSeveralMatches()
+ {
+ final Iterator<?> resultIt = SourcePath.iterate(root, "firstLevel2/secondLevel");
+ assertTrue(resultIt.hasNext());
+ assertSame(secondLevel, resultIt.next());
+ assertTrue(resultIt.hasNext());
+ assertSame(secondLevela, resultIt.next());
+ assertTrue(resultIt.hasNext());
+ assertSame(secondLevelb, resultIt.next());
+ assertFalse(resultIt.hasNext());
+ }
+
+ /**
+ * Test that we can iterate over path where the parent element
+ * of the mathcing elements is not the primary parent element.
+ */
+ @Test
+ public void testIterateNotDefaultParent()
+ {
+ firstLevel1.getChildren().add(secondLevela);
+ firstLevel1.getChildren().add(secondLevel);
+ final Iterator<?> resultIt = SourcePath.iterate(root, "firstLevel1/secondLevel");
+ assertTrue(resultIt.hasNext());
+ assertSame(secondLevela, resultIt.next());
+ assertTrue(resultIt.hasNext());
+ assertSame(secondLevel, resultIt.next());
+ assertFalse(resultIt.hasNext());
+ }
+
+ @Test
+ public void testIterateModelStringField()
+ {
+ final Iterator<?> resultIt = SourcePath.iterate(modelRoot, "fieldValue");
+ assertTrue(resultIt.hasNext());
+ assertEquals("fieldValue", resultIt.next());
+ assertFalse(resultIt.hasNext());
+ }
+
+ @Test
+ public void testIterateModelStringGetter()
+ {
+ final Iterator<?> resultIt = SourcePath.iterate(modelRoot, "propertyValue");
+ assertTrue(resultIt.hasNext());
+ assertEquals("propertyValue", resultIt.next());
+ assertFalse(resultIt.hasNext());
+ }
+
+ @Test
+ public void testIterateModelStringFieldAndGetter()
+ {
+ final Iterator<?> resultIt = SourcePath.iterate(modelRoot, "value");
+ assertTrue(resultIt.hasNext());
+ assertEquals("setterValue", resultIt.next());
+ assertFalse(resultIt.hasNext());
+ }
+
+ @Test
+ public void testIterateModelListField()
+ {
+ final Iterator<?> resultIt = SourcePath.iterate(modelRoot, "stringList");
+ assertTrue(resultIt.hasNext());
+ assertEquals("string1", resultIt.next());
+ assertTrue(resultIt.hasNext());
+ assertEquals("string2", resultIt.next());
+ assertFalse(resultIt.hasNext());
+ }
+
+ @Test
+ public void testIterateModelListProperty()
+ {
+ final Iterator<?> resultIt = SourcePath.iterate(modelRoot, "propertyList");
+ assertTrue(resultIt.hasNext());
+ assertEquals("propertyString1", resultIt.next());
+ assertTrue(resultIt.hasNext());
+ assertEquals("propertyString2", resultIt.next());
+ assertFalse(resultIt.hasNext());
+ }
+
+ @Test
+ public void testIterateModelListChainedAttribute()
+ {
+ final Iterator<?> resultIt = SourcePath.iterate(modelRoot, "childList/value");
+ assertTrue(resultIt.hasNext());
+ assertEquals("child1", resultIt.next());
+ assertTrue(resultIt.hasNext());
+ assertEquals("child2", resultIt.next());
+ assertFalse(resultIt.hasNext());
+ }
+
+ public static class Root
+ {
+ public List<String> stringList = new ArrayList<String>();
+
+ public List<Child> childList = new ArrayList<Child>();
+
+ private final List<String> propertyList = new ArrayList<String>();
+
+ public String fieldValue;
+
+ public String value;
+
+ private String setterValue;
+
+ private String propertyValue;
+
+ public List<String> getPropertyList()
+ {
+ return propertyList;
+ }
+
+ public String getPropertyValue()
+ {
+ return propertyValue;
+ }
+
+ public void setPropertyValue(final String v)
+ {
+ this.propertyValue = v;
+ }
+
+ public String getValue()
+ {
+ return setterValue;
+ }
+
+ public void setValue(final String v)
+ {
+ this.setterValue = v;
+ }
+ }
+
+ public static class Child
+ {
+ public Child(final String value)
+ {
+ this.value = value;
+ }
+
+ public String value;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org