protected Hashtable removeDuplicateAndValidateInfos(AbstractSession session) { Hashtable infoHashtable = new Hashtable(); for (int i = 0; i < infos.size(); i++) { Info info1 = infos.get(i); info1 = (Info)info1.clone(); DatabaseField descField = getDescriptor().buildField(info1.getField()); if(info1.getField().getType() == null) { info1.setField(descField); } else { // keep the original type if specified info1.getField().setName(descField.getName()); info1.getField().setTableName(getDescriptor().getDefaultTable().getQualifiedNameDelimited(session.getPlatform())); } Info info2 = (Info)infoHashtable.get(info1.getField()); if (info2 == null) { infoHashtable.put(info1.getField(), info1); } else { Info infoMerged = mergeInfos(info1, info2, session, getDescriptor()); if (infoMerged != null) { // substitute info2 with infoMerged infoHashtable.put(infoMerged.getField(), infoMerged); } else { // couldn't merge info1 and info2 due to a conflict. // substitute info2 with info1 infoHashtable.put(info1.getField(), info1); } } } return infoHashtable; }
protected Hashtable removeDuplicateAndValidateInfos(AbstractSession session) { Hashtable infoHashtable = new Hashtable(); for (int i = 0; i < infos.size(); i++) { Info info1 = (Info)infos.elementAt(i); info1 = (Info)info1.clone(); DatabaseField descField = getDescriptor().buildField(info1.getField()); if(info1.getField().getType() == null) { info1.setField(descField); } else { // keep the original type if specified info1.getField().setName(descField.getName()); info1.getField().setTableName(getDescriptor().getDefaultTable().getQualifiedNameDelimited(session.getPlatform())); } Info info2 = (Info)infoHashtable.get(info1.getField()); if (info2 == null) { infoHashtable.put(info1.getField(), info1); } else { Info infoMerged = mergeInfos(info1, info2, session, getDescriptor()); if (infoMerged != null) { // substitute info2 with infoMerged infoHashtable.put(infoMerged.getField(), infoMerged); } else { // couldn't merge info1 and info2 due to a conflict. // substitute info2 with info1 infoHashtable.put(info1.getField(), info1); } } } return infoHashtable; }
protected Hashtable removeDuplicateAndValidateInfos(AbstractSession session) { Hashtable infoHashtable = new Hashtable(); for (int i = 0; i < infos.size(); i++) { Info info1 = infos.get(i); info1 = (Info)info1.clone(); DatabaseField descField = getDescriptor().buildField(info1.getField()); if(info1.getField().getType() == null) { info1.setField(descField); } else { // keep the original type if specified info1.getField().setName(descField.getName()); info1.getField().setTableName(getDescriptor().getDefaultTable().getQualifiedNameDelimited(session.getPlatform())); } Info info2 = (Info)infoHashtable.get(info1.getField()); if (info2 == null) { infoHashtable.put(info1.getField(), info1); } else { Info infoMerged = mergeInfos(info1, info2, session, getDescriptor()); if (infoMerged != null) { // substitute info2 with infoMerged infoHashtable.put(infoMerged.getField(), infoMerged); } else { // couldn't merge info1 and info2 due to a conflict. // substitute info2 with info1 infoHashtable.put(info1.getField(), info1); } } } return infoHashtable; }
boolean ok = true; DatabaseField fieldMerged = info1.getField(); if (info2.getField().getType() != null) { if (info1.getField().getType() == null) { fieldMerged = info2.field; } else if (!info1.getField().getType().equals(info2.getField().getType())) { session.getIntegrityChecker().handleError(DescriptorException.returningPolicyFieldTypeConflict(info1.getField().getName(), info1.getField().getType().getName(), info2.getField().getType().getName(), descriptor)); ok = false; isInsertModeReturnOnlyMerged = info1.isInsertModeReturnOnly(); if (info1.isInsertModeReturnOnly() != info2.isInsertModeReturnOnly()) { session.getIntegrityChecker().handleError(DescriptorException.returningPolicyFieldInsertConflict(info1.getField().getName(), descriptor)); ok = false;
boolean ok = true; DatabaseField fieldMerged = info1.getField(); if (info2.getField().getType() != null) { if (info1.getField().getType() == null) { fieldMerged = info2.field; } else if (!info1.getField().getType().equals(info2.getField().getType())) { session.getIntegrityChecker().handleError(DescriptorException.returningPolicyFieldTypeConflict(info1.getField().getName(), info1.getField().getType().getName(), info2.getField().getType().getName(), descriptor)); ok = false; isInsertModeReturnOnlyMerged = info1.isInsertModeReturnOnly(); if (info1.isInsertModeReturnOnly() != info2.isInsertModeReturnOnly()) { session.getIntegrityChecker().handleError(DescriptorException.returningPolicyFieldInsertConflict(info1.getField().getName(), descriptor)); ok = false;
boolean ok = true; DatabaseField fieldMerged = info1.getField(); if (info2.getField().getType() != null) { if (info1.getField().getType() == null) { fieldMerged = info2.field; } else if (!info1.getField().getType().equals(info2.getField().getType())) { session.getIntegrityChecker().handleError(DescriptorException.returningPolicyFieldTypeConflict(info1.getField().getName(), info1.getField().getType().getName(), info2.getField().getType().getName(), descriptor)); ok = false; isInsertModeReturnOnlyMerged = info1.isInsertModeReturnOnly(); if (info1.isInsertModeReturnOnly() != info2.isInsertModeReturnOnly()) { session.getIntegrityChecker().handleError(DescriptorException.returningPolicyFieldInsertConflict(info1.getField().getName(), descriptor)); ok = false;
for (Enumeration enumtr = policy.getFieldInfos().elements(); enumtr.hasMoreElements();) { ReturningPolicy.Info info = (ReturningPolicy.Info)enumtr.nextElement(); String qualifiedFieldName = info.getField().getQualifiedName(); String type = null; if (info.getField().getType() != null) { type = info.getField().getType().getName() + ".class";
boolean equals(Info infoToCompare) { if (this == infoToCompare) { return true; } if (!getField().equals(infoToCompare.getField())) { return false; } if ((getField().getType() == null) && (infoToCompare.getField().getType() != null)) { return false; } if ((getField().getType() != null) && !getField().getType().equals(infoToCompare.getField().getType())) { return false; } if (isInsert() != infoToCompare.isInsert()) { return false; } if (isInsertModeReturnOnly() != infoToCompare.isInsertModeReturnOnly()) { return false; } if (isUpdate() != infoToCompare.isUpdate()) { return false; } return true; } }
boolean equals(Info infoToCompare) { if (this == infoToCompare) { return true; } if (!getField().equals(infoToCompare.getField())) { return false; } if ((getField().getType() == null) && (infoToCompare.getField().getType() != null)) { return false; } if ((getField().getType() != null) && !getField().getType().equals(infoToCompare.getField().getType())) { return false; } if (isInsert() != infoToCompare.isInsert()) { return false; } if (isInsertModeReturnOnly() != infoToCompare.isInsertModeReturnOnly()) { return false; } if (isUpdate() != infoToCompare.isUpdate()) { return false; } return true; } }
boolean equals(Info infoToCompare) { if (this == infoToCompare) { return true; } if (!getField().equals(infoToCompare.getField())) { return false; } if ((getField().getType() == null) && (infoToCompare.getField().getType() != null)) { return false; } if ((getField().getType() != null) && !getField().getType().equals(infoToCompare.getField().getType())) { return false; } if (isInsert() != infoToCompare.isInsert()) { return false; } if (isInsertModeReturnOnly() != infoToCompare.isInsertModeReturnOnly()) { return false; } if (isUpdate() != infoToCompare.isUpdate()) { return false; } return true; }
@Override public int hashCode() { DatabaseField field = getField(); Class type = field != null ? field.getType() : null; boolean isInsert = isInsert(); boolean isInsertModeReturnOnly = isInsertModeReturnOnly(); boolean isUpdate = isUpdate(); int result = field != null ? field.hashCode() : 0; result = 31 * result + (type != null ? type.hashCode() : 0); result = 31 * result + (isInsert ? 1 : 0); result = 31 * result + (isInsertModeReturnOnly ? 1 : 0); result = 31 * result + (isUpdate ? 1 : 0); return result; } }