protected Value traverseXPath(Path path, String field) { XMLMetaData meta = path.getXmlMapping(); if (meta.getFieldMapping(field) == null) { throw parseException(EX_USER, "no-field", new Object[]{ meta.getType(), field }, null); } else { // collection-valued xpath is not allowed int type = meta.getFieldMapping(field).getTypeCode(); switch (type) { case JavaTypes.ARRAY: case JavaTypes.COLLECTION: case JavaTypes.MAP: throw new UserException(_loc.get("collection-valued-path", field)); } } path.get(meta, field); return path; }
populateFromReflection(((Field) member).getType() , field); field.setXmltype(XMLMetaData.XMLTYPE); field.setXmlname(xmlname); field.setXmltype(XMLMetaData.ELEMENT); field.setXmlname(xmlname); field.setXmlnamespace((String) xmlElementNamespace .invoke(el.getAnnotation(xmlElementClass) , new Object[]{})); field = _repos.newXMLFieldMetaData(((Field) member) .getType(), member.getName()); field.setXmltype(XMLFieldMetaData.ATTRIBUTE); String xmlname = (String) xmlAttributeName.invoke( el.getAnnotation(xmlAttributeClass), new Object[]{}); field.setXmlname("@"+xmlname); field.setXmlnamespace((String) xmlAttributeNamespace.invoke( el.getAnnotation(xmlAttributeClass), new Object[]{})); meta.addField(member.getName(), field);
public String getXPath() { StringBuilder xpath = new StringBuilder(); Action action; Iterator itr = _actions.iterator(); // Skip variable actions since they are not part of the xpath // until we reach the first xpath action. // The first xpath action maps to the root of an xml document. do action = (Action) itr.next(); while (action.op != Action.GET_XPATH); // Skip XmlRootElement: // We can't rely on the accuracy of the name of the root element, // because it could be set to some default by JAXB XML Binding. // The caller(DBDictionary) should start with "/*" or "/*/", // we build the remaining xpath that follows the root element. while (itr.hasNext()) { action = (Action) itr.next(); if (((XMLMetaData) action.data).getXmlname() != null) xpath.append(((XMLMetaData) action.data).getXmlname()); else xpath.append("*"); if (itr.hasNext()) xpath.append("/"); } return xpath.toString(); }
private void parseXmlRootElement(Class type, XMLMetaData meta) { try { if (type.getAnnotation(xmlRootElementClass) != null) { meta.setXmlRootElement(true); meta.setXmlname((String) xmlRootName.invoke(type.getAnnotation (xmlRootElementClass), new Object[]{})); meta.setXmlnamespace((String) xmlRootNamespace.invoke(type .getAnnotation(xmlRootElementClass), new Object[]{})); } else { meta.setXmlname((String) xmlTypeName.invoke(type.getAnnotation (xmlTypeClass), new Object[]{})); meta.setXmlnamespace((String) xmlTypeNamespace.invoke(type .getAnnotation(xmlTypeClass), new Object[]{})); } } catch (Exception e) { } }
public void get(XMLMetaData meta, String name) { Action action = new Action(); action.op = Action.GET_XPATH; action.data = meta.getFieldMapping(name); _actions.add(action); _cast = null; _key = false; _type = XPATH; }
Action act = lastFieldAction(); if (act != null && act.op == Action.GET_XPATH) return ((XMLMetaData) act.data).getType();
private void appendXmlValue(SQLBuffer buf, FilterValue val) { Class<?> rc = Filters.wrap(val.getType()); int type = getJDBCType(JavaTypes.getTypeCode(rc), false); boolean isXmlAttribute = (val.getXmlMapping() == null) ? false : val.getXmlMapping().isXmlAttribute(); buf.append(val.getColumnAlias(val.getFieldMapping().getColumns()[0])) .append(".value(").append("'(/*/"); val.appendTo(buf); if (!isXmlAttribute) buf.append("/text()"); buf.append(")[1]','").append(getTypeName(type)); appendLength(buf, type); buf.append("')"); }
private void parseXmlRootElement(Class type, XMLMetaData meta) { try { if (type.getAnnotation(xmlRootElementClass) != null) { meta.setXmlRootElement(true); meta.setXmlname((String) xmlRootName.invoke(type.getAnnotation (xmlRootElementClass), new Object[]{})); meta.setXmlnamespace((String) xmlRootNamespace.invoke(type .getAnnotation(xmlRootElementClass), new Object[]{})); } else { meta.setXmlname((String) xmlTypeName.invoke(type.getAnnotation (xmlTypeClass), new Object[]{})); meta.setXmlnamespace((String) xmlTypeNamespace.invoke(type .getAnnotation(xmlTypeClass), new Object[]{})); } } catch (Exception e) { } }
public void get(XMLMetaData meta, String name) { Action action = new Action(); action.op = Action.GET_XPATH; action.data = meta.getFieldMapping(name); _actions.add(action); _cast = null; _key = false; _type = XPATH; }
Action act = lastFieldAction(); if (act != null && act.op == Action.GET_XPATH) return ((XMLMetaData) act.data).getType();
private void appendXmlValue(SQLBuffer buf, FilterValue val) { Class<?> rc = Filters.wrap(val.getType()); int type = getJDBCType(JavaTypes.getTypeCode(rc), false); boolean isXmlAttribute = (val.getXmlMapping() == null) ? false : val.getXmlMapping().isXmlAttribute(); buf.append(val.getColumnAlias(val.getFieldMapping().getColumns()[0])) .append(".value(").append("'(/*/"); val.appendTo(buf); if (!isXmlAttribute) buf.append("/text()"); buf.append(")[1]','").append(getTypeName(type)); appendLength(buf, type); buf.append("')"); }
populateFromReflection(((Field) member).getType() , field); field.setXmltype(XMLMetaData.XMLTYPE); field.setXmlname(xmlname); field.setXmltype(XMLMetaData.ELEMENT); field.setXmlname(xmlname); field.setXmlnamespace((String) xmlElementNamespace .invoke(el.getAnnotation(xmlElementClass) , new Object[]{})); field = _repos.newXMLFieldMetaData(((Field) member) .getType(), member.getName()); field.setXmltype(XMLFieldMetaData.ATTRIBUTE); String xmlname = (String) xmlAttributeName.invoke( el.getAnnotation(xmlAttributeClass), new Object[]{}); field.setXmlname("@"+xmlname); field.setXmlnamespace((String) xmlAttributeNamespace.invoke( el.getAnnotation(xmlAttributeClass), new Object[]{})); meta.addField(member.getName(), field);
protected Value traverseXPath(Path path, String field) { XMLMetaData meta = path.getXmlMapping(); if (meta.getFieldMapping(field) == null) { throw parseException(EX_USER, "no-field", new Object[]{ meta.getType(), field }, null); } else { // collection-valued xpath is not allowed int type = meta.getFieldMapping(field).getTypeCode(); switch (type) { case JavaTypes.ARRAY: case JavaTypes.COLLECTION: case JavaTypes.MAP: throw new UserException(_loc.get("collection-valued-path", field)); } } path.get(meta, field); return path; }
private void parseXmlRootElement(Class type, XMLMetaData meta) { try { if (type.getAnnotation(xmlRootElementClass) != null) { meta.setXmlRootElement(true); meta.setXmlname((String) xmlRootName.invoke(type.getAnnotation (xmlRootElementClass), new Object[]{})); meta.setXmlnamespace((String) xmlRootNamespace.invoke(type .getAnnotation(xmlRootElementClass), new Object[]{})); } else { meta.setXmlname((String) xmlTypeName.invoke(type.getAnnotation (xmlTypeClass), new Object[]{})); meta.setXmlnamespace((String) xmlTypeNamespace.invoke(type .getAnnotation(xmlTypeClass), new Object[]{})); } } catch (Exception e) { } }
public void get(XMLMetaData meta, String name) { Action action = new Action(); action.op = Action.GET_XPATH; action.data = meta.getFieldMapping(name); _actions.add(action); _cast = null; _key = false; _type = XPATH; }
Action act = lastFieldAction(); if (act != null && act.op == Action.GET_XPATH) return ((XMLMetaData) act.data).getType();
private void appendXmlValue(SQLBuffer buf, FilterValue val) { Class<?> rc = Filters.wrap(val.getType()); int type = getJDBCType(JavaTypes.getTypeCode(rc), false); boolean isXmlAttribute = (val.getXmlMapping() == null) ? false : val.getXmlMapping().isXmlAttribute(); buf.append(val.getColumnAlias(val.getFieldMapping().getColumns()[0])) .append(".value(").append("'(/*/"); val.appendTo(buf); if (!isXmlAttribute) buf.append("/text()"); buf.append(")[1]','").append(getTypeName(type)); appendLength(buf, type); buf.append("')"); }
public String getXPath() { StringBuilder xpath = new StringBuilder(); Action action; Iterator itr = _actions.iterator(); // Skip variable actions since they are not part of the xpath // until we reach the first xpath action. // The first xpath action maps to the root of an xml document. do action = (Action) itr.next(); while (action.op != Action.GET_XPATH); // Skip XmlRootElement: // We can't rely on the accuracy of the name of the root element, // because it could be set to some default by JAXB XML Binding. // The caller(DBDictionary) should start with "/*" or "/*/", // we build the remaining xpath that follows the root element. while (itr.hasNext()) { action = (Action) itr.next(); if (((XMLMetaData) action.data).getXmlname() != null) xpath.append(((XMLMetaData) action.data).getXmlname()); else xpath.append("*"); if (itr.hasNext()) xpath.append("/"); } return xpath.toString(); }
populateFromReflection(((Field) member).getType() , field); field.setXmltype(XMLMetaData.XMLTYPE); field.setXmlname(xmlname); field.setXmltype(XMLMetaData.ELEMENT); field.setXmlname(xmlname); field.setXmlnamespace((String) xmlElementNamespace .invoke(el.getAnnotation(xmlElementClass) , new Object[]{})); field = _repos.newXMLFieldMetaData(((Field) member) .getType(), member.getName()); field.setXmltype(XMLFieldMetaData.ATTRIBUTE); String xmlname = (String) xmlAttributeName.invoke( el.getAnnotation(xmlAttributeClass), new Object[]{}); field.setXmlname("@"+xmlname); field.setXmlnamespace((String) xmlAttributeNamespace.invoke( el.getAnnotation(xmlAttributeClass), new Object[]{})); meta.addField(member.getName(), field);
protected Value traverseXPath(Path path, String field) { XMLMetaData meta = path.getXmlMapping(); if (meta.getFieldMapping(field) == null) { throw parseException(EX_USER, "no-field", new Object[]{ meta.getType(), field }, null); } else { // collection-valued xpath is not allowed int type = meta.getFieldMapping(field).getTypeCode(); switch (type) { case JavaTypes.ARRAY: case JavaTypes.COLLECTION: case JavaTypes.MAP: throw new UserException(_loc.get("collection-valued-path", field)); } } path.get(meta, field); return path; }