gpt4 book ai didi

org.eclipse.persistence.internal.oxm.XPathNode类的使用及代码示例

转载 作者:知者 更新时间:2024-03-20 02:59:40 26 4
gpt4 key购买 nike

本文整理了Java中org.eclipse.persistence.internal.oxm.XPathNode类的一些代码示例,展示了XPathNode类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XPathNode类的具体详情如下:
包路径:org.eclipse.persistence.internal.oxm.XPathNode
类名称:XPathNode

XPathNode介绍

[英]INTERNAL:

Purpose: XPathNodes are used together to build a tree. The tree is built from all of the XPath statements specified in the mapping metadata (mappings and policies). This tree is then navigated by an EventObjectBuilder to perform marshal and unmarshal operations.

The XPaths "a/b" and "a/c" would result in a tree with the root "a" and two child nodes "b" and "c".

Responsibilities:

  • All tree relationships must be bi-directional.
  • Reference a NodeValue, XPathNodes without a Node value represent grouping elements.
  • Reference an XPathFragment, XPathFragments contain name and namespace information.
  • Must differentiate between child nodes that correspond to elements and those that do not.
  • Must represent special mapping situations like any and self mappings.
    [中]内部:
    用途:XPathNodes一起用于构建树。树是根据映射元数据(映射和策略)中指定的所有XPath语句构建的。然后,EventObjectBuilder将导航此树,以执行封送和解封操作。
    XPath“a/b”和“a/c”将生成一个根为“a”的树以及两个子节点“b”和“c”。
    责任:
    *所有树关系都必须是双向的。
    *引用NodeValue时,没有节点值的XPathNodes表示分组元素。
    *引用XPathFragment时,XPathFragments包含名称和命名空间信息。
    *必须区分对应于元素的子节点和不对应于元素的子节点。
    *必须表示特殊的映射情况,如任何映射和自映射。

代码示例

代码示例来源:origin: com.sun.jersey/jersey-json

public Map<String, EntityType> getEntitiesTypesMap(boolean isAttribute) {
  Map<String, EntityType> entitiesTypes = isAttribute ? attributeTypeMap : elementTypeMap;
  if (entitiesTypes.isEmpty()) {
    final Map<XPathFragment, XPathNode> nodeMap =
        isAttribute ? xPathNode.getAttributeChildrenMap() : xPathNode.getNonAttributeChildrenMap();
    if (nodeMap != null) {
      for(Map.Entry<XPathFragment, XPathNode> entry : nodeMap.entrySet()) {
        entitiesTypes.put(entry.getKey().getLocalName(), new EntityType(entry.getKey().getXMLField().getType()));
      }
    }
  }
  return entitiesTypes;
}

代码示例来源:origin: com.sun.jersey/jersey-json

actualNodeWrapper == null ? null : actualNodeWrapper.xPathNode.getNonAttributeChildrenMap();
final MappingNodeValue nodeValue = (MappingNodeValue) childNode.getNodeValue();

代码示例来源:origin: org.eclipse.persistence/org.eclipse.persistence.core

private boolean isTextValue(String localName, UnmarshalRecord contentHandler_) {
  XPathNode currentNode = ((UnmarshalRecord) contentHandler_).getXPathNode();
  if (currentNode == null) {
    return textWrapper != null && textWrapper.equals(localName);
  }
  return ((currentNode.getNonAttributeChildrenMap() == null
      || currentNode.getNonAttributeChildrenMap().size() == 0
      || (currentNode.getNonAttributeChildrenMap().size() == 1
      && currentNode.getTextNode() != null)
  ) && textWrapper != null && textWrapper.equals(localName)
  );
}

代码示例来源:origin: com.haulmont.thirdparty/eclipselink

