📄 behaviorboxhandler.java
字号:
/**
* Description: Provide the initialization for behaviors: R_INI, R_G, and R_T
*
* @ Author Create/Modi Note
* Xiaofeng Xie Nov 03, 2006
*/
package maosKernel.infoIO.parser;
import Global.basic.*;
import Global.methods.*;
import Global.util.parser.*;
import maosKernel.behavior.update.*;
import maosKernel.behavior.generate.*;
import maosKernel.behavior.mutate.*;
import maosKernel.behavior.construct.*;
import Global.define.BasicTag;
import maosKernel.represent.*;
import maosKernel.represent.landscape.*;
public class BehaviorBoxHandler {
public AbsUpdator absUpdator;
public AbsConstructor absConstructor;
public AbsGenerator absGenerator;
private KnowledgeContainer knowledgeContainer = new KnowledgeContainer();
private KnowledgeParser knowledgeParser = new KnowledgeParser();
private AbsLandscape virtualLandscape;
public BehaviorBoxHandler() {
}
public void initLandscape(AbsLandscape virtualLandscape) {
this.virtualLandscape = virtualLandscape;
}
public void parse(String contents) throws Exception {
BasicMap[] sections = SectionParser.parseSections(contents);
int index = -1;
index = StringSearch.getSelectedIndex(sections, "Predefined");
if (index!=-1) {
String[] behaviorLines = GlobalString.getMeaningfulLines(sections[index].value);
for (int i=0; i<behaviorLines.length; i++) {
parseLine(behaviorLines[i]);
}
}
index = StringSearch.getSelectedIndex(sections, "R_INI");
if (index!=-1) {
String[] behaviorLines = GlobalString.getMeaningfulLines(sections[index].value);
absConstructor = createConstructor(behaviorLines);
}
index = StringSearch.getSelectedIndex(sections, "R_T");
if (index!=-1) {
String[] behaviorLines = GlobalString.getMeaningfulLines(sections[index].value);
absUpdator = (AbsUpdator)parseLine(behaviorLines[0]);
}
index = StringSearch.getSelectedIndex(sections, "R_G");
if (index!=-1) {
String[] behaviorLines = GlobalString.getMeaningfulLines(sections[index].value);
absGenerator = createGenerator(behaviorLines);
}
}
private AbsInformationElement parseLine(String objLine) throws Exception {
return knowledgeParser.parseLine(objLine, knowledgeContainer, virtualLandscape);
}
private AbsGenerator createGenerator(String[] behaviorNodeLines) throws Exception {
AbsGenerator absGenerator = (AbsGenerator)parseLine(behaviorNodeLines[0]);
if (behaviorNodeLines.length==1) return absGenerator;
CombinedMGenerator combinedMGenerator= new CombinedMGenerator();
combinedMGenerator.initGenerator(absGenerator);
AbsExplicitMutator[] mutators = new AbsExplicitMutator[behaviorNodeLines.length-1];
for (int i=1; i<behaviorNodeLines.length; i++) {
mutators[i-1] = (AbsExplicitMutator)parseLine(behaviorNodeLines[i]);
}
combinedMGenerator.initMutators(mutators);
return combinedMGenerator;
}
private AbsConstructor createConstructor(String[] behaviorNodeLines) throws Exception {
AbsConstructor absConstructor = (AbsConstructor)parseLine(behaviorNodeLines[0]);
if (behaviorNodeLines.length==1) return absConstructor;
CombinedMConstructor combinedMConstructor= new CombinedMConstructor();
combinedMConstructor.initConstructor(absConstructor);
AbsExplicitMutator[] mutators = new AbsExplicitMutator[behaviorNodeLines.length-1];
for (int i=1; i<behaviorNodeLines.length; i++) {
mutators[i-1] = (AbsExplicitMutator)parseLine(behaviorNodeLines[i]);
}
combinedMConstructor.initMutators(mutators);
return combinedMConstructor;
}
public String getBehaviorsString() {
String initBehaviorInfo = "";
initBehaviorInfo += "R_T(Updator): "+absUpdator.getSummary()+BasicTag.RETURN_TAG;
initBehaviorInfo += "R_INI(Constructor): "+absConstructor.getSummary()+BasicTag.RETURN_TAG;
initBehaviorInfo += "R_G(Generator): "+absGenerator.getSummary();
return initBehaviorInfo;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -