Revision 1548 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/dynobject/impl/DefaultDynObject.java
DefaultDynObject.java | ||
---|---|---|
34 | 34 |
import org.gvsig.tools.dynobject.DynMethod; |
35 | 35 |
import org.gvsig.tools.dynobject.DynObject; |
36 | 36 |
import org.gvsig.tools.dynobject.DynObjectRuntimeException; |
37 |
import org.gvsig.tools.dynobject.DynObject_v2; |
|
37 | 38 |
import org.gvsig.tools.dynobject.DynStruct; |
38 | 39 |
import org.gvsig.tools.dynobject.exception.DynFieldNotFoundException; |
39 | 40 |
import org.gvsig.tools.dynobject.exception.DynMethodException; |
40 | 41 |
import org.gvsig.tools.dynobject.exception.DynMethodNotSupportedException; |
41 | 42 |
|
42 |
public class DefaultDynObject implements DelegatedDynObject { |
|
43 |
public class DefaultDynObject implements DelegatedDynObject, DynObject_v2 {
|
|
43 | 44 |
|
44 | 45 |
protected DynClass dynClass; |
45 | 46 |
protected Map values; |
... | ... | |
161 | 162 |
return this.dynClass; |
162 | 163 |
} |
163 | 164 |
|
165 |
@Override |
|
166 |
public boolean hasDynMethod(String name) { |
|
167 |
name = name.toLowerCase(); |
|
168 |
|
|
169 |
DynMethod method; |
|
170 |
try { |
|
171 |
method = this.dynClass.getDynMethod(name); |
|
172 |
if( method!=null ) { |
|
173 |
return true; |
|
174 |
} |
|
175 |
} catch (DynMethodException ex) { |
|
176 |
} |
|
177 |
if ( delegateds != null ) { |
|
178 |
for( DynObject dynObj : delegateds ) { |
|
179 |
try { |
|
180 |
if( dynObj instanceof DynObject_v2 ) { |
|
181 |
if( ((DynObject_v2)dynObj).hasDynMethod(name) ) { |
|
182 |
return true; |
|
183 |
} |
|
184 |
} else { |
|
185 |
DynClass dynClass = dynObj.getDynClass(); |
|
186 |
if( dynClass.getDynMethod(name)!=null ) { |
|
187 |
return true; |
|
188 |
} |
|
189 |
} |
|
190 |
} catch(Throwable th) { |
|
191 |
// continue checking others |
|
192 |
} |
|
193 |
} |
|
194 |
} |
|
195 |
return false; |
|
196 |
} |
|
197 |
|
|
164 | 198 |
public boolean hasDynValue(String name) throws DynFieldNotFoundException { |
165 | 199 |
boolean defined = false; |
166 | 200 |
name = name.toLowerCase(); |
Also available in: Unified diff