protected SequenceMetaData newSequenceMetaData(String name) { return new SequenceMapping(name, this); }
@Override protected void addStandardProperties(StringBuilder props) { super.addStandardProperties(props); // Quotes are conditionally added to the following because the props // are eventually passed to the Configurations.parseProperties() // method, which strips off quotes. This is a problem when these // properties are intentionally delimited with quotes. So, an extra // set preserves the intended ones. While this is an ugly solution, // it's less ugly than other ones. appendProperty(props, PROP_TABLE, addQuotes(_table.getName())); appendProperty(props, PROP_SEQUENCE_COL, addQuotes(_sequenceColumn.getName())); appendProperty(props, PROP_PK_COL, addQuotes(_primaryKeyColumn.getName())); appendProperty(props, PROP_PK_VALUE, addQuotes(_primaryKeyValue)); // Array of unique column names are passed to configuration // as a single string "x|y|z". The configurable (TableJDBCSeq) must // parse it back. if (!DBIdentifier.isNull(_uniqueConstraintName) && _uniqueConstraintName.getName().length() > 0) { appendProperty(props, PROP_UNIQUE_CONSTRAINT, addQuotes(_uniqueConstraintName.getName())); } if (_uniqueColumns != null && _uniqueColumns.length > 0) appendProperty(props, PROP_UNIQUE, StringUtils.join(_uniqueColumns,'|')); }
/** * Name of sequence table, if any. * @deprecated */ public String getTable() { return getTableIdentifier().getName(); }
@Override protected void serializeSequence(SequenceMetaData meta) { if (SequenceMapping.IMPL_VALUE_TABLE.equals(meta.getSequencePlugin())) { super.serializeSequence(meta); return; } AnnotationBuilder abTblGen = addAnnotation(TableGenerator.class, meta); SequenceMapping seq = (SequenceMapping) meta; abTblGen.add("name", seq.getName()); String table = seq.getTable(); if (table != null) { int dotIdx = table.indexOf('.'); if (dotIdx == -1) abTblGen.add("table", table); else { abTblGen.add("table", table.substring(dotIdx + 1)); abTblGen.add("schema", table.substring(0, dotIdx)); } } if (!StringUtils.isEmpty(seq.getPrimaryKeyColumn())) abTblGen.add("pkColumnName", seq.getPrimaryKeyColumn()); if (!StringUtils.isEmpty(seq.getSequenceColumn())) abTblGen.add("valueColumnName", seq.getSequenceColumn()); if (!StringUtils.isEmpty(seq.getPrimaryKeyValue())) abTblGen.add("pkColumnValue", seq.getPrimaryKeyValue()); if (seq.getAllocate() != 50 && seq.getAllocate() != -1) abTblGen.add("allocationSize", seq.getAllocate() + ""); if (seq.getInitialValue() != 0 && seq.getInitialValue() != -1) abTblGen.add("initialValue", seq.getInitialValue() + ""); }
meta.setSequencePlugin(SequenceMapping.IMPL_VALUE_TABLE); meta.setTableIdentifier(toTableIdentifier(gen.schema(), gen.table())); meta.setPrimaryKeyColumnIdentifier(DBIdentifier.newColumn(gen.pkColumnName(), delimit())); meta.setSequenceColumnIdentifier(DBIdentifier.newColumn(gen.valueColumnName(),delimit())); meta.setPrimaryKeyValue(gen.pkColumnValue()); meta.setInitialValue(gen.initialValue()); meta.setAllocate(gen.allocationSize()); meta.setSource(getSourceFile(), (el instanceof Class) ? el : null, meta.SRC_ANNOTATIONS); break; // nothing to do case 1: meta.setUniqueColumnsIdentifier(DBIdentifier.toArray(gen.uniqueConstraints()[0].columnNames(), DBIdentifierType.COLUMN, delimit())); meta.setUniqueConstraintIdentifier(DBIdentifier.newConstraint(gen.uniqueConstraints()[0].name(), delimit())); break;
seq.setSequencePlugin(SequenceMapping.IMPL_VALUE_TABLE); seq.setTableIdentifier(toTableIdentifier(attrs.getValue("schema"), attrs.getValue("table"))); seq.setPrimaryKeyColumnIdentifier(DBIdentifier.newColumn(attrs.getValue("pk-column-name"), delimit())); seq.setSequenceColumnIdentifier(DBIdentifier.newColumn(attrs.getValue("value-column-name"), delimit())); seq.setPrimaryKeyValue(attrs.getValue("pk-column-value")); String val = attrs.getValue("initial-value"); if (val != null) seq.setInitialValue(Integer.parseInt(val)); val = attrs.getValue("allocation-size"); if (val != null) seq.setAllocate(Integer.parseInt(val)); seq.setSource(getSourceFile(), scope, SourceTracker.SRC_XML); Locator locator = getLocation().getLocator(); if (locator != null) { seq.setLineNumber(locator.getLineNumber()); seq.setColNumber(locator.getColumnNumber());
} else if (ctx instanceof SequenceMapping) { SequenceMapping seq = (SequenceMapping)ctx; unique.setTableIdentifier(seq.getTableIdentifier()); Column[] uniqueColumns = unique.getColumns(); DBIdentifier[] columnNames = new DBIdentifier[uniqueColumns.length]; for (Column uniqueColumn : uniqueColumns) columnNames[i++] = uniqueColumn.getIdentifier().clone(); seq.setUniqueColumnsIdentifier(columnNames); if (!DBIdentifier.isEmpty(unique.getIdentifier())) { seq.setUniqueConstraintIdentifier(unique.getIdentifier());
/** * @deprecated * @param cols */ public void setUniqueColumns(String[] cols) { setUniqueColumnsIdentifier(DBIdentifier.toArray(cols, DBIdentifierType.COLUMN)); }
/** * Name of primary key column, if any. * @deprecated */ public void setPrimaryKeyColumn(String primaryKeyColumn) { setPrimaryKeyColumnIdentifier(DBIdentifier.newColumn(primaryKeyColumn)); }
/** * Name of sequence column, if any. * @deprecated */ public void setSequenceColumn(String sequenceColumn) { setSequenceColumnIdentifier(DBIdentifier.newColumn(sequenceColumn)); }
/** * Name of sequence table, if any. * @deprecated */ public void setTable(String table) { setTableIdentifier(DBIdentifier.newTable(table)); }
protected void addStandardProperties(StringBuffer props) { super.addStandardProperties(props); appendProperty(props, PROP_TABLE, _table); appendProperty(props, PROP_SEQUENCE_COL, _sequenceColumn); appendProperty(props, PROP_PK_COL, _primaryKeyColumn); appendProperty(props, PROP_PK_VALUE, _primaryKeyValue); } }
@Override protected void serializeSequence(SequenceMetaData meta) { if (SequenceMapping.IMPL_VALUE_TABLE.equals(meta.getSequencePlugin())) { super.serializeSequence(meta); return; } AnnotationBuilder abTblGen = addAnnotation(TableGenerator.class, meta); SequenceMapping seq = (SequenceMapping) meta; abTblGen.add("name", seq.getName()); String table = seq.getTable(); if (table != null) { int dotIdx = table.indexOf('.'); if (dotIdx == -1) abTblGen.add("table", table); else { abTblGen.add("table", table.substring(dotIdx + 1)); abTblGen.add("schema", table.substring(0, dotIdx)); } } if (!StringUtils.isEmpty(seq.getPrimaryKeyColumn())) abTblGen.add("pkColumnName", seq.getPrimaryKeyColumn()); if (!StringUtils.isEmpty(seq.getSequenceColumn())) abTblGen.add("valueColumnName", seq.getSequenceColumn()); if (!StringUtils.isEmpty(seq.getPrimaryKeyValue())) abTblGen.add("pkColumnValue", seq.getPrimaryKeyValue()); if (seq.getAllocate() != 50 && seq.getAllocate() != -1) abTblGen.add("allocationSize", seq.getAllocate() + ""); if (seq.getInitialValue() != 0 && seq.getInitialValue() != -1) abTblGen.add("initialValue", seq.getInitialValue() + ""); }
meta.setSequencePlugin(SequenceMapping.IMPL_VALUE_TABLE); meta.setTableIdentifier(toTableIdentifier(gen.schema(), gen.table())); meta.setPrimaryKeyColumnIdentifier(DBIdentifier.newColumn(gen.pkColumnName(), delimit())); meta.setSequenceColumnIdentifier(DBIdentifier.newColumn(gen.valueColumnName(),delimit())); meta.setPrimaryKeyValue(gen.pkColumnValue()); meta.setInitialValue(gen.initialValue()); meta.setAllocate(gen.allocationSize()); meta.setSource(getSourceFile(), (el instanceof Class) ? el : null, meta.SRC_ANNOTATIONS); break; // nothing to do case 1: meta.setUniqueColumnsIdentifier(DBIdentifier.toArray(gen.uniqueConstraints()[0].columnNames(), DBIdentifierType.COLUMN, delimit())); meta.setUniqueConstraintIdentifier(DBIdentifier.newConstraint(gen.uniqueConstraints()[0].name(), delimit())); break;
seq.setSequencePlugin(SequenceMapping.IMPL_VALUE_TABLE); seq.setTableIdentifier(toTableIdentifier(attrs.getValue("schema"), attrs.getValue("table"))); seq.setPrimaryKeyColumnIdentifier(DBIdentifier.newColumn(attrs.getValue("pk-column-name"), delimit())); seq.setSequenceColumnIdentifier(DBIdentifier.newColumn(attrs.getValue("value-column-name"), delimit())); seq.setPrimaryKeyValue(attrs.getValue("pk-column-value")); String val = attrs.getValue("initial-value"); if (val != null) seq.setInitialValue(Integer.parseInt(val)); val = attrs.getValue("allocation-size"); if (val != null) seq.setAllocate(Integer.parseInt(val)); seq.setSource(getSourceFile(), scope, SourceTracker.SRC_XML); Locator locator = getLocation().getLocator(); if (locator != null) { seq.setLineNumber(locator.getLineNumber()); seq.setColNumber(locator.getColumnNumber());
} else if (ctx instanceof SequenceMapping) { SequenceMapping seq = (SequenceMapping)ctx; unique.setTableIdentifier(seq.getTableIdentifier()); Column[] uniqueColumns = unique.getColumns(); DBIdentifier[] columnNames = new DBIdentifier[uniqueColumns.length]; for (Column uniqueColumn : uniqueColumns) columnNames[i++] = uniqueColumn.getIdentifier().clone(); seq.setUniqueColumnsIdentifier(columnNames); if (!DBIdentifier.isEmpty(unique.getIdentifier())) { seq.setUniqueConstraintIdentifier(unique.getIdentifier());
/** * @deprecated * @param cols */ public void setUniqueColumns(String[] cols) { setUniqueColumnsIdentifier(DBIdentifier.toArray(cols, DBIdentifierType.COLUMN)); }
/** * Name of primary key column, if any. * @deprecated */ public void setPrimaryKeyColumn(String primaryKeyColumn) { setPrimaryKeyColumnIdentifier(DBIdentifier.newColumn(primaryKeyColumn)); }
/** * Name of sequence column, if any. * @deprecated */ public void setSequenceColumn(String sequenceColumn) { setSequenceColumnIdentifier(DBIdentifier.newColumn(sequenceColumn)); }
/** * Name of sequence table, if any. * @deprecated */ public void setTable(String table) { setTableIdentifier(DBIdentifier.newTable(table)); }