private void parseSentence() { if (sentence == null) { return; } definition = sentence; values = new ArrayList<DSLVariableValue>(); sentence = null; int variableStart = definition.indexOf("{"); while (variableStart >= 0) { int variableEnd = getIndexForEndOfVariable(definition, variableStart); String variable = definition.substring(variableStart + 1, variableEnd); values.add(parseValue(variable)); variableStart = definition.indexOf("{", variableEnd); } }
private void parseDefinition() { values = new ArrayList<DSLVariableValue>(); if (getDefinition() == null) { return; } int variableStart = definition.indexOf("{"); while (variableStart >= 0) { int variableEnd = getIndexForEndOfVariable(definition, variableStart); String variable = definition.substring(variableStart + 1, variableEnd); values.add(parseValue(variable)); variableStart = definition.indexOf("{", variableEnd); } }
/** * This will strip off any residual "{" stuff... */ public String toString() { getDefinition(); StringBuilder result = new StringBuilder(definition); int variableStart = definition.indexOf("{"); while (variableStart >= 0) { int variableEnd = getIndexForEndOfVariable(result.toString(), variableStart); String variable = result.substring(variableStart + 1, variableEnd); int variableNameEnd = variable.indexOf(":"); if (variableNameEnd == -1) { variableNameEnd = variable.length(); } String variableName = variable.substring(0, variableNameEnd); result.replace(variableStart + 1, variableEnd, variableName); variableEnd = variableEnd - variable.length() + variableName.length(); variableStart = result.indexOf("{", variableEnd); } return result.toString().replace("\\n", "\n"); }
/** * This will strip off any "{" stuff, substituting values accordingly */ public String interpolate() { getValues(); if (definition == null) { return ""; } int variableStart = definition.indexOf("{"); if (variableStart < 0) { return definition; } int index = 0; int variableEnd = 0; StringBuilder sb = new StringBuilder(); while (variableStart >= 0) { sb.append(definition.substring(variableEnd, variableStart)); variableEnd = getIndexForEndOfVariable(definition, variableStart) + 1; variableStart = definition.indexOf("{", variableEnd); sb.append(values.get(index++).getValue()); } if (variableEnd < definition.length()) { sb.append(definition.substring(variableEnd)); } return sb.toString(); }
int iVariable = 0; while (variableStart >= 0) { int variableEnd = getIndexForEndOfVariable(definition, variableStart); String variable = definition.substring(variableStart + 1,