if (sequenceGenerator != null) {
// WIP
}
} else if (type.equals(MetadataConstants.SEQUENCE) || type.equals(MetadataConstants.IDENTITY)) {
MetadataTableGenerator tableGenerator = m_tableGenerators.get(generatorName);
if (tableGenerator != null) {
// WIP
}
}
}
Sequence defaultAutoSequence = null;
TableSequence defaultTableSequence = new TableSequence(MetadataConstants.DEFAULT_TABLE_GENERATOR);
NativeSequence defaultObjectNativeSequence = new NativeSequence(MetadataConstants.DEFAULT_SEQUENCE_GENERATOR, false);
NativeSequence defaultIdentityNativeSequence = new NativeSequence(MetadataConstants.DEFAULT_IDENTITY_GENERATOR, 1, true);
// Sequences keyed on generator names.
Hashtable<String, Sequence> sequences = new Hashtable<String, Sequence>();
for (MetadataSequenceGenerator sequenceGenerator : m_sequenceGenerators.values()) {
String sequenceGeneratorName = sequenceGenerator.getName();
String seqName = (sequenceGenerator.getSequenceName().equals("")) ? sequenceGeneratorName : sequenceGenerator.getSequenceName();
NativeSequence sequence = new NativeSequence(seqName, sequenceGenerator.getAllocationSize(), false);
sequences.put(sequenceGeneratorName, sequence);
if (sequenceGeneratorName.equals(MetadataConstants.DEFAULT_AUTO_GENERATOR)) {
// SequenceGenerator defined with DEFAULT_AUTO_GENERATOR.
// The sequence it defines will be used as a defaultSequence.
defaultAutoSequence = sequence;
} else if (sequenceGeneratorName.equals(MetadataConstants.DEFAULT_SEQUENCE_GENERATOR)) {
// SequenceGenerator deinfed with DEFAULT_SEQUENCE_GENERATOR.
// All sequences of GeneratorType SEQUENCE
// referencing non-defined generators will use a clone of
// the sequence defined by this generator.
defaultObjectNativeSequence = sequence;
}
}
for (MetadataTableGenerator tableGenerator : m_tableGenerators.values()) {
String tableGeneratorName = tableGenerator.getName();
String seqName = (tableGenerator.getPkColumnValue().equals("")) ? tableGeneratorName : tableGenerator.getPkColumnValue();
TableSequence sequence = new TableSequence(seqName, tableGenerator.getAllocationSize(), tableGenerator.getInitialValue());
sequences.put(tableGeneratorName, sequence);
//bug 2647: pull schema and catalog defaults from the persistence Unit if they are not defined.
String catalogName = tableGenerator.getCatalog();
String schemaName = tableGenerator.getSchema();
if (this.getPersistenceUnit()!=null){
catalogName = catalogName.length()>0? catalogName: this.getPersistenceUnit().getCatalog();
schemaName = schemaName.length()>0? schemaName: this.getPersistenceUnit().getSchema();
}
// Get the database table from the @TableGenerator values.
// In case tableGenerator.table().equals("") default sequence
// table name will be extracted from sequence and used, see
// TableSequence class.
sequence.setTable(new DatabaseTable(MetadataHelper.getFullyQualifiedTableName(tableGenerator.getTable(), sequence.getTableName(), catalogName, schemaName)));
// Process the @UniqueConstraints for this table.
for (String[] uniqueConstraint : tableGenerator.getUniqueConstraints()) {
sequence.getTable().addUniqueConstraints(uniqueConstraint);
}
if (! tableGenerator.getPkColumnName().equals("")) {
sequence.setNameFieldName(tableGenerator.getPkColumnName());
}
if (! tableGenerator.getValueColumnName().equals("")) {
sequence.setCounterFieldName(tableGenerator.getValueColumnName());
}
if (tableGeneratorName.equals(MetadataConstants.DEFAULT_AUTO_GENERATOR)) {
// TableGenerator defined with DEFAULT_AUTO_GENERATOR.
// The sequence it defines will be used as a defaultSequence.