/** * Resolves a reference to the given type by the given id. */ public final <T> T reference(Dom dom, String id, Class<T> type) { // TODO: this doesn't work in case where type is a subtype of indexed type. String name = type.getName(); dom = dom.getSymbolSpaceRoot(name); return type.cast(dom.resolveReference(id,name).get()); } }
protected Object convertLeafValue(Dom parent, Class<?> returnType, String v) { // let's look first the fast way. Object candidate = parent.getHabitat().getService(returnType, v); if (candidate!=null) { return returnType.cast(candidate); } parent = parent.getSymbolSpaceRoot(v); Dom dom = parent.resolveReference(v,returnType.getName()); if (dom!=null) { return returnType.cast(dom.get()); } else { throw new IllegalArgumentException("Cannot find an instance of " + returnType + " named " + v); } }
@Override public Object get(Dom dom, Type returnType) { String id = dom.leafElement(xmlName); Class<?> type = Types.erasure(returnType); // let's look first the fast way. Object candidate = dom.getHabitat().getService(type, id); if (candidate!=null) { return type.cast(candidate); } dom = dom.getSymbolSpaceRoot(id); return type.cast(dom.resolveReference(id,type.getName()).get()); }
@Override public Object get(Dom dom, Type returnType) { String id = dom.attribute(xmlName); // since the id is supposed to be the element's key, if no key, no element. if (id==null) { return null; } Class<?> type = Types.erasure(returnType); // let's look first the fast way. Object candidate = dom.getHabitat().getService(type, id); if (candidate!=null) { return type.cast(candidate); } dom = dom.getSymbolSpaceRoot(id); return type.cast(dom.resolveReference(id,type.getName()).get()); }
/** * Resolves a reference to the given type by the given id. */ public final <T> T reference(Dom dom, String id, Class<T> type) { // TODO: this doesn't work in case where type is a subtype of indexed type. String name = type.getName(); dom = dom.getSymbolSpaceRoot(name); return type.cast(dom.resolveReference(id,name).get()); } }
/** * Resolves a reference to the given type by the given id. */ public final <T> T reference(Dom dom, String id, Class<T> type) { // TODO: this doesn't work in case where type is a subtype of indexed type. String name = type.getName(); dom = dom.getSymbolSpaceRoot(name); return type.cast(dom.resolveReference(id,name).get()); } }
/** * Resolves a reference to the given type by the given id. */ public final <T> T reference(Dom dom, String id, Class<T> type) { // TODO: this doesn't work in case where type is a subtype of indexed type. String name = type.getName(); dom = dom.getSymbolSpaceRoot(name); return type.cast(dom.resolveReference(id,name).get()); } }
/** * Resolves a reference to the given type by the given id. */ public final <T> T reference(Dom dom, String id, Class<T> type) { // TODO: this doesn't work in case where type is a subtype of indexed type. String name = type.getName(); dom = dom.getSymbolSpaceRoot(name); return type.cast(dom.resolveReference(id,name).get()); } }
protected Object convertLeafValue(Dom parent, Class<?> returnType, String v) { // let's look first the fast way. Object candidate = parent.getHabitat().getComponent(returnType, v); if (candidate!=null) { return returnType.cast(candidate); } parent = parent.getSymbolSpaceRoot(v); Dom dom = parent==null?null:parent.resolveReference(v,returnType.getName()); if (dom!=null) { return returnType.cast(dom.get()); } else { throw new IllegalArgumentException("Cannot find an instance of " + returnType + " named " + v); } }
protected Object convertLeafValue(Dom parent, Class<?> returnType, String v) { // let's look first the fast way. Object candidate = parent.getHabitat().getService(returnType, v); if (candidate!=null) { return returnType.cast(candidate); } parent = parent.getSymbolSpaceRoot(v); Dom dom = parent==null?null:parent.resolveReference(v,returnType.getName()); if (dom!=null) { return returnType.cast(dom.get()); } else { throw new IllegalArgumentException("Cannot find an instance of " + returnType + " named " + v); } }
protected Object convertLeafValue(Dom parent, Class<?> returnType, String v) { // let's look first the fast way. Object candidate = parent.getHabitat().getService(returnType, v); if (candidate!=null) { return returnType.cast(candidate); } parent = parent.getSymbolSpaceRoot(v); Dom dom = parent.resolveReference(v,returnType.getName()); if (dom!=null) { return returnType.cast(dom.get()); } else { throw new IllegalArgumentException("Cannot find an instance of " + returnType + " named " + v); } }
@Override public Object get(Dom dom, Type returnType) { String id = dom.leafElement(xmlName); Class<?> type = Types.erasure(returnType); // let's look first the fast way. Object candidate = dom.getHabitat().getService(type, id); if (candidate!=null) { return type.cast(candidate); } dom = dom.getSymbolSpaceRoot(id); return type.cast(dom.resolveReference(id,type.getName()).get()); }
@Override public Object get(Dom dom, Type returnType) { String id = dom.leafElement(xmlName); Class<?> type = Types.erasure(returnType); // let's look first the fast way. Object candidate = dom.getHabitat().getComponent(type, id); if (candidate!=null) { return type.cast(candidate); } dom = dom.getSymbolSpaceRoot(id); return type.cast(dom.resolveReference(id,type.getName()).get()); }
@Override public Object get(Dom dom, Type returnType) { String id = dom.leafElement(xmlName); Class<?> type = Types.erasure(returnType); // let's look first the fast way. Object candidate = dom.getHabitat().getComponent(type, id); if (candidate!=null) { return type.cast(candidate); } dom = dom.getSymbolSpaceRoot(id); return type.cast(dom.resolveReference(id,type.getName()).get()); }
@Override public Object get(Dom dom, Type returnType) { String id = dom.leafElement(xmlName); Class<?> type = Types.erasure(returnType); // let's look first the fast way. Object candidate = dom.getHabitat().getService(type, id); if (candidate!=null) { return type.cast(candidate); } dom = dom.getSymbolSpaceRoot(id); return type.cast(dom.resolveReference(id,type.getName()).get()); }
@Override public Object get(Dom dom, Type returnType) { String id = dom.attribute(xmlName); // since the id is supposed to be the element's key, if no key, no element. if (id==null) { return null; } Class<?> type = Types.erasure(returnType); // let's look first the fast way. Object candidate = dom.getHabitat().getComponent(type, id); if (candidate!=null) { return type.cast(candidate); } dom = dom.getSymbolSpaceRoot(id); return type.cast(dom.resolveReference(id,type.getName()).get()); }
@Override public Object get(Dom dom, Type returnType) { String id = dom.attribute(xmlName); // since the id is supposed to be the element's key, if no key, no element. if (id==null) { return null; } Class<?> type = Types.erasure(returnType); // let's look first the fast way. Object candidate = dom.getHabitat().getComponent(type, id); if (candidate!=null) { return type.cast(candidate); } dom = dom.getSymbolSpaceRoot(id); return type.cast(dom.resolveReference(id,type.getName()).get()); }
@Override public Object get(Dom dom, Type returnType) { String id = dom.attribute(xmlName); // since the id is supposed to be the element's key, if no key, no element. if (id==null) { return null; } Class<?> type = Types.erasure(returnType); // let's look first the fast way. Object candidate = dom.getHabitat().getService(type, id); if (candidate!=null) { return type.cast(candidate); } dom = dom.getSymbolSpaceRoot(id); return type.cast(dom.resolveReference(id,type.getName()).get()); }
@Override public Object get(Dom dom, Type returnType) { String id = dom.attribute(xmlName); // since the id is supposed to be the element's key, if no key, no element. if (id==null) { return null; } Class<?> type = Types.erasure(returnType); // let's look first the fast way. Object candidate = dom.getHabitat().getService(type, id); if (candidate!=null) { return type.cast(candidate); } dom = dom.getSymbolSpaceRoot(id); return type.cast(dom.resolveReference(id,type.getName()).get()); }