/** * copy with same ids and data * @param <T> self * @return scopy */ public <T extends Data> T copy(){ return data.copy(); }
/**copy without nested references, only value attributes are copied*/ private <T extends Data> T copyZeroLevelDeep(){ return copy(0); }
public <T extends Data> T copy() { return data.copy(); }
/**copy including one the references first level of nested references*/ private <T extends Data> T copyOneLevelDeep(){ return copy(1); }
private <T extends Data> T copy() { return copy(Integer.MAX_VALUE); }