void (TemplateImpl another) { removeAllParsed(); setToParseSegments(another.isToParseSegments()); myKey = another.getKey(); setString(another.string()); setTemplateText(another.templateText()); 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, true); } } for (Variable variable : another.myVariables) { myVariables.add(new Variable(variable)); } }