public XPathNode addChild(XPathFragment anXPathFragment, NodeValue aNodeValue, NamespaceResolver namespaceResolver) {
  if (null != anXPathFragment && anXPathFragment.nameIsText()) {
    if (aNodeValue.isOwningNode(anXPathFragment)) {
      XPathNode textXPathNode = this.getTextNode();
      if(textXPathNode == null) {
        textXPathNode = new XPathNode();
      textXPathNode.setParent(this);
      textXPathNode.setXPathFragment(anXPathFragment);
      if (aNodeValue.isMarshalNodeValue()) {
        textXPathNode.setMarshalNodeValue(aNodeValue);
        textXPathNode.setUnmarshalNodeValue(aNodeValue);
      this.setTextNode(textXPathNode);
      if(null != nonAttributeChildren && !nonAttributeChildren.contains(textXPathNode)) {
        nonAttributeChildren.add(textXPathNode);
  XPathNode xPathNode = new XPathNode();
  xPathNode.setXPathFragment(anXPathFragment);
      xPathNode.setMarshalNodeValue(aNodeValue);
    if(aNodeValue.isUnmarshalNodeValue() && xPathNode.getUnmarshalNodeValue() == null) {
      xPathNode.setUnmarshalNodeValue(aNodeValue);
    xPathNode.setParent(this);
    if (aNodeValue instanceof XMLAnyAttributeMappingNodeValue || (aNodeValue instanceof XMLVariableXPathObjectMappingNodeValue && ((XMLVariableXPathObjectMappingNodeValue)aNodeValue).getMapping().isAttribute() ) || (aNodeValue instanceof XMLVariableXPathCollectionMappingNodeValue && ((XMLVariableXPathCollectionMappingNodeValue)aNodeValue).getMapping().isAttribute() )) {
      setAnyAttributeNodeValue((MappingNodeValue)aNodeValue);
      anyAttributeNode = xPathNode;

代码示例来源:origin: com.haulmont.thirdparty/eclipselink

XPathNode node = ur.getNonAttributeXPathNode(uri, parentLocalName, parentLocalName, null);
if (node != null) {
  NodeValue nv = node.getNodeValue();
  if (nv == null && node.getTextNode() != null) {
    nv = node.getTextNode().getUnmarshalNodeValue();
  currentFragment.setNamespaceURI(uri);
  currentFragment.setNamespaceAware(isNamespaceAware());
  XPathNode groupingXPathNode = unmarshalRecordXPathNode.getNonAttributeChildrenMap().get(currentFragment);
  if (groupingXPathNode != null) {
    if (groupingXPathNode.getUnmarshalNodeValue() instanceof CollectionGroupingElementNodeValue) {
      groupingXPathFragment = groupingXPathNode.getXPathFragment();
      contentHandler.startElement(uri, parentLocalName, parentLocalName, new AttributesImpl());
      XPathNode itemXPathNode = groupingXPathNode.getNonAttributeChildren().get(0);
      itemXPathFragment = itemXPathNode.getXPathFragment();
    } else if (groupingXPathNode.getUnmarshalNodeValue() == null) {
      XPathNode itemXPathNode = groupingXPathNode.getNonAttributeChildren().get(0);
      if (itemXPathNode != null) {
        if ((itemXPathNode.getUnmarshalNodeValue()).isContainerValue()) {
          groupingXPathFragment = groupingXPathNode.getXPathFragment();
          contentHandler.startElement(uri, parentLocalName, parentLocalName, new AttributesImpl());
          itemXPathFragment = itemXPathNode.getXPathFragment();
if (!isNamespaceAware() && localName.equals(Constants.SCHEMA_TYPE_ATTRIBUTE) && !((UnmarshalRecord) contentHandler).getXPathNode().hasTypeChild()) {
  return;

代码示例来源:origin: org.eclipse.persistence/com.springsource.org.eclipse.persistence

public XPathNode addChild(XPathFragment anXPathFragment, NodeValue aNodeValue, NamespaceResolver namespaceResolver) {
  if (null != anXPathFragment && anXPathFragment.nameIsText()) {
    if (aNodeValue.isOwningNode(anXPathFragment)) {
      XPathNode textXPathNode = new XPathNode();
      textXPathNode.setParent(this);
      textXPathNode.setXPathFragment(anXPathFragment);
      if (aNodeValue.isMarshalNodeValue()) {
        textXPathNode.setMarshalNodeValue(aNodeValue);
        textXPathNode.setUnmarshalNodeValue(aNodeValue);
      this.setTextNode(textXPathNode);
      if (null == nonAttributeChildren) {
        nonAttributeChildren = new ArrayList();
  XPathNode xPathNode = new XPathNode();
  xPathNode.setXPathFragment(anXPathFragment);
      xPathNode.setMarshalNodeValue(aNodeValue);
    if(aNodeValue.isUnmarshalNodeValue() && xPathNode.getUnmarshalNodeValue() == null) {
      xPathNode.setUnmarshalNodeValue(aNodeValue);
    xPathNode.setParent(this);
    if (aNodeValue instanceof XMLAnyAttributeMappingNodeValue) {
      setAnyAttributeNodeValue((XMLAnyAttributeMappingNodeValue)aNodeValue);
      anyAttributeNode = xPathNode;
    } else {
      setAnyNode(xPathNode);

代码示例来源:origin: org.eclipse.persistence/com.springsource.org.eclipse.persistence

if (null != xPathNode.getUnmarshalNodeValue()) {
  xPathNode.getUnmarshalNodeValue().endElement(xPathFragment, this);
} else {
  XPathNode textNode = xPathNode.getTextNode();
  if (null != textNode && textNode.isWhitespaceAware() && getStringBuffer().length() == 0) {
    if (!isXsiNil) {
      if (textNode.getUnmarshalNodeValue().isMappingNodeValue()) {
        textNode.getUnmarshalNodeValue().endElement(xPathFragment, this);
XPathFragment xPathFragment = xPathNode.getXPathFragment();
if(null != xPathFragment && xPathFragment.nameIsText()) {
  xPathNode = xPathNode.getParent();
if (null != xPathNode.getParent()) {
  xPathNode = xPathNode.getParent();

代码示例来源:origin: org.eclipse.persistence/org.eclipse.persistence.sdo

break;
  Map attributeChildrenMap = xPathNode.getAttributeChildrenMap();
  if (null == attributeChildrenMap) {
    xPathNode = null;
  xPathNode = xPathNode.getTextNode();
} else {
  Map nonAttributeChildrenMap = xPathNode.getNonAttributeChildrenMap();
  if (null == nonAttributeChildrenMap) {
    xPathNode = null;
if (xPathNode.getNodeValue().isMappingNodeValue()) {
  MappingNodeValue mappingNodeValue = (MappingNodeValue) xPathNode.getNodeValue();
  return mappingNodeValue.getMapping();

代码示例来源:origin: org.eclipse.persistence/com.springsource.org.eclipse.persistence

public boolean marshalAttributes(MarshalRecord marshalRecord, Object object, AbstractSession session) {
  boolean hasValue = false;
  NamespaceResolver namespaceResolver = ((XMLDescriptor)this.getDescriptor()).getNamespaceResolver();
  List<XPathNode> attributeChildren = rootXPathNode.getAttributeChildren();
  if (null != attributeChildren) {
    for (int x = 0, attributeChildrenSize=attributeChildren.size(); x < attributeChildrenSize; x++) {
      hasValue = attributeChildren.get(x).marshal(marshalRecord, object, session, namespaceResolver, null, ObjectMarshalContext.getInstance()) || hasValue;
    }
  }
  if (rootXPathNode.getAnyAttributeNode() != null) {
    hasValue = rootXPathNode.getAnyAttributeNode().marshal(marshalRecord, object, session, namespaceResolver, null, ObjectMarshalContext.getInstance()) || hasValue;
  }
  List<XPathNode> selfChildren = rootXPathNode.getSelfChildren();
  if (null != selfChildren) {
    for (int x = 0, selfChildrenSize=selfChildren.size(); x < selfChildrenSize; x++) {
      selfChildren.get(x).marshalSelfAttributes(marshalRecord, object, session, namespaceResolver, marshalRecord.getMarshaller());
    }
  }
  return hasValue;
}

代码示例来源:origin: org.eclipse.persistence/org.eclipse.persistence.core

if(marshalRecord.isWrapperAsCollectionName() && null != nonAttributeChildren && nonAttributeChildren.size() == 1) {
  XPathNode childXPathNode = nonAttributeChildren.get(0);
  NodeValue childXPathNodeUnmarshalNodeValue = childXPathNode.getUnmarshalNodeValue();
  if(childXPathNodeUnmarshalNodeValue != null && childXPathNodeUnmarshalNodeValue.isContainerValue()) {
    ContainerValue containerValue = (ContainerValue) childXPathNodeUnmarshalNodeValue;
    if(containerValue.isWrapperAllowedAsCollectionName()) {
      XPathNode wrapperXPathNode = new XPathNode();
      wrapperXPathNode.setXPathFragment(this.getXPathFragment());
      wrapperXPathNode.setMarshalNodeValue(childXPathNode.getMarshalNodeValue());
      return wrapperXPathNode.marshal(marshalRecord, object, session, namespaceResolver, marshaller, marshalContext, rootFragment);
  for (int x = 0, size = attributeChildren.size(); x < size; x++) {
    XPathNode xPathNode = attributeChildren.get(x);
    hasValue = xPathNode.marshal(marshalRecord, object, session, namespaceResolver, marshaller, ObjectMarshalContext.getInstance(), this.xPathFragment) || hasValue;
  hasValue = anyAttributeNode.marshal(marshalRecord, object, session, namespaceResolver, marshaller, ObjectMarshalContext.getInstance(), null) || hasValue;
    hasValue = textNode.marshal(marshalRecord, object, session, namespaceResolver, marshaller, ObjectMarshalContext.getInstance(), null) || hasValue;
    XPathNode xPathNode = (XPathNode)marshalContext.getNonAttributeChild(x, this);
    MarshalContext childMarshalContext = marshalContext.getMarshalContext(x);
    hasValue = xPathNode.marshal(marshalRecord, object, session, namespaceResolver, marshaller, childMarshalContext, this.xPathFragment) || hasValue;

代码示例来源:origin: com.haulmont.thirdparty/eclipselink

XPathFragment xPathNodeXPathFragment = xPathNode.getXPathFragment();
if((null != xPathNodeXPathFragment && xPathNodeXPathFragment.nameIsText()) || xpathNodeIsMixedContent) {
  xpathNodeIsMixedContent = false;
  NodeValue xPathNodeUnmarshalNodeValue = xPathNode.getUnmarshalNodeValue();
  if (null != xPathNodeUnmarshalNodeValue) {
    boolean isIncludedInAttributeGroup = true;
      if (xPathNode.getParent() != null) {
        xPathNode = xPathNode.getParent();
    XPathFragment xpf = predictedNextXPathNode.getXPathFragment();
    if (null != xpf && xPathNode == predictedNextXPathNode.getParent() && (localName == xpf.getLocalName() || localName.equals(xpf.getLocalName())) && (namespaceURI == xpf.getNamespaceURI() || namespaceURI.equals(xpf.getNamespaceURI())) && null == xpf.getPredicate() && !xpf.containsIndex()) {
    NodeValue parentNodeValue = xPathNode.getUnmarshalNodeValue();
    if ((null == xPathNode.getXPathFragment()) && (parentNodeValue != null)) {
      XPathFragment parentFragment = new XPathFragment();
      parentFragment.setNamespaceAware(isNamespaceAware());
    if(node.getNullCapableValue() != null){
      getNullCapableValues().add(node.getNullCapableValue());
    NodeValue nodeValue = node.getUnmarshalNodeValue();
    if (null != nodeValue) {
      boolean isIncludedInAttributeGroup = true;
    if(xPathNode.getAttributeChildren() != null || xPathNode.getAnyAttributeNodeValue() != null || selfRecords != null) {
      for (int i = 0, size=atts.getLength(); i < size; i++) {
        String attNamespace = atts.getURI(i);

代码示例来源:origin: com.haulmont.thirdparty/eclipselink

XPathFragment rootFragment) {
lazyInitialize();
XPathNode textNode = rootXPathNode.getTextNode();
List<XPathNode> nonAttributeChildren = rootXPathNode.getNonAttributeChildren();
if (null == textNode && null == nonAttributeChildren) {
  return record;
  textNode.marshal((MarshalRecord) record, object, session, namespaceResolver, marshaller, marshalContext, rootFragment);
} else {
  if (node == null) {
    XPathNode n = new XPathNode();
    CompositeObjectMapping m = new XMLCompositeObjectMapping();
    m.setXPath(".");
    XMLCompositeObjectMappingNodeValue nv = new XMLCompositeObjectMappingNodeValue(m);
    n.setMarshalNodeValue(nv);
    nv.marshalSingleValue(new XPathFragment("."), marshalRecord, null, object, session, namespaceResolver, marshalContext);
  } else {
    for (int x = 0, size = marshalContext.getNonAttributeChildrenSize(node); x < size; x++) {
      XPathNode xPathNode = (XPathNode) marshalContext.getNonAttributeChild(x, node);
      xPathNode.marshal((MarshalRecord) record, object, session, namespaceResolver, marshaller, marshalContext.getMarshalContext(x), rootFragment);

代码示例来源:origin: com.haulmont.thirdparty/eclipselink

public Object getNonAttributeChild(int index, XPathNode xPathNode) {
  Setting setting = settings.get(index);
  if(null == setting.getName()) {
    return xPathNode.getAnyNode();
  } else {
    if (setting.getName().equals(Constants.TEXT)) {
      return xPathNode.getTextNode();
    } else {
      indexFragment.setLocalName(null);
      indexFragment.setXPath(setting.getName());
      indexFragment.setNamespaceURI(setting.getNamespaceURI());
      return xPathNode.getNonAttributeChildrenMap().get(indexFragment);
      
    }
  }
}

代码示例来源:origin: org.eclipse.persistence/com.springsource.org.eclipse.persistence

XPathNode textNode = xPathNode.getTextNode();
if (null == textNode) {
  textNode = xPathNode.getAnyNode();
  if (textNode != null) {
    if (0 == length) {
    if (!textNode.isWhitespaceAware() && tmpString.trim().length() == 0) {
      return;
  unmarshalContext.characters(this);
if (null != xPathNode.getUnmarshalNodeValue()) {
  getStringBuffer().append(ch, start, length);

代码示例来源:origin: org.eclipse.persistence/com.springsource.org.eclipse.persistence

if (null != xPathNode.getSelfChildren()) {
  int selfChildrenSize = xPathNode.getSelfChildren().size();
  selfRecords = new ArrayList<UnmarshalRecord>(selfChildrenSize);
  for (int x = 0; x < selfChildrenSize; x++) {
    XPathNode selfNode = (XPathNode)xPathNode.getSelfChildren().get(x);
    if (null != selfNode.getNodeValue()) {
      selfRecords.add(selfNode.getNodeValue().buildSelfRecord(this, attributes));

代码示例来源:origin: org.eclipse.persistence/org.eclipse.persistence.core

Map<XPathFragment, XPathNode> nonAttributeChildrenMap = xPathNode.getNonAttributeChildrenMap();
  if(resultNode != null && resultNode.hasPredicateSiblings()) {
    nonPredicateNode = resultNode;
    resultNode = null;
      if(null == resultNode && xPathNode.getTextNode() != null){
        XPathFragment textWrapperFragment = getTextWrapperFragment();
        if(textWrapperFragment != null && localName.equals(textWrapperFragment.getLocalName())){
          resultNode = xPathNode.getTextNode();
        resultNode = xPathNode.getAnyNode();

代码示例来源:origin: org.eclipse.persistence/org.eclipse.persistence.core

public void attribute(UnmarshalRecord unmarshalRecord, String namespaceURI, String localName, String value) {
   Descriptor referenceDescriptor = (Descriptor) getMapping().getReferenceDescriptor();
   ObjectBuilder treeObjectBuilder = (ObjectBuilder) referenceDescriptor.getObjectBuilder();
   MappingNodeValue textMappingNodeValue = (MappingNodeValue) treeObjectBuilder.getRootXPathNode().getTextNode().getNodeValue();
   Mapping textMapping = textMappingNodeValue.getMapping();
   Object childObject = referenceDescriptor.getInstantiationPolicy().buildNewInstance();
   if(textMapping.isAbstractDirectMapping()) {
     DirectMapping xmlDirectMapping = (DirectMapping) textMappingNodeValue.getMapping();
     Field xmlField = (Field) xmlDirectMapping.getField();
     Object realValue = unmarshalRecord.getXMLReader().convertValueBasedOnSchemaType(xmlField, value, (ConversionManager) unmarshalRecord.getSession().getDatasourcePlatform().getConversionManager(), unmarshalRecord);
     Object convertedValue = xmlDirectMapping.getAttributeValue(realValue, unmarshalRecord.getSession(), unmarshalRecord);
     xmlDirectMapping.setAttributeValueInObject(childObject, convertedValue);
   } else {
     Object oldChildObject = unmarshalRecord.getCurrentObject();
     CompositeObjectMapping nestedXMLCompositeObjectMapping = (CompositeObjectMapping) textMappingNodeValue.getMapping();
     unmarshalRecord.setCurrentObject(childObject);
     textMappingNodeValue.attribute(unmarshalRecord, namespaceURI, localName, value);
     unmarshalRecord.setCurrentObject(oldChildObject);
   }
   setXPathInObject(namespaceURI, localName, childObject);
   setOrAddAttributeValue(unmarshalRecord, childObject, null, null);
 }

代码示例来源:origin: org.eclipse.persistence/org.eclipse.persistence.core

if(mapping.isAttribute()){
    ObjectBuilder tob = (ObjectBuilder) mapping.getReferenceDescriptor().getObjectBuilder();
    MappingNodeValue textMappingNodeValue = (MappingNodeValue) tob.getRootXPathNode().getTextNode().getMarshalNodeValue();
    Mapping textMapping = textMappingNodeValue.getMapping();
    if(textMapping.isAbstractDirectMapping()) {
getXPathNode().startElement(marshalRecord, rootFragment, object, session, marshalRecord.getNamespaceResolver(), objectBuilder, value);
writeExtraNamespaces(extraNamespaces, marshalRecord, session);

代码示例来源:origin: org.eclipse.persistence/com.springsource.org.eclipse.persistence

public NodeValue getAttributeChildNodeValue(String namespace, String localName) {
  Map attributeChildrenMap = xPathNode.getAttributeChildrenMap();
  if (attributeChildrenMap != null) {
    xPathFragment.setLocalName(localName);
    if(namespace != null && namespace.length() == 0){
      xPathFragment.setNamespaceURI(null);
    } else {
      xPathFragment.setNamespaceURI(namespace);
    }
    XPathNode node = (XPathNode)attributeChildrenMap.get(xPathFragment);
    if (node != null) {
      return node.getUnmarshalNodeValue();
    }
  }
  return null;
}

代码示例来源:origin: org.eclipse.persistence/com.springsource.org.eclipse.persistence

public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
  if(null != xPathNode.getXPathFragment() && xPathNode.getXPathFragment().nameIsText()) {
    if (null != xPathNode.getUnmarshalNodeValue()) {
      xPathNode.getUnmarshalNodeValue().endElement(xPathFragment, this);
      if (xPathNode.getParent() != null) {
        xPathNode = xPathNode.getParent();
      NodeValue parentNodeValue = xPathNode.getUnmarshalNodeValue();
      if ((null == xPathNode.getXPathFragment()) && (parentNodeValue != null)) {
        XPathFragment parentFragment = new XPathFragment();
        if(namespaceURI != null && namespaceURI.length() == 0){
      NodeValue nodeValue = node.getUnmarshalNodeValue();
      if (null != nodeValue) {
        if (!nodeValue.startElement(xPathFragment, this, atts)) {
            attributeNodeValue.attribute(this, attNamespace, attLocalName, value);
          } else {
            if (xPathNode.getAnyAttributeNodeValue() != null) {
              xPathNode.getAnyAttributeNodeValue().attribute(this, attNamespace, attLocalName, value);

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com