use of org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping in project eclipselink by eclipse-ee4j.
the class SelfElementProject method getEmployeeDescriptor.
private XMLDescriptor getEmployeeDescriptor() {
XMLDescriptor descriptor = new XMLDescriptor();
descriptor.setJavaClass(Employee.class);
descriptor.addPrimaryKeyFieldName("id1/text()");
descriptor.addPrimaryKeyFieldName("ns:id2/text()");
NamespaceResolver namespaceResolver = new NamespaceResolver();
namespaceResolver.put("ns", "urn:example");
descriptor.setNamespaceResolver(namespaceResolver);
XMLCompositeObjectMapping idMapping = new XMLCompositeObjectMapping();
idMapping.setAttributeName("id");
idMapping.setXPath(".");
idMapping.setReferenceClass(EmployeeID.class);
descriptor.addMapping(idMapping);
XMLObjectReferenceMapping managerMapping = new XMLObjectReferenceMapping();
managerMapping.setAttributeName("manager");
managerMapping.addSourceToTargetKeyFieldAssociation("manager/fk1/text()", "id1/text()");
managerMapping.addSourceToTargetKeyFieldAssociation("manager/ns:fk2/text()", "ns:id2/text()");
managerMapping.setReferenceClass(Employee.class);
descriptor.addMapping(managerMapping);
XMLCollectionReferenceMapping employeesMapping = new XMLCollectionReferenceMapping();
employeesMapping.setAttributeName("teamMembers");
employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/fk1/text()", "id1/text()");
employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/ns:fk2/text()", "ns:id2/text()");
employeesMapping.setReferenceClass(Employee.class);
descriptor.addMapping(employeesMapping);
return descriptor;
}
use of org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping in project eclipselink by eclipse-ee4j.
the class ElementProject method getEmployeeDescriptor.
private XMLDescriptor getEmployeeDescriptor() {
XMLDescriptor descriptor = new XMLDescriptor();
descriptor.setJavaClass(Employee.class);
descriptor.addPrimaryKeyFieldName("id/id1/text()");
descriptor.addPrimaryKeyFieldName("id/ns:id2/text()");
NamespaceResolver namespaceResolver = new NamespaceResolver();
namespaceResolver.put("ns", "urn:example");
descriptor.setNamespaceResolver(namespaceResolver);
XMLCompositeObjectMapping idMapping = new XMLCompositeObjectMapping();
idMapping.setAttributeName("id");
idMapping.setXPath("id");
idMapping.setReferenceClass(EmployeeID.class);
descriptor.addMapping(idMapping);
XMLObjectReferenceMapping managerMapping = new XMLObjectReferenceMapping();
managerMapping.setAttributeName("manager");
managerMapping.addSourceToTargetKeyFieldAssociation("manager/fk1/text()", "id/id1/text()");
managerMapping.addSourceToTargetKeyFieldAssociation("manager/ns:fk2/text()", "id/ns:id2/text()");
managerMapping.setReferenceClass(Employee.class);
descriptor.addMapping(managerMapping);
XMLCollectionReferenceMapping employeesMapping = new XMLCollectionReferenceMapping();
employeesMapping.setAttributeName("teamMembers");
employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/fk1/text()", "id/id1/text()");
employeesMapping.addSourceToTargetKeyFieldAssociation("team-member/ns:fk2/text()", "id/ns:id2/text()");
employeesMapping.setReferenceClass(Employee.class);
descriptor.addMapping(employeesMapping);
return descriptor;
}
use of org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping in project eclipselink by eclipse-ee4j.
the class DynamicTestProject method addEmployeeDescriptor.
private void addEmployeeDescriptor() {
XMLDescriptor descriptor = new XMLDescriptor();
descriptor.setJavaClassName("org.eclipse.persistence.testing.oxm.dynamic.XEmployee");
XMLDirectMapping name = new XMLDirectMapping();
name.setAttributeName("name");
name.setXPath("name/text()");
descriptor.addMapping(name);
XMLCompositeObjectMapping addr = new XMLCompositeObjectMapping();
addr.setAttributeName("address");
addr.setXPath("address");
addr.setReferenceClassName("org.eclipse.persistence.testing.oxm.dynamic.XAddress");
descriptor.addMapping(addr);
XMLCompositeCollectionMapping phone = new XMLCompositeCollectionMapping();
phone.setAttributeName("phoneNumbers");
phone.setXPath("phone-numbers/number");
phone.setReferenceClassName("org.eclipse.persistence.testing.oxm.dynamic.XPhoneNumber");
phone.useCollectionClass(ArrayList.class);
phone.setContainerPolicy(ContainerPolicy.buildPolicyFor(ArrayList.class));
descriptor.addMapping(phone);
XMLCollectionReferenceMapping emails = new XMLCollectionReferenceMapping();
emails.setAttributeName("emails");
emails.setReferenceClassName("org.eclipse.persistence.testing.oxm.dynamic.XEmail");
emails.addSourceToTargetKeyFieldAssociation("email-id/text()", "@id");
descriptor.addMapping(emails);
XMLObjectReferenceMapping secCred = new XMLObjectReferenceMapping();
secCred.setAttributeName("securityCredential");
secCred.setReferenceClassName("org.eclipse.persistence.testing.oxm.dynamic.XSecurityCredential");
secCred.addSourceToTargetKeyFieldAssociation("sec-cred-id/text()", "@id");
descriptor.addMapping(secCred);
this.addDescriptor(descriptor);
}
use of org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping in project eclipselink by eclipse-ee4j.
the class CompositeAttributeKeysProject method getEmployeeDescriptor.
private XMLDescriptor getEmployeeDescriptor() {
XMLDescriptor descriptor = new XMLDescriptor();
descriptor.setJavaClass(Employee.class);
descriptor.setDefaultRootElement("employee");
// create id mapping
XMLDirectMapping idMapping = new XMLDirectMapping();
idMapping.setAttributeName("id");
idMapping.setXPath("@id");
descriptor.addMapping(idMapping);
// create name mapping
XMLDirectMapping nameMapping = new XMLDirectMapping();
nameMapping.setAttributeName("name");
nameMapping.setXPath("name/text()");
descriptor.addMapping(nameMapping);
// create address mapping
XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
addressMapping.useCollectionClass(ArrayList.class);
addressMapping.setAttributeName("addresses");
addressMapping.setReferenceClass(Address.class);
addressMapping.addSourceToTargetKeyFieldAssociation("address/@id-city", "city/text()");
addressMapping.addSourceToTargetKeyFieldAssociation("address/@id-zip", "zip/text()");
descriptor.addMapping(addressMapping);
return descriptor;
}
use of org.eclipse.persistence.oxm.mappings.XMLCollectionReferenceMapping in project eclipselink by eclipse-ee4j.
the class CompositeElementKeyNSProject method getEmployeeDescriptor.
private XMLDescriptor getEmployeeDescriptor() {
XMLDescriptor descriptor = new XMLDescriptor();
descriptor.setJavaClass(Employee.class);
descriptor.setDefaultRootElement("ns:employee");
// create namespace resolver
NamespaceResolver nsResolver = new NamespaceResolver();
nsResolver.put("ns", "urn:example");
descriptor.setNamespaceResolver(nsResolver);
// create id mapping
XMLDirectMapping idMapping = new XMLDirectMapping();
idMapping.setAttributeName("id");
idMapping.setXPath("@id");
descriptor.addMapping(idMapping);
// create name mapping
XMLDirectMapping nameMapping = new XMLDirectMapping();
nameMapping.setAttributeName("name");
nameMapping.setXPath("ns:name/text()");
descriptor.addMapping(nameMapping);
// create address mapping
XMLCollectionReferenceMapping addressMapping = new XMLCollectionReferenceMapping();
addressMapping.useCollectionClass(ArrayList.class);
addressMapping.setAttributeName("addresses");
addressMapping.setReferenceClass(Address.class);
addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-city/text()", "ns:city/text()");
addressMapping.addSourceToTargetKeyFieldAssociation("ns:address/ns:id-zip/text()", "ns:zip/text()");
descriptor.addMapping(addressMapping);
return descriptor;
}
Aggregations