protected void initializeSourceForeignKeysToTargetKeys() throws DescriptorException { // Since we require a custom selection query, these keys are optional. if (getSourceForeignKeyFields().size() != getTargetForeignKeyFields().size()) { throw DescriptorException.sizeMismatchOfForeignKeys(this); } for (int i = 0; i < getTargetForeignKeyFields().size(); i++) { DatabaseField field = getReferenceDescriptor().buildField(getTargetForeignKeyFields().get(i)); getTargetForeignKeyFields().set(i, field); } for (int i = 0; i < getSourceForeignKeyFields().size(); i++) { DatabaseField field = getDescriptor().buildField(getSourceForeignKeyFields().get(i)); getSourceForeignKeyFields().set(i, field); getSourceForeignKeysToTargetKeys().put(field, getTargetForeignKeyFields().get(i)); } }
protected void initializeSourceForeignKeysToTargetKeys() throws DescriptorException { // Since we require a custom selection query, these keys are optional. if (getSourceForeignKeyFields().size() != getTargetForeignKeyFields().size()) { throw DescriptorException.sizeMismatchOfForeignKeys(this); } for (int i = 0; i < getTargetForeignKeyFields().size(); i++) { DatabaseField field = getReferenceDescriptor().buildField(getTargetForeignKeyFields().get(i)); getTargetForeignKeyFields().set(i, field); } for (int i = 0; i < getSourceForeignKeyFields().size(); i++) { DatabaseField field = getDescriptor().buildField(getSourceForeignKeyFields().get(i)); getSourceForeignKeyFields().set(i, field); getSourceForeignKeysToTargetKeys().put(field, getTargetForeignKeyFields().get(i)); } }
/** * Build and return a database row that contains a foreign key for the specified reference * object. This will be stored in the nested row(s). */ protected AbstractRecord extractKeyRowFromReferenceObject(Object object, AbstractSession session, AbstractRecord parentRecord) { int size = this.sourceForeignKeyFields.size(); AbstractRecord result; if (((EISDescriptor) this.getDescriptor()).isXMLFormat()) { Element newNode = XPathEngine.getInstance().createUnownedElement(((XMLRecord)parentRecord).getDOM(), (XMLField)getForeignKeyGroupingElement()); result = new DOMRecord(newNode); ((DOMRecord)result).setSession(session); } else { result = this.descriptor.getObjectBuilder().createRecord(size, session); } for (int index = 0; index < size; index++) { DatabaseField fkField = this.sourceForeignKeyFields.get(index); if (object == null) { result.add(fkField, null); } else { DatabaseField pkField = this.sourceForeignKeysToTargetKeys.get(fkField); Object value = this.referenceDescriptor.getObjectBuilder().extractValueFromObjectForField(object, pkField, session); result.add(fkField, value); } } return result; }
/** * Build and return a database row that contains a foreign key for the specified reference * object. This will be stored in the nested row(s). */ protected AbstractRecord extractKeyRowFromReferenceObject(Object object, AbstractSession session, AbstractRecord parentRecord) { int size = this.sourceForeignKeyFields.size(); AbstractRecord result; if (((EISDescriptor) this.getDescriptor()).isXMLFormat()) { Element newNode = XPathEngine.getInstance().createUnownedElement(((XMLRecord)parentRecord).getDOM(), (XMLField)getForeignKeyGroupingElement()); result = new DOMRecord(newNode); ((DOMRecord)result).setSession(session); } else { result = this.descriptor.getObjectBuilder().createRecord(size, session); } for (int index = 0; index < size; index++) { DatabaseField fkField = this.sourceForeignKeyFields.get(index); if (object == null) { result.add(fkField, null); } else { DatabaseField pkField = this.sourceForeignKeysToTargetKeys.get(fkField); Object value = this.referenceDescriptor.getObjectBuilder().extractValueFromObjectForField(object, pkField, session); result.add(fkField, value); } } return result; }
/** * INTERNAL: * Initialize the mapping. */ public void initialize(AbstractSession session) throws DescriptorException { super.initialize(session); if (!this.hasCustomSelectionQuery()) { throw DescriptorException.operationNotSupported("customSelectionQueryRequired"); } if ((this.getForeignKeyGroupingElement() == null) && (this.getSourceForeignKeysToTargetKeys().size() > 1)) { throw EISException.groupingElementRequired(); } if (this.getForeignKeyGroupingElement() != null) { DatabaseField field = this.getDescriptor().buildField(this.getForeignKeyGroupingElement()); setForeignKeyGroupingElement((XMLField)field); } this.initializeSourceForeignKeysToTargetKeys(); this.initializeDeleteAllQuery(); }
/** * INTERNAL: * Initialize the mapping. */ @Override public void initialize(AbstractSession session) throws DescriptorException { super.initialize(session); if ((this.getForeignKeyGroupingElement() == null) && (this.getSourceForeignKeysToTargetKeys().size() > 1)) { throw EISException.groupingElementRequired(); } if (this.getForeignKeyGroupingElement() != null) { DatabaseField field = this.getDescriptor().buildField(this.getForeignKeyGroupingElement()); setForeignKeyGroupingElement(field); } this.initializeSourceForeignKeysToTargetKeys(); if (shouldInitializeSelectionCriteria()) { initializeSelectionCriteria(session); } this.initializeDeleteAllQuery(); }
/** * INTERNAL: * Initialize the mapping. */ @Override public void initialize(AbstractSession session) throws DescriptorException { super.initialize(session); if ((this.getForeignKeyGroupingElement() == null) && (this.getSourceForeignKeysToTargetKeys().size() > 1)) { throw EISException.groupingElementRequired(); } if (this.getForeignKeyGroupingElement() != null) { DatabaseField field = this.getDescriptor().buildField(this.getForeignKeyGroupingElement()); setForeignKeyGroupingElement(field); } this.initializeSourceForeignKeysToTargetKeys(); if (shouldInitializeSelectionCriteria()) { initializeSelectionCriteria(session); } this.initializeDeleteAllQuery(); }
if (((EISDescriptor) this.getDescriptor()).getDataFormat() == EISDescriptor.XML) { ((XMLRecord) row).setSession(executionSession);
if (((EISDescriptor) this.getDescriptor()).isXMLFormat()) { ((XMLRecord) row).setSession(executionSession);
if (((EISDescriptor) this.getDescriptor()).isXMLFormat()) { ((XMLRecord) row).setSession(executionSession);