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,