Search in sources :

Example 26 with TableDefinition

use of com.robotoworks.mechanoid.db.sqliteModel.TableDefinition in project mechanoid by robotoworks.

the class ModelUtil method getHistory.

public static LinkedList<TableDefinition> getHistory(final TableDefinition ref) {
    LinkedList<TableDefinition> refs = new LinkedList<TableDefinition>();
    TableDefinition current = ref;
    while ((current instanceof AlterTableRenameStatement)) {
        {
            refs.add(current);
            TableDefinition _table = ((AlterTableRenameStatement) current).getTable();
            current = _table;
        }
    }
    refs.add(current);
    return refs;
}
Also used : TableDefinition(com.robotoworks.mechanoid.db.sqliteModel.TableDefinition) AlterTableRenameStatement(com.robotoworks.mechanoid.db.sqliteModel.AlterTableRenameStatement) LinkedList(java.util.LinkedList)

Example 27 with TableDefinition

use of com.robotoworks.mechanoid.db.sqliteModel.TableDefinition in project mechanoid by robotoworks.

the class ModelUtil method isDefinitionReferencedByView.

public static boolean isDefinitionReferencedByView(final TableDefinition tableDef, final CreateViewStatement view) {
    TreeIterator<EObject> _eAllContents = view.eAllContents();
    final Function1<EObject, Boolean> _function = new Function1<EObject, Boolean>() {

        public Boolean apply(final EObject obj) {
            if ((obj instanceof SingleSourceTable)) {
                SingleSourceTable sourceTable = ((SingleSourceTable) obj);
                TableDefinition _tableReference = sourceTable.getTableReference();
                if ((!(_tableReference instanceof CreateViewStatement))) {
                    TableDefinition _tableReference_1 = sourceTable.getTableReference();
                    String _name = _tableReference_1.getName();
                    String _name_1 = tableDef.getName();
                    boolean _equals = _name.equals(_name_1);
                    if (_equals) {
                        return Boolean.valueOf(true);
                    }
                } else {
                    TableDefinition _tableReference_2 = sourceTable.getTableReference();
                    return Boolean.valueOf(ModelUtil.isDefinitionReferencedByView(tableDef, ((CreateViewStatement) _tableReference_2)));
                }
            }
            return Boolean.valueOf(false);
        }
    };
    return IteratorExtensions.<EObject>exists(_eAllContents, _function);
}
Also used : CreateViewStatement(com.robotoworks.mechanoid.db.sqliteModel.CreateViewStatement) EObject(org.eclipse.emf.ecore.EObject) Function1(org.eclipse.xtext.xbase.lib.Functions.Function1) SingleSourceTable(com.robotoworks.mechanoid.db.sqliteModel.SingleSourceTable) TableDefinition(com.robotoworks.mechanoid.db.sqliteModel.TableDefinition)

Example 28 with TableDefinition

use of com.robotoworks.mechanoid.db.sqliteModel.TableDefinition in project mechanoid by robotoworks.

the class StatementSequenceValidator method _validateStatement.

protected void _validateStatement(final StatementSequenceValidatorResult result, final CreateTriggerStatement stmt) {
    String _name = stmt.getName();
    boolean _nameExists = this.nameExists(_name);
    if (_nameExists) {
        result.valid = false;
        result.message = "Name conflict, use another name";
        result.feature = SqliteModelPackage.Literals.CREATE_TRIGGER_STATEMENT__NAME;
    } else {
        TableDefinition _table = stmt.getTable();
        String _name_1 = _table.getName();
        boolean _contains = this.tables.contains(_name_1);
        boolean _not = (!_contains);
        if (_not) {
            result.valid = false;
            result.message = "No such table";
            result.feature = SqliteModelPackage.Literals.CREATE_TRIGGER_STATEMENT__TABLE;
        }
    }
}
Also used : TableDefinition(com.robotoworks.mechanoid.db.sqliteModel.TableDefinition)

Example 29 with TableDefinition

use of com.robotoworks.mechanoid.db.sqliteModel.TableDefinition in project mechanoid by robotoworks.

the class UpdateStatementImpl method setTable.

/**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
public void setTable(TableDefinition newTable) {
    TableDefinition oldTable = table;
    table = newTable;
    if (eNotificationRequired())
        eNotify(new ENotificationImpl(this, Notification.SET, SqliteModelPackage.UPDATE_STATEMENT__TABLE, oldTable, table));
}
Also used : ENotificationImpl(org.eclipse.emf.ecore.impl.ENotificationImpl) TableDefinition(com.robotoworks.mechanoid.db.sqliteModel.TableDefinition)

Example 30 with TableDefinition

use of com.robotoworks.mechanoid.db.sqliteModel.TableDefinition in project mechanoid by robotoworks.

the class StatementSequenceValidator method _validateStatement.

protected void _validateStatement(final StatementSequenceValidatorResult result, final AlterTableRenameStatement stmt) {
    TableDefinition _table = stmt.getTable();
    String _name = _table.getName();
    boolean _contains = this.tables.contains(_name);
    boolean _not = (!_contains);
    if (_not) {
        result.valid = false;
        result.message = "No such table";
        result.feature = SqliteModelPackage.Literals.ALTER_TABLE_RENAME_STATEMENT__TABLE;
    } else {
        String _name_1 = stmt.getName();
        boolean _nameExists = this.nameExists(_name_1);
        if (_nameExists) {
            result.valid = false;
            result.message = "Name conflict, use another name";
            result.feature = SqliteModelPackage.Literals.TABLE_DEFINITION__NAME;
        }
    }
}
Also used : TableDefinition(com.robotoworks.mechanoid.db.sqliteModel.TableDefinition)

Aggregations

TableDefinition (com.robotoworks.mechanoid.db.sqliteModel.TableDefinition)33 EObject (org.eclipse.emf.ecore.EObject)16 ENotificationImpl (org.eclipse.emf.ecore.impl.ENotificationImpl)9 DDLStatement (com.robotoworks.mechanoid.db.sqliteModel.DDLStatement)7 SingleSourceTable (com.robotoworks.mechanoid.db.sqliteModel.SingleSourceTable)5 Function (com.google.common.base.Function)3 CreateViewStatement (com.robotoworks.mechanoid.db.sqliteModel.CreateViewStatement)3 HashMap (java.util.HashMap)3 QualifiedName (org.eclipse.xtext.naming.QualifiedName)3 Function1 (org.eclipse.xtext.xbase.lib.Functions.Function1)3 AlterTableAddColumnStatement (com.robotoworks.mechanoid.db.sqliteModel.AlterTableAddColumnStatement)2 ColumnSource (com.robotoworks.mechanoid.db.sqliteModel.ColumnSource)2 CreateTableStatement (com.robotoworks.mechanoid.db.sqliteModel.CreateTableStatement)2 CreateTriggerStatement (com.robotoworks.mechanoid.db.sqliteModel.CreateTriggerStatement)2 Consumer (java.util.function.Consumer)2 AlterTableRenameStatement (com.robotoworks.mechanoid.db.sqliteModel.AlterTableRenameStatement)1 ColumnDef (com.robotoworks.mechanoid.db.sqliteModel.ColumnDef)1 ResultColumn (com.robotoworks.mechanoid.db.sqliteModel.ResultColumn)1 SelectCoreExpression (com.robotoworks.mechanoid.db.sqliteModel.SelectCoreExpression)1 SelectList (com.robotoworks.mechanoid.db.sqliteModel.SelectList)1