All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.akquinet.jbosscc.guttenbase.meta.builder.TableMetaDataBuilder Maven / Gradle / Ivy

The newest version!
package de.akquinet.jbosscc.guttenbase.meta.builder;

import de.akquinet.jbosscc.guttenbase.meta.InternalTableMetaData;
import de.akquinet.jbosscc.guttenbase.meta.impl.TableMetaDataImpl;

import java.util.ArrayList;
import java.util.List;

/**
 * Builder class for TableMetaData.
 * 

* © 2012-2034 akquinet tech@spree *

* * @author M. Dahm */ public class TableMetaDataBuilder { private String _tableName = "FOO"; private final List _columns = new ArrayList<>(); private final List _indexes = new ArrayList<>(); private final List _exportedforeignKeys = new ArrayList<>(); private final List _importedforeignKeys = new ArrayList<>(); private final DatabaseMetaDataBuilder _databaseMetaDataBuilder; private TableMetaDataImpl _result; public TableMetaDataBuilder(final DatabaseMetaDataBuilder databaseMetaDataBuilder) { assert databaseMetaDataBuilder != null : "databaseMetaDataBuilder != null"; _databaseMetaDataBuilder = databaseMetaDataBuilder; } public InternalTableMetaData build() { if (_result == null) { _result = new TableMetaDataImpl(_tableName, _databaseMetaDataBuilder.build(), "TABLE"); for (final ColumnMetaDataBuilder columnBuilder : _columns) { _result.addColumn(columnBuilder.build()); } for (final IndexMetaDataBuilder indexBuilder : _indexes) { _result.addIndex(indexBuilder.build()); } for (final ForeignKeyMetaDataBuilder foreignKeyMetaDataBuilder : _exportedforeignKeys) { _result.addExportedForeignKey(foreignKeyMetaDataBuilder.build()); } for (final ForeignKeyMetaDataBuilder foreignKeyMetaDataBuilder : _importedforeignKeys) { _result.addImportedForeignKey(foreignKeyMetaDataBuilder.build()); } } return _result; } public TableMetaDataBuilder setTableName(final String tableName) { _tableName = tableName; return this; } public TableMetaDataBuilder addColumn(final ColumnMetaDataBuilder columnMetaDataBuilder) { _columns.add(columnMetaDataBuilder); return this; } public TableMetaDataBuilder addIndex(final IndexMetaDataBuilder builder) { _indexes.add(builder); return this; } public TableMetaDataBuilder addExportedForeignKey(final ForeignKeyMetaDataBuilder builder) { _exportedforeignKeys.add(builder); return this; } public TableMetaDataBuilder addImportedForeignKey(final ForeignKeyMetaDataBuilder builder) { _importedforeignKeys.add(builder); return this; } public ColumnMetaDataBuilder getColumn(final String columnName) { for (final ColumnMetaDataBuilder builder : _columns) { if (builder.getColumnName().equalsIgnoreCase(columnName)) { return builder; } } return null; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy