Java Condition
The Java Condition
The Java Condition can be used to check the value of a static field in a java class.
Example accessing a static field:
<condition type="java" id="myStaticFieldIsTrue">
<java>
<class>my.package.MyClass</class>
<field>myStaticField</field>
</java>
<returnvalue type="boolean">true</returnvalue>
</condition>
Example accessing a static method (as from izPack 5.2.0):
<condition type="java" id="myStaticFieldIsTrue">
<java>
<class>my.package.MyClass</class>
<method>processCondition</method>
</java>
<returnvalue type="boolean">true</returnvalue>
</condition>Nested Elements
The Java condition must have a ava element and a returnvalue element.
java
The java element contains two mandatory elements, class and field. <class> contains the fully qualified name of the class and either a <field> contains the name of the static field or a <method> containing the static method to inspect.
returnvalue
This element defines what is the expected value. Currently, only type="boolean" and "string" (as of izPack 5.2.0) are supported.
Complicated condition checks - example
In order to check for complicated conditions with java you can do the following. Assume that we use the same condition as above.
package my.package
public class MyClass {
public static boolean myStaticField = processCondition();
public static boolean processCondition() {
boolean conditionTrue = false;
//call other classes, conditionals, do processing, etc.
return conditionTrue;
}
}
Note that for logging you will need to use log4j or similar. I use groovy in conjunction with an AntListener to log condition logs to temp. An easier way to accomplish this is to use process panels but if you absolutely must have a condition determined by java methods then this is the best way