gpt4 book ai didi

org.eclipse.persistence.oxm.mappings.XMLChoiceCollectionMapping类的使用及代码示例

转载 作者:知者 更新时间:2024-03-19 00:44:40 25 4
gpt4 key购买 nike

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

XMLChoiceCollectionMapping介绍

[英]PUBLIC:

Purpose:Provide a mapping that can map a single attribute to a number of different elements in an XML Document. This will be used to map to Choices or Substitution Groups in an XML Schema

Responsibilities:

  • Allow the user to specify XPath -> Type mappings
  • Handle reading and writing of XML Documents containing a collection of choice or substitution group elements

The XMLChoiceCollectionMapping is the collection version of the XMLChoiceMapping. This mapping allows the user to specify a number of different xpaths, and types associated with those xpaths. When any of these elements are encountered in the XML Document, they are read in as the correct type and added to the collection.

Setting up XPath mappings:Unlike other OXM Mappings, instead of setting a single xpath, the addChoiceElement method is used to specify an xpath and the type associated with this xpath.
xmlChoiceCollectionMapping.addChoiceElement("mystring/text()", String.class);
xmlChoiceCollectionMapping.addChoiceElement("myaddress", Address.class);
[中]公众:
目的:提供一种映射,可以将单个属性映射到XML文档中的多个不同元素。这将用于映射到XML模式中的选项或替换组
责任:
*允许用户指定XPath->Type映射
*处理包含选择或替换组元素集合的XML文档的读写
XMLChoiceCollectionMapping是XMLChoiceMapping的集合版本。此映射允许用户指定许多不同的XPath,以及与这些XPath关联的类型。在XML文档中遇到这些元素时,它们将作为正确的类型读入并添加到集合中。
设置XPath映射:与其他OXM映射不同,addChoiceElement方法用于指定XPath以及与此XPath关联的类型,而不是设置单个XPath。
xmlChoiceCollectionMapping。addChoiceElement(“mystring/text()”,字符串。阶级);
xmlChoiceCollectionMapping。addChoiceElement(“myaddress”,Address.class);

代码示例

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

public void addChoiceElement(String xpath, Class elementType) {
  XMLField field = new XMLField(xpath);
  addChoiceElement(field, elementType);
}

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

public void useCollectionClass(Class concreteContainerClass) {
  this.setContainerPolicy(ContainerPolicy.buildPolicyFor(concreteContainerClass));
}

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

public void addChoiceElement(XMLField sourceField, Class elementType, XMLField targetField) {
  getFieldToClassMappings().put(sourceField, elementType);
  this.fieldToClassNameMappings.put(sourceField, elementType.getName());
  if (classToFieldMappings.get(elementType) == null) {
    classToFieldMappings.put(elementType, sourceField);
  }
  addChoiceElementMapping(sourceField, elementType, targetField);
}

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

public void addChoiceElement(List<XMLField> srcFields, String elementTypeName, List<XMLField> tgtFields) {
  for(XMLField sourceField:srcFields) {
    this.fieldToClassNameMappings.put(sourceField, elementTypeName);
  }
  if (getClassNameToSourceFieldsMappings().get(elementTypeName) == null) {
    getClassNameToSourceFieldsMappings().put(elementTypeName, srcFields);
  }
  addChoiceElementMapping(srcFields, elementTypeName, tgtFields);
}

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

public void addChoiceElement(List<XMLField> srcFields, Class elementType, List<XMLField> tgtFields) {
  for(XMLField sourceField:srcFields) {
    getFieldToClassMappings().put(sourceField, elementType);
    this.fieldToClassNameMappings.put(sourceField, elementType.getName());
  }
  if (getClassToSourceFieldsMappings().get(elementType) == null) {
    getClassToSourceFieldsMappings().put(elementType, srcFields);
  }
  addChoiceElementMapping(srcFields, elementType, tgtFields);
}

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

public void preInitialize(AbstractSession session) throws DescriptorException {
  getAttributeAccessor().setIsWriteOnly(this.isWriteOnly());
  getAttributeAccessor().setIsReadOnly(this.isReadOnly());
  super.preInitialize(session);
  Iterator<XMLMapping> mappings = getChoiceElementMappings().values().iterator();
  while(mappings.hasNext()){
    DatabaseMapping nextMapping = (DatabaseMapping)mappings.next();
    nextMapping.setAttributeName(this.getAttributeName());         
    if(nextMapping.getAttributeAccessor() == temporaryAccessor){
      nextMapping.setAttributeAccessor(getAttributeAccessor());
    }
    
    nextMapping.setDescriptor(getDescriptor());
    
    nextMapping.preInitialize(session);
  }
}

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

