public Sample copy(boolean copyAdditionalIDs) { Sample newSample = new Sample(); newSample.modelNodeToDataNode = new HashMap<Integer, Integer>(); newSample.dataNodeToModelNode = new HashMap<Integer, Integer>(); newSample.dataIDToDataNodeID = new HashMap<String, Integer>(); newSample.relationshipIDs = new HashMap<String, RelationshipForSample>(); newSample.mismatch = this.mismatch; newSample.mnmrReference = this.mnmrReference; newSample.mnmrSet = this.mnmrSet; newSample.additionalRelationshipIDs = new HashMap<String, ArrayList<String>>(); newSample.ID = this.ID; if (copyAdditionalIDs) { newSample.hasAdditionalIDs = this.hasAdditionalIDs; newSample.additionalIDCount = this.additionalIDCount; copyHashMap(this.additionalRelationshipIDs, newSample.additionalRelationshipIDs); } copyHashMap(this.dataIDToDataNodeID, newSample.dataIDToDataNodeID); copyHashMap(this.dataNodeToModelNode, newSample.dataNodeToModelNode); copyHashMap(this.relationshipIDs, newSample.relationshipIDs); copyHashMap(this.modelNodeToDataNode, newSample.modelNodeToDataNode); return newSample; }