refactor the engine's running way to instruction running

refactor the engine's running way to instruction running
This commit is contained in:
coderfengyun 2014-09-18 21:43:03 +08:00
parent 29e2bd8eda
commit 43d056a19b
26 changed files with 364 additions and 332 deletions

View File

@ -37,13 +37,19 @@ public class Parameter {
public Parameter() {
}
public Parameter(String key, String value) {
private Parameter(String key, String value) {
this();
this.setKey(key);
this.setValue(value);
}
public void compileToGenerateParts() {
public static Parameter generateParamParts(String key, String value) {
Parameter parameter = new Parameter(key, value);
parameter.compileToGenerateParts();
return parameter;
}
private void compileToGenerateParts() {
List<ParamPart> paramParts = DFA.resolveMaltipleParamPart(this
.getValue());
this.setParamParts(paramParts.toArray(new ParamPart[paramParts.size()]));

View File

@ -3,7 +3,10 @@ package org.bench4q.agent.scenario;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Stack;
import org.bench4q.agent.scenario.instruction.Instruction;
import org.bench4q.agent.scenario.instruction.TestInstruction;
import org.bench4q.agent.scenario.node.Behavior;
import org.bench4q.share.helper.MarshalHelper;
import org.bench4q.share.models.agent.ParameterModel;
@ -62,7 +65,8 @@ public class Scenario {
public void compile() {
for (Behavior behavior : this.getAllBehaviors()) {
behavior.compile();
behavior.compile(new ArrayList<Instruction>(),
new Stack<TestInstruction>());
}
}
@ -76,7 +80,6 @@ public class Scenario {
throw new NullPointerException();
}
Scenario scenario = extractScenario(scenarioModel);
scenario.compile();
return scenario;
}

View File

@ -1,100 +0,0 @@
package org.bench4q.agent.scenario.behavior;
import org.bench4q.agent.datacollector.DataCollector;
import org.bench4q.agent.scenario.Parameter;
import org.bench4q.share.models.agent.ParameterModel;
import org.bench4q.share.models.agent.scriptrecord.BehaviorModel;
import org.bench4q.share.models.agent.statistics.BehaviorBriefModel;
public abstract class Behavior {
private static final String CONTROL_BEHAVIOR = "CONTROLBEHAVIOR";
private static final String USER_BEHAVIOR = "USERBEHAVIOR";
private static final String TIMER_BEHAVIOR = "TIMERBEHAVIOR";
private static final String TEST_BEHAVIOR = "TESTBEHAVIOR";
private int id;
private String use;
private String name;
private Parameter[] parameters;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUse() {
return use;
}
public void setUse(String use) {
this.use = use;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Parameter[] getParameters() {
return parameters;
}
public void setParameters(Parameter[] parameters) {
this.parameters = parameters;
}
public abstract boolean shouldBeCount();
public abstract BehaviorBriefModel getBehaviorBriefResult(
DataCollector dataStatistics);
public String getSpecificParamValue(String paramName) {
for (Parameter parameter : this.getParameters()) {
if (parameter.getKey().equalsIgnoreCase(paramName)) {
return parameter.getValue();
}
}
return "";
}
public void compile() {
for (Parameter parameter : this.getParameters()) {
parameter.compileToGenerateParts();
}
}
public static Behavior buildWith(BehaviorModel behaviorModel) {
Behavior behavior = null;
if (behaviorModel.getType().equalsIgnoreCase(TIMER_BEHAVIOR)) {
behavior = new TimerBehavior();
} else if (behaviorModel.getType().equalsIgnoreCase(USER_BEHAVIOR)) {
behavior = new UserBehavior();
} else if (behaviorModel.getType().equalsIgnoreCase(CONTROL_BEHAVIOR)) {
behavior = new ControlBehavior();
} else if (behaviorModel.getType().equalsIgnoreCase(TEST_BEHAVIOR)) {
behavior = new TestBehavior();
} else {
throw new IllegalArgumentException(
"The input BehaviorModel's type is not proper");
}
behavior.setName(behaviorModel.getName());
behavior.setUse(behaviorModel.getUse());
behavior.setId(behaviorModel.getId());
behavior.setParameters(new Parameter[behaviorModel.getParameters()
.size()]);
for (int k = 0; k < behaviorModel.getParameters().size(); k++) {
ParameterModel parameterModel = behaviorModel.getParameters()
.get(k);
behavior.getParameters()[k] = new Parameter(
parameterModel.getKey(), parameterModel.getValue());
}
return behavior;
}
}

View File

@ -1,19 +0,0 @@
package org.bench4q.agent.scenario.behavior;
import org.bench4q.agent.datacollector.DataCollector;
import org.bench4q.share.models.agent.statistics.BehaviorBriefModel;
public class ControlBehavior extends Behavior {
@Override
public boolean shouldBeCount() {
return false;
}
@Override
public BehaviorBriefModel getBehaviorBriefResult(
DataCollector dataStatistics) {
return null;
}
}

View File

@ -1,19 +0,0 @@
package org.bench4q.agent.scenario.behavior;
import org.bench4q.agent.datacollector.DataCollector;
import org.bench4q.share.models.agent.statistics.BehaviorBriefModel;
public class TestBehavior extends Behavior {
@Override
public boolean shouldBeCount() {
return false;
}
@Override
public BehaviorBriefModel getBehaviorBriefResult(
DataCollector dataStatistics) {
return null;
}
}

View File

@ -1,19 +0,0 @@
package org.bench4q.agent.scenario.behavior;
import org.bench4q.agent.datacollector.DataCollector;
import org.bench4q.share.models.agent.statistics.BehaviorBriefModel;
public class TimerBehavior extends Behavior {
@Override
public boolean shouldBeCount() {
return false;
}
@Override
public BehaviorBriefModel getBehaviorBriefResult(
DataCollector dataStatistics) {
return null;
}
}

View File

@ -1,19 +0,0 @@
package org.bench4q.agent.scenario.behavior;
import org.bench4q.agent.datacollector.DataCollector;
import org.bench4q.share.models.agent.statistics.BehaviorBriefModel;
public class TransactionBehavior extends Behavior {
@Override
public boolean shouldBeCount() {
return true;
}
@Override
public BehaviorBriefModel getBehaviorBriefResult(
DataCollector dataStatistics) {
return null;
}
}

View File

@ -1,18 +0,0 @@
package org.bench4q.agent.scenario.behavior;
import org.bench4q.agent.datacollector.DataCollector;
import org.bench4q.share.models.agent.statistics.BehaviorBriefModel;
public class UserBehavior extends Behavior {
@Override
public boolean shouldBeCount() {
return true;
}
@Override
public BehaviorBriefModel getBehaviorBriefResult(
DataCollector dataStatistics) {
return (BehaviorBriefModel) dataStatistics.getBehaviorBriefStatistics(this.getId());
}
}

View File

@ -0,0 +1,11 @@
package org.bench4q.agent.scenario.instruction;
import org.bench4q.agent.scenario.Parameter;
public class ControlInstruction extends PluginImplementInstruction {
public ControlInstruction(String pluginName, String behaviorName,
Parameter[] parameters) {
super(pluginName, behaviorName, parameters);
}
}

View File

@ -1,5 +1,9 @@
package org.bench4q.agent.scenario.instruction;
public class GotoInstruction {
public class GotoInstruction implements Instruction {
public int label;
public GotoInstruction(int label) {
this.label = label;
}
}

View File

@ -0,0 +1,29 @@
package org.bench4q.agent.scenario.instruction;
import org.bench4q.agent.scenario.Parameter;
public abstract class PluginImplementInstruction implements Instruction {
private final String pluginName;
private final String behaviorName;
private final Parameter[] parameters;
public PluginImplementInstruction(String pluginName, String behaviorName,
Parameter[] parameters) {
this.pluginName = pluginName;
this.behaviorName = behaviorName;
this.parameters = parameters;
}
public String getPluginName() {
return pluginName;
}
public String getBehaviorName() {
return behaviorName;
}
public Parameter[] getParameters() {
return parameters;
}
}

View File

@ -0,0 +1,12 @@
package org.bench4q.agent.scenario.instruction;
import org.bench4q.agent.scenario.Parameter;
public class SampleInstruction extends PluginImplementInstruction {
public SampleInstruction(String pluginName, String behaviorName,
Parameter[] parameters) {
super(pluginName, behaviorName, parameters);
}
}

View File

@ -1,7 +1,20 @@
package org.bench4q.agent.scenario.instruction;
public class TestInstruction implements Instruction {
import org.bench4q.agent.scenario.Parameter;
public TestInstruction(String pluginName, String behaviorName) {
public class TestInstruction extends PluginImplementInstruction {
private int falseLabel;
public TestInstruction(String pluginName, String behaviorName,
Parameter[] parameters) {
super(pluginName, behaviorName, parameters);
}
public int getFalseLabel() {
return falseLabel;
}
public void setFalseLabel(int elseLabel) {
this.falseLabel = elseLabel;
}
}

View File

@ -0,0 +1,12 @@
package org.bench4q.agent.scenario.instruction;
import org.bench4q.agent.scenario.Parameter;
public class TimerInstruction extends PluginImplementInstruction {
public TimerInstruction(String pluginName, String behaviorName,
Parameter[] parameters) {
super(pluginName, behaviorName, parameters);
}
}

View File

@ -1,9 +1,16 @@
package org.bench4q.agent.scenario.node;
import java.util.ArrayList;
import java.util.Stack;
import org.bench4q.agent.datacollector.DataCollector;
import org.bench4q.agent.scenario.Parameter;
import org.bench4q.agent.scenario.instruction.Instruction;
import org.bench4q.agent.scenario.instruction.TestInstruction;
import org.bench4q.share.models.agent.ParameterModel;
import org.bench4q.share.models.agent.scriptrecord.BehaviorModel;
import org.bench4q.share.models.agent.scriptrecord.ConditionBehaviorModel;
import org.bench4q.share.models.agent.scriptrecord.IfBehaviorModel;
import org.bench4q.share.models.agent.statistics.BehaviorBriefModel;
/**
@ -12,10 +19,10 @@ import org.bench4q.share.models.agent.statistics.BehaviorBriefModel;
*
*/
public abstract class Behavior {
private static final String CONTROL_BEHAVIOR = "CONTROLBEHAVIOR";
private static final String USER_BEHAVIOR = "USERBEHAVIOR";
private static final String TIMER_BEHAVIOR = "TIMERBEHAVIOR";
private static final String TEST_BEHAVIOR = "TESTBEHAVIOR";
public static final String CONTROL_BEHAVIOR = "CONTROLBEHAVIOR";
public static final String USER_BEHAVIOR = "USERBEHAVIOR";
public static final String TIMER_BEHAVIOR = "TIMERBEHAVIOR";
public static final String TEST_BEHAVIOR = "TESTBEHAVIOR";
private int id;
private String use;
@ -73,44 +80,52 @@ public abstract class Behavior {
/**
* No matter which one to inherit from this class, it should call
* baseCompile in its own compile function
* baseCompile in its own compile function.
*
* This function has side effect, the result is both code and conditions
*/
public abstract void compile();
protected void baseCompile() {
for (Parameter parameter : this.getParameters()) {
parameter.compileToGenerateParts();
}
}
public abstract void compile(ArrayList<Instruction> code,
Stack<TestInstruction> conditions);
public static Behavior buildWith(BehaviorModel behaviorModel) {
Behavior behavior = null;
if (behaviorModel.getType().equalsIgnoreCase(TIMER_BEHAVIOR)) {
behavior = new TimerBehavior();
behavior = new TimerBehavior(behaviorModel);
} else if (behaviorModel.getType().equalsIgnoreCase(USER_BEHAVIOR)) {
behavior = new UserBehavior();
behavior = new UserBehavior(behaviorModel);
} else if (behaviorModel.getType().equalsIgnoreCase(CONTROL_BEHAVIOR)) {
behavior = new ControlBehavior();
behavior = new ControlBehavior(behaviorModel);
} else if (behaviorModel.getType().equalsIgnoreCase(TEST_BEHAVIOR)) {
// TODO: refactor this
behavior = new IfBehavior();
if (behaviorModel instanceof IfBehaviorModel) {
behavior = new IfBehavior((IfBehaviorModel) behaviorModel);
} else if (behaviorModel instanceof ConditionBehaviorModel) {
behavior = new ConditionBehavior(
(ConditionBehaviorModel) behaviorModel);
} else {
throw new RuntimeException("Error type: TestInstruction"
+ behaviorModel.getClass().getName());
}
} else {
throw new IllegalArgumentException(
"The input BehaviorModel's type is not proper");
}
behavior.setName(behaviorModel.getName());
behavior.setUse(behaviorModel.getUse());
behavior.setId(behaviorModel.getId());
behavior.setParameters(new Parameter[behaviorModel.getParameters()
.size()]);
return behavior;
}
protected void buildAndGenerateParameterPart(BehaviorModel behaviorModel) {
this.setName(behaviorModel.getName());
this.setUse(behaviorModel.getUse());
this.setId(behaviorModel.getId());
this.setParameters(new Parameter[behaviorModel.getParameters().size()]);
for (int k = 0; k < behaviorModel.getParameters().size(); k++) {
ParameterModel parameterModel = behaviorModel.getParameters()
.get(k);
behavior.getParameters()[k] = new Parameter(
this.getParameters()[k] = Parameter.generateParamParts(
parameterModel.getKey(), parameterModel.getValue());
}
return behavior;
}
}

View File

@ -0,0 +1,34 @@
package org.bench4q.agent.scenario.node;
import java.util.ArrayList;
import java.util.Stack;
import org.bench4q.agent.datacollector.DataCollector;
import org.bench4q.agent.scenario.instruction.Instruction;
import org.bench4q.agent.scenario.instruction.TestInstruction;
import org.bench4q.share.models.agent.scriptrecord.ConditionBehaviorModel;
import org.bench4q.share.models.agent.statistics.BehaviorBriefModel;
public class ConditionBehavior extends PluginImplementBehavior {
public ConditionBehavior(ConditionBehaviorModel condition) {
buildAndGenerateParameterPart(condition);
}
@Override
public boolean shouldBeCount() {
return false;
}
@Override
public BehaviorBriefModel getBehaviorBriefResult(
DataCollector dataStatistics) {
return null;
}
@Override
public void compile(ArrayList<Instruction> code,
Stack<TestInstruction> conditions) {
}
}

View File

@ -4,7 +4,7 @@ import org.bench4q.agent.datacollector.DataCollector;
import org.bench4q.share.models.agent.statistics.BehaviorBriefModel;
public abstract class ConditionedBehavior extends Behavior {
protected ConditionNode condition;
protected ConditionBehavior condition;
@Override
public boolean shouldBeCount() {

View File

@ -1,9 +1,26 @@
package org.bench4q.agent.scenario.node;
import java.util.ArrayList;
import java.util.Stack;
import org.bench4q.agent.datacollector.DataCollector;
import org.bench4q.agent.scenario.instruction.ControlInstruction;
import org.bench4q.agent.scenario.instruction.Instruction;
import org.bench4q.agent.scenario.instruction.TestInstruction;
import org.bench4q.share.exception.Bench4QRunTimeException;
import org.bench4q.share.models.agent.scriptrecord.BehaviorModel;
import org.bench4q.share.models.agent.statistics.BehaviorBriefModel;
public class ControlBehavior extends Behavior {
public class ControlBehavior extends PluginImplementBehavior {
public ControlBehavior(BehaviorModel behaviorModel) {
if (behaviorModel.getType() != Behavior.CONTROL_BEHAVIOR) {
throw new Bench4QRunTimeException(
"Not the right type, here we need CONTROL_BEHAVIOR, but it is"
+ behaviorModel.getType());
}
buildAndGenerateParameterPart(behaviorModel);
}
@Override
public boolean shouldBeCount() {
@ -17,8 +34,9 @@ public class ControlBehavior extends Behavior {
}
@Override
public void compile() {
this.baseCompile();
public void compile(ArrayList<Instruction> code,
Stack<TestInstruction> conditions) {
code.add(new ControlInstruction(this.getUse(), this.getName(), this
.getParameters()));
}
}

View File

@ -1,13 +1,57 @@
package org.bench4q.agent.scenario.node;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
import org.bench4q.agent.scenario.instruction.GotoInstruction;
import org.bench4q.agent.scenario.instruction.Instruction;
import org.bench4q.agent.scenario.instruction.TestInstruction;
import org.bench4q.share.models.agent.scriptrecord.BehaviorModel;
import org.bench4q.share.models.agent.scriptrecord.IfBehaviorModel;
public class IfBehavior extends ConditionedBehavior {
private List<Behavior> thenBehaviors;
private List<Behavior> elseBehaviors;
public IfBehavior(IfBehaviorModel model) {
this.thenBehaviors = new ArrayList<Behavior>();
this.elseBehaviors = new ArrayList<Behavior>();
this.condition = new ConditionBehavior(model.getCondition());
for (BehaviorModel then : model.getThenBehaviors()) {
this.thenBehaviors.add(Behavior.buildWith(then));
}
for (BehaviorModel elseModel : model.getElseBehaviors()) {
this.elseBehaviors.add(Behavior.buildWith(elseModel));
}
}
/**
* both code and conditions are result
*/
@Override
public void compile() {
this.baseCompile();
public void compile(ArrayList<Instruction> code,
Stack<TestInstruction> conditions) {
TestInstruction testInstruction;
GotoInstruction gotoInstruction;
condition.checkCondition(code, conditions);
code.add(testInstruction = new TestInstruction(condition.getUse(),
condition.getName(), condition.getParameters()));
for (Behavior behavior : thenBehaviors) {
behavior.compile(code, conditions);
}
if (this.thenBehaviors.size() != 0) {
code.add(gotoInstruction = new GotoInstruction(0));
testInstruction.setFalseLabel(code.size());
for (Behavior behavior : this.elseBehaviors) {
behavior.compile(code, conditions);
}
gotoInstruction.label = code.size();
} else {
testInstruction.setFalseLabel(code.size());
}
}
}

View File

@ -0,0 +1,25 @@
package org.bench4q.agent.scenario.node;
import java.util.ArrayList;
import java.util.Stack;
import org.bench4q.agent.scenario.instruction.Instruction;
import org.bench4q.agent.scenario.instruction.TestInstruction;
/**
* This class is the base class of those nodes that will be implemented in
* plugin
*
* This kind of design has some problems that PluginImplementBehavior need not
* extends Behavior
*
* @author chentienan
*
*/
public abstract class PluginImplementBehavior extends Behavior {
protected void checkCondition(ArrayList<Instruction> code,
Stack<TestInstruction> conditions) {
code.addAll(conditions);
}
}

View File

@ -1,12 +1,32 @@
package org.bench4q.agent.scenario.node;
import java.util.ArrayList;
import java.util.Stack;
import org.bench4q.agent.datacollector.DataCollector;
import org.bench4q.agent.scenario.instruction.Instruction;
import org.bench4q.agent.scenario.instruction.TestInstruction;
import org.bench4q.agent.scenario.instruction.TimerInstruction;
import org.bench4q.share.exception.Bench4QRunTimeException;
import org.bench4q.share.models.agent.scriptrecord.BehaviorModel;
import org.bench4q.share.models.agent.statistics.BehaviorBriefModel;
public class TimerBehavior extends Behavior {
public TimerBehavior(BehaviorModel timerBehaviorModel) {
if (timerBehaviorModel.getType() != Behavior.TIMER_BEHAVIOR) {
throw new Bench4QRunTimeException(
"The type is not expected. Expected is TIMER_BEHAVIOR, but it is "
+ timerBehaviorModel.getType());
}
this.buildAndGenerateParameterPart(timerBehaviorModel);
}
@Override
public void compile() {
this.baseCompile();
public void compile(ArrayList<Instruction> code,
Stack<TestInstruction> conditions) {
code.add(new TimerInstruction(this.getUse(), this.getName(), this
.getParameters()));
}
@Override
@ -19,5 +39,4 @@ public class TimerBehavior extends Behavior {
DataCollector dataStatistics) {
return null;
}
}

View File

@ -1,12 +1,18 @@
package org.bench4q.agent.scenario.node;
import java.util.ArrayList;
import java.util.Stack;
import org.bench4q.agent.datacollector.DataCollector;
import org.bench4q.agent.scenario.instruction.Instruction;
import org.bench4q.agent.scenario.instruction.TestInstruction;
import org.bench4q.share.models.agent.statistics.BehaviorBriefModel;
public class TransactionBehavior extends Behavior {
@Override
public void compile() {
this.baseCompile();
public void compile(ArrayList<Instruction> code,
Stack<TestInstruction> conditions) {
// TODO:
}
@Override

View File

@ -1,13 +1,32 @@
package org.bench4q.agent.scenario.node;
import java.util.ArrayList;
import java.util.Stack;
import org.bench4q.agent.datacollector.DataCollector;
import org.bench4q.agent.scenario.instruction.Instruction;
import org.bench4q.agent.scenario.instruction.SampleInstruction;
import org.bench4q.agent.scenario.instruction.TestInstruction;
import org.bench4q.share.exception.Bench4QRunTimeException;
import org.bench4q.share.models.agent.scriptrecord.BehaviorModel;
import org.bench4q.share.models.agent.statistics.BehaviorBriefModel;
public class UserBehavior extends Behavior {
public class UserBehavior extends PluginImplementBehavior {
public UserBehavior(BehaviorModel behaviorModel) {
if (behaviorModel.getType() != Behavior.USER_BEHAVIOR) {
throw new Bench4QRunTimeException(
"Not the expected type, expected is USER_BEHAVIOR, but is "
+ behaviorModel.getType());
}
buildAndGenerateParameterPart(behaviorModel);
}
@Override
public void compile() {
this.baseCompile();
public void compile(ArrayList<Instruction> code,
Stack<TestInstruction> conditions) {
code.add(new SampleInstruction(this.getUse(), this.getName(), this
.getParameters()));
}
@Override

View File

@ -0,0 +1,5 @@
package org.bench4q.share.models.agent.scriptrecord;
public class ConditionBehaviorModel extends BehaviorModel {
}

View File

@ -0,0 +1,44 @@
package org.bench4q.share.models.agent.scriptrecord;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class IfBehaviorModel extends BehaviorModel {
private ConditionBehaviorModel condition;
private List<BehaviorModel> thenBehaviors;
private List<BehaviorModel> elseBehaviors;
@XmlElement
public ConditionBehaviorModel getCondition() {
return condition;
}
public void setCondition(ConditionBehaviorModel condition) {
this.condition = condition;
}
@XmlElementWrapper(name = "thenBehaviors")
@XmlElement
public List<BehaviorModel> getThenBehaviors() {
return thenBehaviors;
}
public void setThenBehaviors(List<BehaviorModel> thenBehaviors) {
this.thenBehaviors = thenBehaviors;
}
@XmlElementWrapper(name = "elseBehaviors")
@XmlElement
public List<BehaviorModel> getElseBehaviors() {
return elseBehaviors;
}
public void setElseBehaviors(List<BehaviorModel> elseBehaviors) {
this.elseBehaviors = elseBehaviors;
}
}

View File

@ -1,93 +0,0 @@
package org.bench4q.share.models.agent.scriptrecord.refactor;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import org.bench4q.share.models.agent.ParameterModel;
@XmlRootElement(name = "behaviorModel")
public class BehaviorModel {
private int id;
private String use;
private String name;
private String type;
private List<ParameterModel> parameters;
@XmlElement
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@XmlElement
public String getUse() {
return use;
}
public void setUse(String use) {
this.use = use;
}
@XmlElement
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
@XmlElementWrapper(name = "parameters")
@XmlElement(name = "parameter")
public List<ParameterModel> getParameters() {
return parameters;
}
public void setParameters(List<ParameterModel> parameters) {
this.parameters = parameters;
}
public BehaviorModel() {
}
public static BehaviorModel TimerBehaviorBuilder(int id, String name,
String use, List<ParameterModel> parameters) {
BehaviorModel behaviorBaseModel = buildBehaviorModelWithoutType(id,
name, use, parameters);
behaviorBaseModel.setType("TIMERBEHAVIOR");
return behaviorBaseModel;
}
private static BehaviorModel buildBehaviorModelWithoutType(int id,
String name, String use, List<ParameterModel> parameters) {
BehaviorModel behaviorBaseModel = new BehaviorModel();
behaviorBaseModel.setId(id);
behaviorBaseModel.setName(name);
behaviorBaseModel.setUse(use);
behaviorBaseModel.setParameters(parameters);
return behaviorBaseModel;
}
public static BehaviorModel UserBehaviorBuilder(int id, String name,
String use, List<ParameterModel> parameters) {
BehaviorModel behaviorBaseModel = buildBehaviorModelWithoutType(id,
name, use, parameters);
behaviorBaseModel.setType("USERBEHAVIOR");
return behaviorBaseModel;
}
}