### Question:
InputClauseLiteralExpression extends DMNModelInstrumentedBase implements IsLiteralExpression,
                                                                                      HasText,
                                                                                      HasTypeRef,
                                                                                      DMNPropertySet,
                                                                                      DomainObject { public InputClauseLiteralExpression copy() { final InputClauseLiteralExpression clonedInputClauseLiteralExpression = new InputClauseLiteralExpression(); clonedInputClauseLiteralExpression.description = Optional.ofNullable(description).map(Description::copy).orElse(null); clonedInputClauseLiteralExpression.typeRef = Optional.ofNullable(typeRef).map(QName::copy).orElse(null); clonedInputClauseLiteralExpression.typeRefHolder = Optional.ofNullable(typeRefHolder).map(QNameHolder::copy).orElse(null); clonedInputClauseLiteralExpression.text = Optional.ofNullable(text).map(Text::copy).orElse(null); clonedInputClauseLiteralExpression.importedValues = Optional.ofNullable(importedValues).map(ImportedValues::copy).orElse(null); return clonedInputClauseLiteralExpression; } InputClauseLiteralExpression();  InputClauseLiteralExpression(final Id id,
                                        final Description description,
                                        final QName typeRef,
                                        final Text text,
                                        final ImportedValues importedValues); InputClauseLiteralExpression copy(); @Override List<HasTypeRef> getHasTypeRefs(); String getStunnerCategory(); Set<String> getStunnerLabels(); @Override Id getId(); @Override Description getDescription(); void setDescription(final Description description); @Override QName getTypeRef(); @Override void setTypeRef(final QName typeRef); @Override Text getText(); @Override void setText(final Text text); @Override ImportedValues getImportedValues(); void setImportedValues(final ImportedValues importedValues); @Override DMNModelInstrumentedBase asDMNModelInstrumentedBase(); QNameHolder getTypeRefHolder(); void setTypeRefHolder(final QNameHolder typeRefHolder); @Override String getDomainObjectUUID(); @Override String getDomainObjectNameTranslationKey(); @Override boolean equals(final Object o); @Override int hashCode();  }### Answer:
@Test public void testCopy() { final InputClauseLiteralExpression source = new InputClauseLiteralExpression( new Id(CLAUSE_ID), new Description(DESCRIPTION), BuiltInType.BOOLEAN.asQName(), new Text(TEXT), new ImportedValues() ); final InputClauseLiteralExpression target = source.copy(); assertNotNull(target); assertNotEquals(CLAUSE_ID, target.getId()); assertEquals(TEXT, target.getText().getValue()); assertEquals(DESCRIPTION, target.getDescription().getValue()); assertEquals(BuiltInType.BOOLEAN.asQName(), target.getTypeRef()); }