package pikater.ontology.messages; import jade.content.Concept; import jade.util.leap.ArrayList; import jade.util.leap.Iterator; import jade.util.leap.List; public class Agent implements Concept { /** * */ private static final long serialVersionUID = 6257129995443147585L; private String _name; private String _type; private List _options; private String _gui_id; private byte [] object; // Methods required to use this class to represent the OPTIONS role public void setOptions(List options) { _options = options; } public List getOptions() { return _options; } public void setName(String name) { _name = name; } public String getName() { return _name; } public void setType(String type) { _type = type; } public String getType() { return _type; } public void setGui_id(String gui_id) { _gui_id = gui_id; } public String getGui_id() { return _gui_id; } public void setObject(byte [] object) { this.object = object; } public byte [] getObject() { return object; } // ----------------------------- public List stringToOptions(String optString) { String[] optArray = optString.split("[ ]+"); List optList = new ArrayList(); for (int i = 0; i < optArray.length; i++) { if (optArray[i].startsWith("-")) { String name = optArray[i].replaceFirst("-", ""); // if the next array element is again an option name, // (or it is the last element) // => it's a boolean parameter Option opt = new Option(); String value; if (i == optArray.length - 1) { value = "True"; opt.setData_type("BOOLEAN"); } else { // if (optArray[i+1].startsWith("-")){ if (optArray[i + 1].matches("\\-[A-Z]")) { value = "True"; opt.setData_type("BOOLEAN"); } else { value = optArray[i + 1]; } } opt.setName(name); opt.setValue(value); if (opt.getUser_value() == null) { // first string -> options, parsing the string from user if (value.contains("?")) { opt.setMutable(true); } opt.setUser_value(value); } optList.add(opt); } } return optList; } public String optionsToString() { String str = ""; if (_options == null) { return str; } Iterator itr = _options.iterator(); while (itr.hasNext()) { pikater.ontology.messages.Option next_opt = (pikater.ontology.messages.Option) itr .next(); if (next_opt.getData_type().equals("BOOLEAN")) { if (next_opt.getValue().equals("True")) { str += "-" + next_opt.getName() + " "; } } else { str += "-" + next_opt.getName() + " " + next_opt.getValue() + " "; } } return str; } }