comparison src/luan/DeepCloner.java @ 126:0149bdf98fd8

add ThreadLib git-svn-id: https://luan-java.googlecode.com/svn/trunk@127 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Fri, 06 Jun 2014 14:16:38 +0000
parents 7c08b611125d
children
comparison
equal deleted inserted replaced
125:0cd559a16758 126:0149bdf98fd8
26 if( rtn == null ) { 26 if( rtn == null ) {
27 rtn = obj.clone(); 27 rtn = obj.clone();
28 cloned.put(obj,rtn); 28 cloned.put(obj,rtn);
29 for( int i=0; i<rtn.length; i++ ) { 29 for( int i=0; i<rtn.length; i++ ) {
30 @SuppressWarnings("unchecked") 30 @SuppressWarnings("unchecked")
31 T t = (T)get(rtn[i]); 31 T t = get(rtn[i]);
32 rtn[i] = t; 32 rtn[i] = t;
33 } 33 }
34 } 34 }
35 return rtn; 35 return rtn;
36 } 36 }
37 37
38 public Object get(Object obj) { 38 public <T> T get(T obj) {
39 if( !(obj instanceof DeepCloneable) ) 39 if( !(obj instanceof DeepCloneable) )
40 return obj; 40 return obj;
41 @SuppressWarnings("unchecked") 41 @SuppressWarnings("unchecked")
42 DeepCloneable dc = deepClone((DeepCloneable)obj); 42 T dc = (T)deepClone((DeepCloneable)obj);
43 return dc; 43 return dc;
44 } 44 }
45 } 45 }