### Question:
TransformMeta implements
  Cloneable, Comparable<TransformMeta>, IGuiPosition,
  ICheckResultSource, IResourceExport, IResourceHolder,
  IAttributes, IBaseMeta { @Override public Object clone() { TransformMeta transformMeta = new TransformMeta(); transformMeta.replaceMeta( this ); return transformMeta; } TransformMeta( String transformId, String transformName, ITransformMeta transform );  TransformMeta( String transformName, ITransformMeta transform );  TransformMeta();  TransformMeta( Node transformNode, IHopMetadataProvider metadataProvider ); String getXml(); String getXml( boolean includeTransform ); static TransformMeta fromXml( String metaXml ); void setCopies( int c ); int getCopies(); @Override boolean equals( Object obj ); @Override int hashCode(); @Override int compareTo( TransformMeta o ); boolean hasChanged(); void setChanged( boolean ch ); void setChanged(); boolean chosesTargetTransforms(); @Override Object clone(); void replaceMeta( TransformMeta transformMeta ); ITransformMeta getTransform(); void setTransform( ITransformMeta transform ); String getTransformPluginId(); @Override String getName(); void setName( String sname ); @Override String getDescription(); void setDescription( String description ); @Override void setSelected( boolean sel ); void flipSelected(); @Override boolean isSelected(); void setTerminator(); void setTerminator( boolean t ); boolean hasTerminator(); @Override void setLocation( int x, int y ); @Override void setLocation( Point loc ); @Override Point getLocation(); @SuppressWarnings( "deprecation" ) void check( List<ICheckResult> remarks, PipelineMeta pipelineMeta, IRowMeta prev, String[] input,
                     String[] output, IRowMeta info, IVariables variables, IHopMetadataProvider metadataProvider ); @Override String toString(); boolean isPartitioned(); boolean isTargetPartitioned(); TransformPartitioningMeta getTransformPartitioningMeta(); void setTransformPartitioningMeta( TransformPartitioningMeta transformPartitioningMeta ); boolean isDistributes(); void setDistributes( boolean distributes ); TransformErrorMeta getTransformErrorMeta(); void setTransformErrorMeta( TransformErrorMeta transformErrorMeta ); static final TransformMeta findTransform( List<TransformMeta> transforms, String transformName ); boolean supportsErrorHandling(); boolean isDoingErrorHandling(); boolean isSendingErrorRowsToTransform( TransformMeta targetTransform ); @Override String getTypeId(); String getPluginId(); boolean isMapping(); boolean isSingleThreader(); boolean isEtlMetaInject(); boolean isJobExecutor(); boolean isMappingInput(); boolean isMappingOutput(); List<ResourceReference> getResourceDependencies( PipelineMeta pipelineMeta ); @Override @SuppressWarnings( "deprecation" ) String exportResources( IVariables variables, Map<String, ResourceDefinition> definitions,
                                 IResourceNaming iResourceNaming, IHopMetadataProvider metadataProvider ); TransformPartitioningMeta getTargetTransformPartitioningMeta(); void setTargetTransformPartitioningMeta( TransformPartitioningMeta targetTransformPartitioningMeta ); boolean isRepartitioning(); void setTransformPluginId( String transformPluginId ); void setParentPipelineMeta( PipelineMeta parentPipelineMeta ); PipelineMeta getParentPipelineMeta(); IRowDistribution getRowDistribution(); void setRowDistribution( IRowDistribution rowDistribution ); String getCopiesString(); void setCopiesString( String copiesString ); @Override void setAttributesMap( Map<String, Map<String, String>> attributesMap ); @Override Map<String, Map<String, String>> getAttributesMap(); @Override void setAttribute( String groupName, String key, String value ); @Override void setAttributes( String groupName, Map<String, String> attributes ); @Override Map<String, String> getAttributes( String groupName ); @Override String getAttribute( String groupName, String key ); boolean isMissing(); boolean isDeprecated(); String getSuggestion(); static final String XML_TAG; static final String STRING_ID_MAPPING; static final String STRING_ID_SINGLE_THREADER; static final String STRING_ID_ETL_META_INJECT; static final String STRING_ID_JOB_EXECUTOR; static final String STRING_ID_MAPPING_INPUT; static final String STRING_ID_MAPPING_OUTPUT; }### Answer:
@Test public void cloning() throws Exception { TransformMeta meta = createTestMeta(); TransformMeta clone = (TransformMeta) meta.clone(); assertEquals( meta, clone ); }