diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalNonAuditClassMapping.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalNonAuditClassMapping.java | 94 |
1 files changed, 13 insertions, 81 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalNonAuditClassMapping.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalNonAuditClassMapping.java index 23c7e359ea..c6548b4d6b 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalNonAuditClassMapping.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/HorizontalNonAuditClassMapping.java @@ -43,6 +43,7 @@ import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionDelta; import org.eclipse.net4j.db.DBException; import org.eclipse.net4j.db.DBUtil; +import org.eclipse.net4j.db.ddl.IDBField; import org.eclipse.net4j.util.ImplementationError; import org.eclipse.net4j.util.collection.Pair; import org.eclipse.net4j.util.om.monitor.OMMonitor; @@ -89,21 +90,16 @@ public class HorizontalNonAuditClassMapping extends AbstractHorizontalClassMappi } }; - public HorizontalNonAuditClassMapping(AbstractHorizontalMappingStrategy mappingStrategy, EClass eClass, boolean create) + public HorizontalNonAuditClassMapping(AbstractHorizontalMappingStrategy mappingStrategy, EClass eClass) { - super(mappingStrategy, eClass, create); - + super(mappingStrategy, eClass); initSQLStrings(); } private void initSQLStrings() { - Map<EStructuralFeature, String> unsettableFields = getUnsettableFields(); - Map<EStructuralFeature, String> listSizeFields = getListSizeFields(); - // ----------- Select Revision --------------------------- StringBuilder builder = new StringBuilder(); - builder.append("SELECT "); //$NON-NLS-1$ builder.append(ATTRIBUTES_VERSION); builder.append(", "); //$NON-NLS-1$ @@ -116,44 +112,20 @@ public class HorizontalNonAuditClassMapping extends AbstractHorizontalClassMappi builder.append(ATTRIBUTES_CONTAINER); builder.append(", "); //$NON-NLS-1$ builder.append(ATTRIBUTES_FEATURE); - - for (ITypeMapping singleMapping : getValueMappings()) - { - builder.append(", "); //$NON-NLS-1$ - builder.append(singleMapping.getField()); - } - - if (unsettableFields != null) - { - for (String fieldName : unsettableFields.values()) - { - builder.append(", "); //$NON-NLS-1$ - builder.append(fieldName); - } - } - - if (listSizeFields != null) - { - for (String fieldName : listSizeFields.values()) - { - builder.append(", "); //$NON-NLS-1$ - builder.append(fieldName); - } - } - + appendTypeMappingNames(builder, getValueMappings()); + appendFieldNames(builder, getUnsettableFields()); + appendFieldNames(builder, getListSizeFields()); builder.append(" FROM "); //$NON-NLS-1$ builder.append(getTable()); builder.append(" WHERE "); //$NON-NLS-1$ builder.append(ATTRIBUTES_ID); builder.append("=?"); //$NON-NLS-1$ - sqlSelectCurrentAttributes = builder.toString(); // ----------- Insert Attributes ------------------------- builder = new StringBuilder(); builder.append("INSERT INTO "); //$NON-NLS-1$ builder.append(getTable()); - builder.append("("); //$NON-NLS-1$ builder.append(ATTRIBUTES_ID); builder.append(", "); //$NON-NLS-1$ @@ -168,53 +140,13 @@ public class HorizontalNonAuditClassMapping extends AbstractHorizontalClassMappi builder.append(ATTRIBUTES_CONTAINER); builder.append(", "); //$NON-NLS-1$ builder.append(ATTRIBUTES_FEATURE); - - for (ITypeMapping singleMapping : getValueMappings()) - { - builder.append(", "); //$NON-NLS-1$ - builder.append(singleMapping.getField()); - } - - if (unsettableFields != null) - { - for (String fieldName : unsettableFields.values()) - { - builder.append(", "); //$NON-NLS-1$ - builder.append(fieldName); - } - } - - if (listSizeFields != null) - { - for (String fieldName : listSizeFields.values()) - { - builder.append(", "); //$NON-NLS-1$ - builder.append(fieldName); - } - } - + appendTypeMappingNames(builder, getValueMappings()); + appendFieldNames(builder, getUnsettableFields()); + appendFieldNames(builder, getListSizeFields()); builder.append(") VALUES (?, ?, ?, ?, ?, ?, ?"); //$NON-NLS-1$ - for (int i = 0; i < getValueMappings().size(); i++) - { - builder.append(", ?"); //$NON-NLS-1$ - } - - if (unsettableFields != null) - { - for (int i = 0; i < unsettableFields.size(); i++) - { - builder.append(", ?"); //$NON-NLS-1$ - } - } - - if (listSizeFields != null) - { - for (int i = 0; i < listSizeFields.size(); i++) - { - builder.append(", ?"); //$NON-NLS-1$ - } - } - + appendTypeMappingParameters(builder, getValueMappings()); + appendFieldParameters(builder, getUnsettableFields()); + appendFieldParameters(builder, getListSizeFields()); builder.append(")"); //$NON-NLS-1$ sqlInsertAttributes = builder.toString(); @@ -298,7 +230,7 @@ public class HorizontalNonAuditClassMapping extends AbstractHorizontalClassMappi mapping.setValueFromRevision(stmt, column++, revision); } - Map<EStructuralFeature, String> listSizeFields = getListSizeFields(); + Map<EStructuralFeature, IDBField> listSizeFields = getListSizeFields(); if (listSizeFields != null) { // isSetCol now points to the first listTableSize-column |