public void addEmployeeDescriptor(boolean methodAccess) { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(Employee.class); descriptor.setDefaultRootElement("employee"); XMLDirectMapping idMapping = new XMLDirectMapping(); idMapping.setAttributeName("id"); idMapping.setXPath("@id"); descriptor.addMapping(idMapping); XMLDirectMapping firstNameMapping = new XMLDirectMapping(); firstNameMapping.setAttributeName("firstName"); firstNameMapping.setXPath("first-name/text()"); descriptor.addMapping(firstNameMapping); XMLDirectMapping lastNameMapping = new XMLDirectMapping(); lastNameMapping.setAttributeName("lastName"); lastNameMapping.setXPath("last-name/text()"); descriptor.addMapping(lastNameMapping); XMLCompositeObjectMapping addressMapping = new XMLCompositeObjectMapping(); addressMapping.setAttributeName("address"); addressMapping.setReferenceClass(Address.class); addressMapping.setXPath("address"); descriptor.addMapping(addressMapping); XMLCompositeCollectionMapping phoneMapping = new XMLCompositeCollectionMapping(); phoneMapping.setAttributeName("phoneNumbers"); phoneMapping.setReferenceClass(PhoneNumber.class); phoneMapping.setXPath("phone-numbers/number"); phoneMapping.setContainerPolicy(ContainerPolicy.buildPolicyFor(ArrayList.class)); descriptor.addMapping(phoneMapping); this.addDescriptor(descriptor); }
public XMLDescriptor addEmployeeDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(Employee.class); descriptor.setDefaultRootElement("employee"); XMLCompositeObjectMapping addr = new XMLCompositeObjectMapping(); addr.setAttributeName("address"); addr.setXPath("address"); addr.setReferenceClass(Address.class); descriptor.addMapping(addr); XMLCompositeCollectionMapping phone = new XMLCompositeCollectionMapping(); phone.setAttributeName("phoneNumbers"); phone.setXPath("phone-number"); phone.setReferenceClass(PhoneNumber.class); phone.useCollectionClass(ArrayList.class); descriptor.addMapping(phone); XMLAnyObjectMapping object = new XMLAnyObjectMapping(); object.setAttributeName("anyObject"); object.setXPath("any-object"); descriptor.addMapping(object); XMLAnyCollectionMapping anyCollection = new XMLAnyCollectionMapping(); anyCollection.setAttributeName("anyCollection"); anyCollection.setXPath("any-collection"); anyCollection.useCollectionClass(ArrayList.class); descriptor.addMapping(anyCollection); this.addDescriptor(descriptor); return descriptor; }
public XMLDescriptor getEmployeeDescriptor() { XMLDescriptor xmlDescriptor = new XMLDescriptor(); xmlDescriptor.setJavaClass(Employee.class); xmlDescriptor.setDefaultRootElement("employee"); XMLCompositeObjectMapping addressMapping = new XMLCompositeObjectMapping(); addressMapping.setReferenceClass(Address.class); addressMapping.setAttributeName("address"); addressMapping.setXPath("."); xmlDescriptor.addMapping(addressMapping); return xmlDescriptor; }
public static XMLDescriptor buildDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(ModelGroupDefinition.class); descriptor.getInheritancePolicy().setParentClass(AbstractNamedSchemaComponent.class); XMLCompositeObjectMapping modelGroupMapping = new XMLCompositeObjectMapping(); modelGroupMapping.setAttributeName("modelGroup"); modelGroupMapping.setReferenceClass(ExplicitModelGroup.class); modelGroupMapping.setXPath("model-group"); descriptor.addMapping(modelGroupMapping); return descriptor; }
public void addEmployeeDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(Employee.class); descriptor.setDefaultRootElement("employee"); XMLCompositeObjectMapping addr = new XMLCompositeObjectMapping(); addr.setAttributeName("primaryAddress"); addr.setXPath("primary-address"); addr.setReferenceClass(Address.class); addr.readOnly(); descriptor.addMapping(addr); this.addDescriptor(descriptor); }
/** * For isMany=false properties set the value to null. For isMany=true set the value to an empty * container of the appropriate type. */ public void unsetDeclaredProperty(int propertyIndex) { SDOProperty declaredProperty = (SDOProperty) dataObject.getType().getDeclaredProperties().get(propertyIndex); Mapping mapping = this.getJAXBMappingForProperty(declaredProperty); if (declaredProperty.isMany()) { ContainerMapping containerMapping = (ContainerMapping) mapping; ContainerPolicy containerPolicy = containerMapping.getContainerPolicy(); // OLD VALUE if (mapping.isAbstractCompositeCollectionMapping()) { XMLCompositeCollectionMapping compositeMapping = (XMLCompositeCollectionMapping) mapping; if (compositeMapping.getContainerAccessor() != null) { Object oldContainer = mapping.getAttributeValueFromObject(entity); if (oldContainer != null) { AbstractSession session = ((JAXBContext) jaxbHelperContext.getJAXBContext()) .getXMLContext() .getSession(entity); Object iterator = containerPolicy.iteratorFor(oldContainer); while (containerPolicy.hasNext(iterator)) { Object oldValue = containerPolicy.next(iterator, session); compositeMapping.getContainerAccessor().setAttributeValueInObject(oldValue, null); } } } } // NEW VALUE Object container = containerPolicy.containerInstance(); mapping.getAttributeAccessor().setAttributeValueInObject(entity, container); } else { // OLD VALUE Object oldValue = mapping.getAttributeAccessor().getAttributeValueFromObject(entity); if (mapping.isAbstractCompositeObjectMapping()) { XMLCompositeObjectMapping compositeMapping = (XMLCompositeObjectMapping) mapping; if (compositeMapping.getContainerAccessor() != null) { if (oldValue != null) { compositeMapping.getContainerAccessor().setAttributeValueInObject(oldValue, null); } } } // NEW VALUE mapping.getAttributeAccessor().setAttributeValueInObject(entity, null); } }
private XMLDescriptor getCustomerDescriptor() { XMLDescriptor xmlDescriptor = new XMLDescriptor(); xmlDescriptor.setJavaClass(Customer.class); xmlDescriptor.setDefaultRootElement("ns:customer"); NamespaceResolver nsResolver = new NamespaceResolver(); nsResolver.put("ns", "urn:example"); xmlDescriptor.setNamespaceResolver(nsResolver); XMLCompositeObjectMapping addressMapping = new XMLCompositeObjectMapping(); addressMapping.setAttributeName("address"); addressMapping.setXPath("//ns:customer/ns:phone-number/preceding-sibling::*[1]"); addressMapping.setReferenceClass(Address.class); xmlDescriptor.addMapping(addressMapping); return xmlDescriptor; }
private XMLDescriptor getRootDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(Root.class); descriptor.setDefaultRootElement("root"); // create employee mapping XMLCompositeObjectMapping empMapping = new XMLCompositeObjectMapping(); empMapping.setAttributeName("employee"); empMapping.setXPath("employee"); empMapping.setReferenceClass(Employee.class); descriptor.addMapping(empMapping); // create address mapping XMLCompositeCollectionMapping addMapping = new XMLCompositeCollectionMapping(); addMapping.setAttributeName("addresses"); addMapping.setXPath("address"); addMapping.setReferenceClass(Address.class); descriptor.addMapping(addMapping); return descriptor; }
public ClassDescriptor buildWrapperDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(Wrapper.class); descriptor.setDefaultRootElement("myns:wrapper"); XMLCompositeObjectMapping mapping = new XMLCompositeObjectMapping(); mapping.setReferenceClass(Root.class); mapping.setAttributeName("theRoot"); mapping.setXPath("myns:root"); descriptor.addMapping(mapping); NamespaceResolver nr = new NamespaceResolver(); nr.put("myns", "www.example.com/some-dir/some.xsd"); nr.put("ns0", "www.example.com/test.xsd"); descriptor.setNamespaceResolver(nr); return descriptor; }
// Persistence public static XMLDescriptor buildDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(MWLiteralArgument.class); descriptor.getInheritancePolicy().setParentClass(MWArgument.class); // 1:1 - type XMLCompositeObjectMapping typeMapping = new XMLCompositeObjectMapping(); typeMapping.setAttributeName("type"); typeMapping.setReferenceClass(MWTypeDeclaration.class); typeMapping.setXPath("type"); descriptor.addMapping(typeMapping); // DTF Object value XMLDirectMapping valueMapping = (XMLDirectMapping) descriptor.addDirectMapping("value", "value/text()"); valueMapping.setNullValue(""); return descriptor; }
protected XMLDescriptor getEmployeeDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(Employee.class); // descriptor.setDefaultRootElement("employee"); XMLDirectMapping idMapping = new XMLDirectMapping(); idMapping.setXPath("id/text()"); idMapping.setAttributeName("id"); descriptor.addMapping(idMapping); XMLCompositeObjectMapping emailMapping = new XMLCompositeObjectMapping(); emailMapping.setAttributeName("emailAddress"); emailMapping.setXPath("info/email-address"); emailMapping.setGetMethodName("getEmailAddress"); emailMapping.setSetMethodName("setEmailAddress"); emailMapping.setReferenceClass(EmailAddress.class); descriptor.addMapping(emailMapping); URL schemaURL = ClassLoader.getSystemResource("org/eclipse/persistence/testing/oxm/jaxb/Employee.xsd"); XMLSchemaURLReference schemaRef = new XMLSchemaURLReference(schemaURL); schemaRef.setType(XMLSchemaURLReference.COMPLEX_TYPE); schemaRef.setSchemaContext("employee-root"); descriptor.setSchemaReference(schemaRef); /* NamespaceResolver try_test = new NamespaceResolver(); try_test.put("xsi", XMLConstants.SCHEMA_INSTANCE_URL); descriptor.setNamespaceResolver(try_test);*/ return descriptor; }
protected ClassDescriptor buildDocumentPreservationPolicyConfigDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(DocumentPreservationPolicyConfig.class); descriptor.setDefaultRootElement("document-preservation-policy"); XMLCompositeObjectMapping nodeOrderingPolicyMapping = new XMLCompositeObjectMapping(); nodeOrderingPolicyMapping.setReferenceClass(NodeOrderingPolicyConfig.class); nodeOrderingPolicyMapping.setAttributeName("m_nodeOrderingPolicy"); nodeOrderingPolicyMapping.setGetMethodName("getNodeOrderingPolicy"); nodeOrderingPolicyMapping.setSetMethodName("setNodeOrderingPolicy"); nodeOrderingPolicyMapping.setXPath("node-ordering-policy"); descriptor.addMapping(nodeOrderingPolicyMapping); descriptor.getInheritancePolicy().setClassIndicatorField(new XMLField("@xsi:type")); descriptor .getInheritancePolicy() .addClassIndicator( DescriptorLevelDocumentPreservationPolicyConfig.class, "descriptor-level-document-preservation-policy"); descriptor .getInheritancePolicy() .addClassIndicator( NoDocumentPreservationPolicyConfig.class, "no-document-preservation-policy"); descriptor .getInheritancePolicy() .addClassIndicator(XMLBinderPolicyConfig.class, "xml-binder-policy"); return descriptor; }
public static XMLDescriptor buildDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(MWMapContainerPolicy.class); descriptor.getInheritancePolicy().setParentClass(MWContainerPolicy.MWContainerPolicyRoot.class); XMLCompositeObjectMapping keyMethodHandleMapping = new XMLCompositeObjectMapping(); keyMethodHandleMapping.setAttributeName("keyMethodHandle"); keyMethodHandleMapping.setReferenceClass(MWMethodHandle.class); keyMethodHandleMapping.setSetMethodName("setKeyMethodHandleForTopLink"); keyMethodHandleMapping.setGetMethodName("getKeyMethodHandleForTopLink"); keyMethodHandleMapping.setXPath("key-method-handle"); descriptor.addMapping(keyMethodHandleMapping); XMLCompositeObjectMapping containerClassMapping = new XMLCompositeObjectMapping(); containerClassMapping.setAttributeName("containerClass"); containerClassMapping.setReferenceClass(DefaultingContainerClass.class); containerClassMapping.setXPath("container-class"); descriptor.addMapping(containerClassMapping); return descriptor; }
public static XMLDescriptor buildDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(MWQueryableArgumentElement.class); XMLCompositeObjectMapping queryableHandleMapping = new XMLCompositeObjectMapping(); queryableHandleMapping.setAttributeName("queryableHandle"); queryableHandleMapping.setGetMethodName("getQueryableHandleForTopLink"); queryableHandleMapping.setSetMethodName("setQueryableHandleForTopLink"); queryableHandleMapping.setReferenceClass(MWQueryableHandle.class); queryableHandleMapping.setXPath("queryable-handle"); descriptor.addMapping(queryableHandleMapping); ((XMLDirectMapping) descriptor.addDirectMapping("allowsNull", "allows-null/text()")) .setNullValue(Boolean.FALSE); XMLCompositeObjectMapping joinedQueryableElementMapping = new XMLCompositeObjectMapping(); joinedQueryableElementMapping.setAttributeName("joinedQueryableElement"); joinedQueryableElementMapping.setReferenceClass(MWQueryableArgumentElement.class); joinedQueryableElementMapping.setXPath("joined-queryable-element"); descriptor.addMapping(joinedQueryableElementMapping); return descriptor; }
/** Set the value on the underlying POJO, unwrapping values as necessary. */ public void setDeclaredProperty(int propertyIndex, Object value) { SDOProperty declaredProperty = (SDOProperty) dataObject.getType().getDeclaredProperties().get(propertyIndex); if (declaredProperty.getType().isChangeSummaryType()) { return; } Mapping mapping = this.getJAXBMappingForProperty(declaredProperty); Object newValue = value; Object oldValue = mapping.getAttributeAccessor().getAttributeValueFromObject(entity); if (declaredProperty.getType().isDataType()) { if (!declaredProperty.isMany()) { AbstractSession session = ((JAXBContext) jaxbHelperContext.getJAXBContext()).getXMLContext().getSession(entity); XMLDirectMapping directMapping = (XMLDirectMapping) mapping; if (directMapping.hasConverter()) { newValue = directMapping.getConverter().convertDataValueToObjectValue(newValue, session); } else { CoreField field = mapping.getField(); newValue = session .getDatasourcePlatform() .getConversionManager() .convertObject( newValue, descriptor.getObjectBuilder().getFieldClassification((XMLField) field)); } } mapping.setAttributeValueInObject(entity, newValue); } else if (declaredProperty.isMany()) { // Get a ListWrapper and set it's current elements ListWrapper listWrapper = (ListWrapper) getDeclaredProperty(propertyIndex); listWrapper.addAll((List) newValue); } else { // OLD VALUE if (mapping.isAbstractCompositeObjectMapping()) { XMLCompositeObjectMapping compositeMapping = (XMLCompositeObjectMapping) mapping; if (oldValue != null && compositeMapping.getContainerAccessor() != null) { compositeMapping.getContainerAccessor().setAttributeValueInObject(oldValue, null); } } // NEW VALUE newValue = jaxbHelperContext.unwrap((DataObject) value); mapping.getAttributeAccessor().setAttributeValueInObject(entity, newValue); if (mapping.isAbstractCompositeObjectMapping()) { XMLCompositeObjectMapping compositeMapping = (XMLCompositeObjectMapping) mapping; if (value != null && compositeMapping.getContainerAccessor() != null) { compositeMapping.getContainerAccessor().setAttributeValueInObject(newValue, entity); } } } }
public static XMLDescriptor buildDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(MWDirectContainerMapping.class); descriptor.getInheritancePolicy().setParentClass(MWMapping.class); XMLCompositeObjectMapping converterMapping = new XMLCompositeObjectMapping(); converterMapping.setReferenceClass(MWConverter.class); converterMapping.setAttributeName("directValueConverter"); converterMapping.setGetMethodName("getConverterForTopLink"); converterMapping.setSetMethodName("setConverterForTopLink"); converterMapping.setXPath("direct-value-converter"); descriptor.addMapping(converterMapping); return descriptor; }
public static XMLDescriptor legacy60BuildDescriptor() { XMLDescriptor descriptor = MWModel.legacy60BuildStandardDescriptor(); descriptor.setJavaClass(MWTypeDeclaration.class); // 'type' will never be null XMLCompositeObjectMapping typeHandleMapping = new XMLCompositeObjectMapping(); typeHandleMapping.setAttributeName("typeHandle"); typeHandleMapping.setReferenceClass(MWClassHandle.class); typeHandleMapping.setGetMethodName("getTypeHandleForTopLink"); typeHandleMapping.setSetMethodName("setTypeHandleForTopLink"); typeHandleMapping.setXPath("type-handle"); descriptor.addMapping(typeHandleMapping); XMLDirectMapping dimMapping = (XMLDirectMapping) descriptor.addDirectMapping("dimensionality", "dimensionality/text()"); dimMapping.setNullValue(new Integer(0)); return descriptor; }
public ClassDescriptor buildXMLLoginConfigDescriptor() { ClassDescriptor descriptor = super.buildXMLLoginConfigDescriptor(); XMLDirectMapping equalNamespaceResolversMapping = new XMLDirectMapping(); equalNamespaceResolversMapping.setAttributeName("m_equalNamespaceResolvers"); equalNamespaceResolversMapping.setGetMethodName("getEqualNamespaceResolvers"); equalNamespaceResolversMapping.setSetMethodName("setEqualNamespaceResolvers"); equalNamespaceResolversMapping.setXPath("equal-namespace-resolvers/text()"); equalNamespaceResolversMapping.setNullValue(Boolean.TRUE); descriptor.addMapping(equalNamespaceResolversMapping); XMLCompositeObjectMapping documentPreservationPolicyMapping = new XMLCompositeObjectMapping(); documentPreservationPolicyMapping.setReferenceClass(DocumentPreservationPolicyConfig.class); documentPreservationPolicyMapping.setAttributeName("m_documentPreservationPolicy"); documentPreservationPolicyMapping.setGetMethodName("getDocumentPreservationPolicy"); documentPreservationPolicyMapping.setSetMethodName("setDocumentPreservationPolicy"); documentPreservationPolicyMapping.setXPath("document-preservation-policy"); descriptor.addMapping(documentPreservationPolicyMapping); return descriptor; }
public static XMLDescriptor buildDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(MWEisLoginSpec.class); descriptor.addDirectMapping("name", "name/text()"); descriptor.addDirectMapping( "j2cAdapterName", "getJ2CAdapterNameForTopLink", "setJ2CAdapterNameForTopLink", "j2c-adapter-name/text()"); descriptor.addDirectMapping("userName", "user-name/text()"); descriptor.addDirectMapping( "password", "getPasswordForTopLink", "setPasswordForTopLink", "password/text()"); descriptor.addDirectMapping("connectionFactoryUrl", "connection-factory-url/text()"); ((XMLDirectMapping) descriptor.addDirectMapping("savePassword", "save-password/text()")) .setNullValue(Boolean.FALSE); XMLCompositeObjectMapping connectionSpecClassHandleMapping = new XMLCompositeObjectMapping(); connectionSpecClassHandleMapping.setAttributeName("connectionSpecClassHandle"); connectionSpecClassHandleMapping.setGetMethodName("getConnectionSpecClassHandleForTopLink"); connectionSpecClassHandleMapping.setSetMethodName("setConnectionSpecClassHandleForTopLink"); connectionSpecClassHandleMapping.setReferenceClass(MWClassHandle.class); connectionSpecClassHandleMapping.setXPath("connection-spec-class-handle"); descriptor.addMapping(connectionSpecClassHandleMapping); XMLCompositeCollectionMapping propertiesMapping = new XMLCompositeCollectionMapping(); propertiesMapping.setReferenceClass(MWProperty.class); propertiesMapping.setAttributeName("properties"); propertiesMapping.setGetMethodName("getPropertiesForTopLink"); propertiesMapping.setSetMethodName("setPropertiesForTopLink"); propertiesMapping.setXPath("property"); descriptor.addMapping(propertiesMapping); return descriptor; }
// **************** TopLink Methods ***************** @SuppressWarnings("deprecation") public static XMLDescriptor buildDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(MWAbstractXmlDirectCollectionMapping.class); descriptor.getInheritancePolicy().setParentClass(MWDirectContainerMapping.class); XMLCompositeObjectMapping xmlFieldMapping = new XMLCompositeObjectMapping(); xmlFieldMapping.setReferenceClass(MWXmlField.class); xmlFieldMapping.setAttributeName("xmlField"); xmlFieldMapping.setGetMethodName("getXmlFieldForTopLink"); xmlFieldMapping.setSetMethodName("setXmlFieldForTopLink"); xmlFieldMapping.setXPath("xpath"); descriptor.addMapping(xmlFieldMapping); XMLCompositeObjectMapping containerPolicyMapping = new XMLCompositeObjectMapping(); containerPolicyMapping.setAttributeName("containerPolicy"); containerPolicyMapping.setReferenceClass(MWContainerPolicy.MWContainerPolicyRoot.class); containerPolicyMapping.setGetMethodName("getContainerPolicyForToplink"); containerPolicyMapping.setSetMethodName("setContainerPolicyForToplink"); containerPolicyMapping.setXPath("container-policy"); descriptor.addMapping(containerPolicyMapping); return descriptor; }
@Override public void handleObjectType(String objectTypeName, String targetTypeName, int numAttributes) { // JDBC Advanced type? if (numAttributes > 0) { // trim-off dotted-prefix, toLowerCase String objectTypeNameAlias = trimDotPrefix(objectTypeName).toLowerCase(); XMLDescriptor xdesc = descriptorMap.get(objectTypeNameAlias); String userType = nct.generateSchemaAlias(objectTypeNameAlias); if (xdesc == null) { xdesc = new XMLDescriptor(); xdesc.setAlias(objectTypeNameAlias); xdesc.setJavaClassName(packageName.toLowerCase() + "." + objectTypeNameAlias); xdesc.getQueryManager(); XMLSchemaURLReference schemaReference = new XMLSchemaURLReference(); schemaReference.setSchemaContext("/" + userType); schemaReference.setType(XMLSchemaReference.COMPLEX_TYPE); xdesc.setSchemaReference(schemaReference); NamespaceResolver nr = new NamespaceResolver(); nr.setDefaultNamespaceURI(targetNamespace); xdesc.setNamespaceResolver(nr); descriptorMap.put(objectTypeNameAlias, xdesc); } // before we push the new ObjectTypeHelper, check stac to see if we are part // of nested chain of object types if (!stac.isEmpty()) { ListenerHelper listenerHelper = stac.peek(); if (listenerHelper.isAttribute()) { AttributeFieldHelper fieldHelper = (AttributeFieldHelper) stac.pop(); fieldHelper.setSqlTypeName(objectTypeNameAlias); String fieldName = fieldHelper.attributeFieldName(); String attributeName = fieldName.toLowerCase(); ListenerHelper listenerHelper2 = stac.peek(); if (listenerHelper2.isObject()) { ObjectTypeHelper objectTypeHelper2 = (ObjectTypeHelper) listenerHelper2; String objectTypeNameAlias2 = objectTypeHelper2.objectTypename(); XMLDescriptor xdesc2 = descriptorMap.get(objectTypeNameAlias2); if (xdesc2 != null) { DatabaseMapping dm = xdesc2.getMappingForAttributeName(attributeName); if (dm == null) { XMLCompositeObjectMapping compMapping = new XMLCompositeObjectMapping(); compMapping.setAttributeName(attributeName); compMapping.setReferenceClassName(xdesc.getJavaClassName()); compMapping.setXPath(attributeName); XMLField xField = (XMLField) compMapping.getField(); xField.setRequired(true); xdesc2.addMapping(compMapping); } // last attribute, pop ObjectTypeHelper off stack int numAttributes2 = objectTypeHelper2.decrNumAttributes(); if (numAttributes2 == 0) { stac.pop(); } } } } else if (listenerHelper.isArray()) { SqlArrayTypeHelper sqlArrayTypeHelper = (SqlArrayTypeHelper) stac.pop(); String sqlArrayTypeAlias = sqlArrayTypeHelper.arrayTypename(); XMLDescriptor xdesc2 = descriptorMap.get(sqlArrayTypeAlias); if (xdesc2 != null) { boolean itemsMappingFound = xdesc2.getMappingForAttributeName(ITEMS_MAPPING_ATTRIBUTE_NAME) == null ? false : true; if (!itemsMappingFound) { XMLCompositeCollectionMapping itemsMapping = new XMLCompositeCollectionMapping(); itemsMapping.setAttributeName(ITEMS_MAPPING_ATTRIBUTE_NAME); itemsMapping.setXPath(ITEM_MAPPING_NAME); itemsMapping.useCollectionClassName("java.util.ArrayList"); itemsMapping.setReferenceClassName(xdesc.getJavaClassName()); xdesc2.addMapping(itemsMapping); } } } else if (listenerHelper.isReturnArg()) { // ReturnArgHelper returnArgHelper = (ReturnArgHelper)stac.pop(); stac.pop(); xdesc.setDefaultRootElement(userType); } } stac.push(new ObjectTypeHelper(objectTypeNameAlias, targetTypeName, numAttributes)); } }
public static XMLDescriptor buildDescriptor() { XMLDescriptor descriptor = new XMLDescriptor(); descriptor.setJavaClass(MWEisOneToManyMapping.class); descriptor.getInheritancePolicy().setParentClass(MWEisReferenceMapping.class); // use an object type mapping so we can preserve object identity ObjectTypeConverter foreignKeyLocationConverter = new ObjectTypeConverter(); foreignKeyLocationConverter.addConversionValue(KEYS_ON_TARGET, KEYS_ON_TARGET); foreignKeyLocationConverter.addConversionValue(KEYS_ON_SOURCE, KEYS_ON_SOURCE); XMLDirectMapping foreignKeyLocationMapping = new XMLDirectMapping(); foreignKeyLocationMapping.setAttributeName("foreignKeyLocation"); foreignKeyLocationMapping.setXPath("foreign-key-location/text()"); foreignKeyLocationMapping.setNullValue(KEYS_ON_SOURCE); foreignKeyLocationMapping.setConverter(foreignKeyLocationConverter); descriptor.addMapping(foreignKeyLocationMapping); XMLCompositeObjectMapping groupingElementMapping = new XMLCompositeObjectMapping(); groupingElementMapping.setAttributeName("foreignKeyGroupingElement"); groupingElementMapping.setReferenceClass(MWXmlField.class); groupingElementMapping.setGetMethodName("getGroupingElementForTopLink"); groupingElementMapping.setSetMethodName("setGroupingElementForTopLink"); groupingElementMapping.setXPath("foreign-key-grouping-element"); descriptor.addMapping(groupingElementMapping); XMLCompositeObjectMapping containerPolicyMapping = new XMLCompositeObjectMapping(); containerPolicyMapping.setAttributeName("containerPolicy"); containerPolicyMapping.setReferenceClass(MWContainerPolicy.MWContainerPolicyRoot.class); containerPolicyMapping.setXPath("container-policy"); descriptor.addMapping(containerPolicyMapping); XMLCompositeObjectMapping deleteAllInteractionMapping = new XMLCompositeObjectMapping(); deleteAllInteractionMapping.setAttributeName("deleteAllInteraction"); deleteAllInteractionMapping.setReferenceClass(MWEisInteraction.class); deleteAllInteractionMapping.setXPath("delete-all-interaction"); descriptor.addMapping(deleteAllInteractionMapping); return descriptor; }