public Treasury cloneSelfAndDependecies() { Treasury clone = new Treasury(code, name); clone.setCharsetName(charsetName); clone.setFieldDelimiter(fieldDelimiter); clone.setNewlineCharacters(newlineCharacters); clone.setDateFormatPattern(dateFormatPattern); clone.setNumberFormatPattern(numberFormatPattern); clone.setDecimalSeparator(decimalSeparator); clone.setGroupingUsed(groupingUsed); clone.setMaximumFractionDigits(maximumFractionDigits); clone.setMinimumFractionDigits(minimumFractionDigits); getSufdDescriptor() .entrySet() .forEach( entry -> { clone.addSufdAttribute( entry.getKey(), entry.getValue().getValue(), entry.getValue().getDescription()); }); return clone; }