@Override
public void writeFromObjectIntoRow(Object object, AbstractRecord row, AbstractSession session, WriteType writeType) throws DescriptorException {
  if(this.isReadOnly()) {
    return;
  Object attributeValue = getAttributeValueFromObject(object);
  List<XMLEntry> nestedRows = new ArrayList<XMLEntry>();
  XMLRecord record = (XMLRecord)row;
    ContainerPolicy cp = getContainerPolicy();
    Object iterator = cp.iteratorFor(attributeValue);
    if(null != iterator) {
      while(cp.hasNext(iterator)) {
        Object value = cp.next(iterator, session);
        value = convertObjectValueToDataValue(value, session, record.getMarshaller());
        NodeValue associatedNodeValue = null;
        XMLField associatedField = null;
          String namespaceUri = rootValue.getNamespaceURI();
          fieldValue = rootValue.getObject();
          associatedField = getFieldForName(localName, namespaceUri);
          if(associatedField == null) {
            associatedField = getClassToFieldMappings().get(fieldValue.getClass());
          associatedField = getClassToFieldMappings().get(value.getClass());
  ((DOMRecord)row).put(getFields(), nestedRows);

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

XMLChoiceCollectionMapping xmlChoiceMapping = new XMLChoiceCollectionMapping();
xmlChoiceMapping.setAttributeName(attributeName);
copyAccessorToMapping(jaxbMapping, xmlChoiceMapping);
xmlChoiceMapping.setProperties(jaxbMapping.getProperties());
xmlChoiceMapping.addChoiceElement(compositeMapping.getXPath(), Link.class);
xmlChoiceMapping.addChoiceElement(compositeMapping.getXPath(), refDesc.getJavaClass());
xmlChoiceMapping.setContainerPolicy(jaxbMapping.getContainerPolicy());
xmlChoiceMapping.setConverter(new XMLJavaTypeConverter(Class.forName(adapterClassName, true, cl)));
jaxbDescriptor.removeMappingForAttributeName(jaxbMapping.getAttributeName());
jaxbDescriptor.addMapping(xmlChoiceMapping);

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

public void writeFromObjectIntoRow(Object object, AbstractRecord row, AbstractSession session) throws DescriptorException {
  Object attributeValue = getAttributeValueFromObject(object);
  List<XMLEntry> nestedRows = new ArrayList<XMLEntry>();
  XMLRecord record = (XMLRecord)row;
  ContainerPolicy cp = getContainerPolicy();
  Object iterator = cp.iteratorFor(attributeValue);
  while(cp.hasNext(iterator)) {
      String namespaceUri = rootValue.getNamespaceURI();
      fieldValue = rootValue.getObject();
      associatedField = getFieldForName(localName, namespaceUri);
      if(associatedField == null) {
        associatedField = getClassToFieldMappings().get(fieldValue.getClass());
      associatedField = getClassToFieldMappings().get(value.getClass());
    nestedRows.add(entry);
  ((DOMRecord)row).put(getFields(), nestedRows);

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

private DatabaseMapping buildXMLChoiceCollectionMapping(String mappingUri) {
  XMLChoiceCollectionMapping mapping = new XMLChoiceCollectionMapping();
  mapping.setAttributeName(getName());
  mapping.useCollectionClass(ListWrapper.class);
  //First add XPath for this property
  String xPath = getQualifiedXPath(mappingUri, getType().isDataType());
  mapping.addChoiceElement(xPath, getType().getImplClass());
  //For each substitutable property, create the xpath and add it.
  Iterator<SDOProperty> properties = this.getSubstitutableElements().iterator();
  while(properties.hasNext()) {
    SDOProperty nextProp = properties.next();
    xPath = nextProp.getQualifiedXPath(mappingUri, nextProp.getType().isDataType(), getContainingType());
    mapping.addChoiceElement(xPath, nextProp.getType().getImplClass());
  }
  return mapping;
}

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

descriptor.addMapping(sessionFile);
XMLChoiceCollectionMapping operationsMapping = new XMLChoiceCollectionMapping();
operationsMapping.setAttributeName("operations");
operationsMapping.setAttributeAccessor(new AttributeAccessor() {
  public Object getAttributeValueFromObject(Object object) {
    return ((XRServiceModel)object).getOperationsList();
operationsMapping.addChoiceElement("insert", InsertOperation.class);
operationsMapping.addChoiceElement("query", QueryOperation.class);
operationsMapping.addChoiceElement("update", UpdateOperation.class);
operationsMapping.addChoiceElement("delete", DeleteOperation.class);
operationsMapping.addChoiceElement("batch-sql-query", BatchQueryOperation.class);
descriptor.addMapping(operationsMapping);
return descriptor;

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

public void setChoiceFieldToClassAssociations(ArrayList associations) {
  if(associations.size() > 0) {
    for(Object next:associations) {
      XMLChoiceFieldToClassAssociation<Converter, XMLField> association = (XMLChoiceFieldToClassAssociation)next;
      this.addChoiceElement(association.getXmlField(), association.getClassName());
      if(association.getConverter() != null) {
        this.addConverter(association.getXmlField(), association.getConverter());
      }
    }
  }
}

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

mappingsList.addAll(getChoiceElementMappings().values());
for(XMLMapping next:getChoiceElementMappingsByClass().values()) {
  if(!(mappingsList.contains(next))) {
    mappingsList.add(next);
      ((AbstractCompositeDirectCollectionMapping)nextMapping).setValueConverter(converter);
    ((AbstractCompositeDirectCollectionMapping)nextMapping).setContainerPolicy(getContainerPolicy());
  }else if(nextMapping.isAbstractCompositeCollectionMapping()){
    if(converter != null){
      ((AbstractCompositeCollectionMapping)nextMapping).setConverter(converter);
    ((AbstractCompositeCollectionMapping)nextMapping).setContainerPolicy(getContainerPolicy());
  } else if(nextMapping instanceof XMLBinaryDataCollectionMapping) {
    ((XMLBinaryDataCollectionMapping)nextMapping).setContainerPolicy(getContainerPolicy());
    if(converter != null) {
      ((XMLBinaryDataCollectionMapping)nextMapping).setValueConverter(converter);
    ((XMLAnyCollectionMapping)nextMapping).setContainerPolicy(getContainerPolicy());
    if(converter != null && converter instanceof XMLConverter) {
      ((XMLAnyCollectionMapping)nextMapping).setConverter((XMLConverter)converter);
    ((XMLCollectionReferenceMapping)nextMapping).setContainerPolicy(getContainerPolicy());
    ((XMLCollectionReferenceMapping)nextMapping).setReuseContainer(true);

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

public void initialize(AbstractSession session) throws DescriptorException {
  super.initialize(session);
  if (this.fieldToClassMappings.size() == 0) {
    this.convertClassNamesToClasses(((XMLConversionManager) session.getDatasourcePlatform().getConversionManager()).getLoader());
  Iterator<XMLMapping> mappings = getChoiceElementMappings().values().iterator();
  while(mappings.hasNext()){
    DatabaseMapping nextMapping = (DatabaseMapping)mappings.next();
        ((AbstractCompositeDirectCollectionMapping)nextMapping).setValueConverter(converter);
      ((AbstractCompositeDirectCollectionMapping)nextMapping).setContainerPolicy(getContainerPolicy());                                               
    }else{
      if(converter != null){
        ((AbstractCompositeCollectionMapping)nextMapping).setConverter(converter);
      ((AbstractCompositeCollectionMapping)nextMapping).setContainerPolicy(getContainerPolicy());

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

mapping = new XMLChoiceCollectionMapping();
initializeXMLContainerMapping((ChoiceCollectionMapping) mapping, property.getType().isArray());
JavaClass collectionType = property.getType();
if(isCollection){
  XMLChoiceCollectionMapping xmlChoiceCollectionMapping = (XMLChoiceCollectionMapping) mapping;
  xmlChoiceCollectionMapping.setIsAny(true);

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

private void initializeNodeValue() {
  XMLMapping xmlMapping = xmlChoiceCollectionMapping.getChoiceElementMappings().get(xmlField);
  if(xmlMapping instanceof XMLCompositeDirectCollectionMapping) {
    choiceElementNodeValue = new XMLCompositeDirectCollectionMappingNodeValue((XMLCompositeDirectCollectionMapping)xmlMapping);
  } else {
    choiceElementNodeValue = new XMLCompositeCollectionMappingNodeValue((XMLCompositeCollectionMapping)xmlMapping);
  }
}

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

public void addChoiceElement(XMLField field, String elementTypeName) {
  this.fieldToClassNameMappings.put(field, elementTypeName);
  addChoiceElementMapping(field, elementTypeName);
}

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

public ChoiceCollectionMapping generateChoiceCollectionMapping(Property property, Descriptor descriptor, NamespaceInfo namespace) {
  ChoiceCollectionMapping mapping = new XMLChoiceCollectionMapping();
  initializeXMLContainerMapping(mapping, property.getType().isArray());
  initializeXMLMapping((XMLChoiceCollectionMapping)mapping, property);

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

public Vector<DatabaseField> getFields() {
  if(fields == null || fields.size() == 0) {
    fields = this.collectFields();
  }
  return this.fields;
}

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

public boolean marshal(XPathFragment xPathFragment, MarshalRecord marshalRecord, Object object, AbstractSession session, NamespaceResolver namespaceResolver) {
  Object value = xmlChoiceCollectionMapping.getAttributeValueFromObject(object);
  if(value == null) {
    return false;
  }
  ContainerPolicy cp = getContainerPolicy();
  Object iterator = cp.iteratorFor(value);
  if (cp.hasNext(iterator)) {
    XPathFragment groupingFragment = marshalRecord.openStartGroupingElements(namespaceResolver);
    marshalRecord.closeStartGroupingElements(groupingFragment);
  } else {
    return false;
  }
  
  while(cp.hasNext(iterator)) {
    Object nextValue = cp.next(iterator, session);
    marshalSingleValue(xPathFragment, marshalRecord, object, nextValue, session, namespaceResolver, ObjectMarshalContext.getInstance());
  }
  return true;
}

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