com.izforge.izpack.rules
Class RulesEngine

java.lang.Object
  extended by com.izforge.izpack.rules.RulesEngine
All Implemented Interfaces:
java.io.Serializable

public class RulesEngine
extends java.lang.Object
implements java.io.Serializable

The rules engine class is the central point for checking conditions

Author:
Dennis Reil, created: 09.11.2006, 13:48:39
See Also:
Serialized Form

Field Summary
protected static java.util.Map<java.lang.String,Condition> conditionsmap
           
protected  IXMLElement conditionsspec
           
protected static AutomatedInstallData installdata
           
protected  java.util.Map<java.lang.String,java.lang.String> optionalpackconditions
           
protected  java.util.Map<java.lang.String,java.lang.String> packconditions
           
protected  java.util.Map<java.lang.String,java.lang.String> panelconditions
           
private static long serialVersionUID
           
 
Constructor Summary
private RulesEngine()
           
  RulesEngine(IXMLElement conditionsspecxml, AutomatedInstallData installdata)
           
  RulesEngine(java.util.Map<java.lang.String,Condition> rules, AutomatedInstallData installdata)
           
 
Method Summary
 void addCondition(Condition condition)
           
static Condition analyzeCondition(IXMLElement condition)
           
 boolean canInstallPack(java.lang.String packid, java.util.Properties variables)
          Is the installation of a pack possible?
 boolean canInstallPackOptional(java.lang.String packid, java.util.Properties variables)
          Is an optional installation of a pack possible if the condition is not met?
 boolean canShowPanel(java.lang.String panelid, java.util.Properties variables)
          Can a panel be shown?
protected  boolean checkAttribute(java.lang.String val, java.lang.String attribute, java.lang.String element)
          Checks if an attribute for an xmlelement is set.
private static void createBuiltinOsCondition(java.lang.String osVersionField, java.lang.String conditionId)
           
static IXMLElement createConditionElement(Condition condition, IXMLElement root)
           
static Condition getCondition(java.lang.String id)
           
protected static Condition getConditionByExpr(java.lang.StringBuffer conditionexpr)
           
private static java.lang.Class<Condition> getConditionClass(java.lang.String conditionClassName)
           
 java.lang.String[] getKnownConditionIds()
          Returns the current known condition ids.
private  void init()
          initializes builtin conditions
 boolean isConditionTrue(Condition cond)
           
 boolean isConditionTrue(Condition cond, java.util.Properties variables)
           
 boolean isConditionTrue(java.lang.String id)
           
 boolean isConditionTrue(java.lang.String id, java.util.Properties variables)
           
private static void loadStaticConditions()
           
protected  void readConditions()
          Read the spec for the conditions
 void writeRulesXML(java.io.OutputStream out)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

panelconditions

protected java.util.Map<java.lang.String,java.lang.String> panelconditions

packconditions

protected java.util.Map<java.lang.String,java.lang.String> packconditions

optionalpackconditions

protected java.util.Map<java.lang.String,java.lang.String> optionalpackconditions

conditionsspec

protected IXMLElement conditionsspec

conditionsmap

protected static java.util.Map<java.lang.String,Condition> conditionsmap

installdata

protected static AutomatedInstallData installdata
Constructor Detail

RulesEngine

private RulesEngine()

RulesEngine

public RulesEngine(IXMLElement conditionsspecxml,
                   AutomatedInstallData installdata)

RulesEngine

public RulesEngine(java.util.Map<java.lang.String,Condition> rules,
                   AutomatedInstallData installdata)
Method Detail

loadStaticConditions

private static void loadStaticConditions()

init

private void init()
initializes builtin conditions


createBuiltinOsCondition

private static void createBuiltinOsCondition(java.lang.String osVersionField,
                                             java.lang.String conditionId)

getKnownConditionIds

public java.lang.String[] getKnownConditionIds()
Returns the current known condition ids.

Returns:

checkAttribute

protected boolean checkAttribute(java.lang.String val,
                                 java.lang.String attribute,
                                 java.lang.String element)
Checks if an attribute for an xmlelement is set.

Parameters:
val - value of attribute to check
attribute - the attribute which is checked
element - the element
Returns:
true value was set false no value was set

analyzeCondition

public static Condition analyzeCondition(IXMLElement condition)

getConditionClass

private static java.lang.Class<Condition> getConditionClass(java.lang.String conditionClassName)

readConditions

protected void readConditions()
Read the spec for the conditions


getCondition

public static Condition getCondition(java.lang.String id)

getConditionByExpr

protected static Condition getConditionByExpr(java.lang.StringBuffer conditionexpr)

isConditionTrue

public boolean isConditionTrue(java.lang.String id,
                               java.util.Properties variables)

isConditionTrue

public boolean isConditionTrue(Condition cond,
                               java.util.Properties variables)

isConditionTrue

public boolean isConditionTrue(java.lang.String id)

isConditionTrue

public boolean isConditionTrue(Condition cond)

canShowPanel

public boolean canShowPanel(java.lang.String panelid,
                            java.util.Properties variables)
Can a panel be shown?

Parameters:
panelid - - id of the panel, which should be shown
variables - - the variables
Returns:
true - there is no condition or condition is met false - there is a condition and the condition was not met

canInstallPack

public boolean canInstallPack(java.lang.String packid,
                              java.util.Properties variables)
Is the installation of a pack possible?

Parameters:
packid -
variables -
Returns:
true - there is no condition or condition is met false - there is a condition and the condition was not met

canInstallPackOptional

public boolean canInstallPackOptional(java.lang.String packid,
                                      java.util.Properties variables)
Is an optional installation of a pack possible if the condition is not met?

Parameters:
packid -
variables -
Returns:

addCondition

public void addCondition(Condition condition)
Parameters:
condition -

writeRulesXML

public void writeRulesXML(java.io.OutputStream out)

createConditionElement

public static IXMLElement createConditionElement(Condition condition,
                                                 IXMLElement root)