public int compare( OrmSpecifiedPersistentAttribute attribute1, OrmSpecifiedPersistentAttribute attribute2) { int seq1 = attribute1.getMapping().getXmlSequence(); int seq2 = attribute2.getMapping().getXmlSequence(); return (seq1 == seq2) ? 0 : (seq1 < seq2) ? -1 : 1; }
public void testModifyPrivateOwned() throws Exception { createTestTypeWithOneToOneAttribute(); OrmPersistentType ormPersistentType = getEntityMappings() .addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME); OrmSpecifiedPersistentAttribute ormPersistentAttribute = ormPersistentType.addAttributeToXml( ormPersistentType.getAttributeNamed("oneToOne"), MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY); EclipseLinkOneToOneMapping contextOneToOne = (EclipseLinkOneToOneMapping) ormPersistentAttribute.getMapping(); XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0); XmlOneToOne resourceOneToOne = (XmlOneToOne) resourceEntity.getAttributes().getOneToOnes().get(0); // check defaults assertFalse(resourceOneToOne.isPrivateOwned()); assertFalse(contextOneToOne.getPrivateOwned().isPrivateOwned()); // set context private owned to true, check resource contextOneToOne.getPrivateOwned().setPrivateOwned(true); assertTrue(resourceOneToOne.isPrivateOwned()); assertTrue(contextOneToOne.getPrivateOwned().isPrivateOwned()); // set context private owned back to false, check resource contextOneToOne.getPrivateOwned().setPrivateOwned(false); }
public void testModifyConverter() throws Exception { createTestEntityWithBasicMapping(); OrmPersistentType ormPersistentType = getEntityMappings() .addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME); OrmSpecifiedPersistentAttribute ormPersistentAttribute = ormPersistentType.addAttributeToXml( ormPersistentType.getAttributeNamed("id"), MappingKeys.BASIC_ATTRIBUTE_MAPPING_KEY); EclipseLinkOrmBasicMapping ormBasicMapping = (EclipseLinkOrmBasicMapping) ormPersistentAttribute.getMapping(); EclipseLinkStructConverter ormConverter = ormBasicMapping.getConverterContainer().addStructConverter("structConverter", 0); XmlStructConverter converterResource = ((XmlBasic) getXmlEntityMappings().getEntities().get(0).getAttributes().getBasics().get(0)) .getStructConverters() .get(0); assertEquals(null, ormConverter.getConverterClass()); assertEquals(null, converterResource.getConverter()); // set converter class in the context model, verify resource model updated ormConverter.setConverterClass("foo"); assertEquals("foo", ormConverter.getConverterClass()); assertEquals("foo", converterResource.getConverter()); ormConverter.setConverterClass(null); assertEquals(null, ormConverter.getConverterClass()); assertEquals(null, converterResource.getConverter()); }
/** * <em>Silently</em> remove the default attribute and add specified attribute before triggering an * <em>update</em> or the dangling default attribute will be removed preemptively. */ protected OrmSpecifiedPersistentAttribute convertAttributeToSpecified_( OrmPersistentAttribute defaultAttribute, String mappingKey) { // silently remove the default attribute int defaultIndex = this.defaultAttributes.indexOf(defaultAttribute); this.defaultAttributes.remove(defaultIndex); defaultAttribute.dispose(); // silently add the specified attribute OrmAttributeMappingDefinition md = this.getMappingFileDefinition().getAttributeMappingDefinition(mappingKey); XmlAttributeMapping xmlMapping = md.buildResourceMapping(this.getResourceModelFactory()); OrmSpecifiedPersistentAttribute specifiedAttribute = this.buildSpecifiedAttribute(xmlMapping); // we need to add the attribute to the right spot in the list - stupid spec... int specifiedIndex = this.getSpecifiedAttributeInsertionIndex(specifiedAttribute); this.specifiedAttributes.add(specifiedIndex, specifiedAttribute); // this will trigger the initial update; // no changes to either collection (default or specified) should be detected at this point specifiedAttribute.getMapping().setName(defaultAttribute.getName()); // fire the list change events this.fireItemRemoved(DEFAULT_ATTRIBUTES_LIST, defaultIndex, defaultAttribute); this.fireItemAdded(SPECIFIED_ATTRIBUTES_LIST, specifiedIndex, specifiedAttribute); // it should be safe to update the XML now Attributes xmlAttributes = this.getXmlAttributesForUpdate(); specifiedAttribute.getMapping().addXmlAttributeMappingTo(xmlAttributes); // possibly a NOP, but needed when we trigger the creation of a new 'attributes' this.getXmlTypeMapping().setAttributes(xmlAttributes); // copy over the specified access(?) AccessType oldAccess = defaultAttribute.getJavaPersistentAttribute().getSpecifiedAccess(); if (oldAccess != null) { specifiedAttribute.setSpecifiedAccess(oldAccess); } return specifiedAttribute; }
public void testModifyJoinFetch() throws Exception { createTestTypeWithOneToOneAttribute(); OrmPersistentType ormPersistentType = getEntityMappings() .addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME); OrmSpecifiedPersistentAttribute ormPersistentAttribute = ormPersistentType.addAttributeToXml( ormPersistentType.getAttributeNamed("oneToOne"), MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY); EclipseLinkOneToOneMapping contextOneToOne = (EclipseLinkOneToOneMapping) ormPersistentAttribute.getMapping(); XmlEntity resourceEntity = (XmlEntity) getXmlEntityMappings().getEntities().get(0); XmlOneToOne resourceOneToOne = (XmlOneToOne) resourceEntity.getAttributes().getOneToOnes().get(0); // check defaults assertNull(resourceOneToOne.getJoinFetch()); assertNull(contextOneToOne.getJoinFetch().getValue()); // set context join fetch to INNER, check resource contextOneToOne.getJoinFetch().setValue(EclipseLinkJoinFetchType.INNER); assertEquals(XmlJoinFetchType.INNER, resourceOneToOne.getJoinFetch()); assertEquals(EclipseLinkJoinFetchType.INNER, contextOneToOne.getJoinFetch().getValue()); // set context join fetch to OUTER, check resource contextOneToOne.getJoinFetch().setValue(EclipseLinkJoinFetchType.OUTER); assertEquals(XmlJoinFetchType.OUTER, resourceOneToOne.getJoinFetch()); assertEquals(EclipseLinkJoinFetchType.OUTER, contextOneToOne.getJoinFetch().getValue()); // set context join fetch to null, check resource contextOneToOne.getJoinFetch().setValue(null); assertNull(resourceOneToOne.getJoinFetch()); assertNull(contextOneToOne.getJoinFetch().getValue()); }
public void testSpecifiedMapping() throws Exception { createTestEntityOneToOneMapping(); createTestTargetEntityAddress(); OrmPersistentType ormPersistentType = getEntityMappings() .addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME); getEntityMappings() .addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, PACKAGE_NAME + ".Address"); ormPersistentType.addAttributeToXml( ormPersistentType.getAttributeNamed("address"), MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY); assertEquals(2, ormPersistentType.getDefaultAttributesSize()); OrmSpecifiedPersistentAttribute ormPersistentAttribute = ormPersistentType.getSpecifiedAttributes().iterator().next(); EclipseLinkOrmOneToOneMapping ormOneToOneMapping = (EclipseLinkOrmOneToOneMapping) ormPersistentAttribute.getMapping(); assertEquals("address", ormOneToOneMapping.getName()); assertNull(ormOneToOneMapping.getSpecifiedFetch()); assertNull(ormOneToOneMapping.getSpecifiedOptional()); assertNull(ormOneToOneMapping.getSpecifiedTargetEntity()); assertNull(ormOneToOneMapping.getRelationship().getMappedByStrategy().getMappedByAttribute()); assertEquals(FetchType.EAGER, ormOneToOneMapping.getFetch()); assertEquals(true, ormOneToOneMapping.isOptional()); // TODO default target entity in xml // assertEquals("test.Address", ormOneToOneMapping.getDefaultTargetEntity()); assertTrue( ormOneToOneMapping.getRelationship().getJoinColumnStrategy().getJoinColumnsSize() > 0); // TODO default join columns for specified xmlOneToOne mapping // XmlJoinColumn ormJoinColumn = ormOneToOneMapping.defaultJoinColumns().next(); // assertNull(ormJoinColumn.getSpecifiedName()); // assertNull(ormJoinColumn.getSpecifiedReferencedColumnName()); // assertNull(ormJoinColumn.getSpecifiedUnique()); // assertNull(ormJoinColumn.getSpecifiedNullable()); // assertNull(ormJoinColumn.getSpecifiedInsertable()); // assertNull(ormJoinColumn.getSpecifiedUpdatable()); // assertNull(ormJoinColumn.getColumnDefinition()); // assertNull(ormJoinColumn.getSpecifiedTable()); // // assertEquals("address", ormJoinColumn.getDefaultName()); // assertEquals("address", ormJoinColumn.getDefaultReferencedColumnName()); // assertEquals(Boolean.FALSE, ormJoinColumn.getDefaultUnique()); // assertEquals(Boolean.TRUE, ormJoinColumn.getDefaultNullable()); // assertEquals(Boolean.TRUE, ormJoinColumn.getDefaultInsertable()); // assertEquals(Boolean.TRUE, ormJoinColumn.getDefaultUpdatable()); // assertEquals(null, ormJoinColumn.getColumnDefinition()); // assertEquals(TYPE_NAME, ormJoinColumn.getDefaultTable()); Cascade cascade = ormOneToOneMapping.getCascade(); assertFalse(cascade.isAll()); assertFalse(cascade.isMerge()); assertFalse(cascade.isPersist()); assertFalse(cascade.isRemove()); assertFalse(cascade.isRefresh()); assertEquals(null, ormOneToOneMapping.getJoinFetch().getValue()); assertFalse(ormOneToOneMapping.getPrivateOwned().isPrivateOwned()); }
public XmlAttributeMapping getResourceElement(OrmSpecifiedPersistentAttribute contextElement) { return contextElement.getMapping().getXmlAttributeMapping(); }
protected void removeSpecifiedAttribute(OrmSpecifiedPersistentAttribute attribute) { this.removeSpecifiedAttribute_(attribute); attribute.getMapping().removeXmlAttributeMappingFrom(this.getXmlAttributes()); this.removeXmlAttributesIfUnset(); }