訊息驅動批次規則引擎 (1) -規則元件

規則元件程式

package com.progria; import java.util.Properties; import org.easyrules.annotation.Action; import org.easyrules.annotation.Condition; import org.easyrules.annotation.Priority; import org.easyrules.annotation.Rule; @Rule(name = "Age Rule", description = "Young") public class AgeRule { private Properties actionResult = null; private int age = 100; public AgeRule(Properties actionResult) { super(); this.actionResult = actionResult; } @Condition public boolean checkRule() { return (age < 30); } @Action public void ruleAction() throws Exception { synchronized (this.actionResult) { this.actionResult.put("AgeRule", "2"); } } @Priority public int getPriority() { return 2; } public void setInput(String ageString) { this.age = Integer.parseInt(ageString); } }

package com.progria; import java.util.Properties; import org.easyrules.annotation.Action; import org.easyrules.annotation.Condition; import org.easyrules.annotation.Priority; import org.easyrules.annotation.Rule; @Rule(name = "Friendship Rule", description = "Friends") public class FriendshipRule { private Properties actionResult = null; private int friendship = 0; public FriendshipRule(Properties actionResult) { super(); this.actionResult = actionResult; } @Condition public boolean checkRule() { return (friendship != 0); } @Action public void ruleAction() throws Exception { synchronized (this.actionResult) { this.actionResult.put("FriendshipRule", "1"); } } @Priority public int getPriority() { return 1; } public void setInput(String friendshipString) { this.friendship = Integer.parseInt(friendshipString); } }