public void resetFrom(TemplateImpl another) { removeAllParsed(); toParseSegments = another.toParseSegments; myKey = another.getKey(); myString = another.myString; myTemplateText = another.myTemplateText; myGroupName = another.myGroupName; myId = another.myId; myDescription = another.myDescription; myShortcutChar = another.myShortcutChar; isToReformat = another.isToReformat; isToShortenLongNames = another.isToShortenLongNames; myIsInline = another.myIsInline; myTemplateContext = another.myTemplateContext.createCopy(); isDeactivated = another.isDeactivated; for (Property property : Property.values()) { boolean value = another.getValue(property); if (value != Template.getDefaultValue(property)) { setValue(property, value); } } for (Variable variable : another.myVariables) { addVariable( variable.getName(), variable.getExpressionString(), variable.getDefaultValueString(), variable.isAlwaysStopAt()); } }