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