Search in sources :

Example 1 with SelectCoreExpression

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

the class XSqliteModelScopeProvider method scope_ColumnSourceRef_column.

public IScope scope_ColumnSourceRef_column(final ColumnSourceRef context, final EReference reference) {
    SelectSource _source = context.getSource();
    boolean _equals = Objects.equal(_source, null);
    if (_equals) {
        IScope scope = this.buildScopeForColumnSourceRef_column(context, context);
        return scope;
    } else {
        SelectSource _source_1 = context.getSource();
        if ((_source_1 instanceof SingleSourceTable)) {
            SelectSource _source_2 = context.getSource();
            SingleSourceTable tableSource = ((SingleSourceTable) _source_2);
            DDLStatement _ancestorOfType = ModelUtil.<DDLStatement>getAncestorOfType(tableSource, DDLStatement.class);
            TableDefinition _tableReference = tableSource.getTableReference();
            ArrayList<EObject> _findColumnDefs = ModelUtil.findColumnDefs(_ancestorOfType, _tableReference);
            return Scopes.scopeFor(_findColumnDefs);
        } else {
            SelectSource _source_3 = context.getSource();
            if ((_source_3 instanceof SingleSourceSelectStatement)) {
                SelectSource _source_4 = context.getSource();
                SingleSourceSelectStatement selectStmtSource = ((SingleSourceSelectStatement) _source_4);
                SelectStatement _selectStatement = selectStmtSource.getSelectStatement();
                SelectCoreExpression _core = _selectStatement.getCore();
                ArrayList<EObject> _allReferenceableColumns = ModelUtil.getAllReferenceableColumns(_core);
                return Scopes.scopeFor(_allReferenceableColumns);
            }
        }
    }
    return IScope.NULLSCOPE;
}
Also used : SelectStatement(com.robotoworks.mechanoid.db.sqliteModel.SelectStatement) SingleSourceSelectStatement(com.robotoworks.mechanoid.db.sqliteModel.SingleSourceSelectStatement) DDLStatement(com.robotoworks.mechanoid.db.sqliteModel.DDLStatement) SingleSourceSelectStatement(com.robotoworks.mechanoid.db.sqliteModel.SingleSourceSelectStatement) SelectCoreExpression(com.robotoworks.mechanoid.db.sqliteModel.SelectCoreExpression) EObject(org.eclipse.emf.ecore.EObject) IScope(org.eclipse.xtext.scoping.IScope) SingleSourceTable(com.robotoworks.mechanoid.db.sqliteModel.SingleSourceTable) TableDefinition(com.robotoworks.mechanoid.db.sqliteModel.TableDefinition) SelectSource(com.robotoworks.mechanoid.db.sqliteModel.SelectSource)

Example 2 with SelectCoreExpression

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

the class ModelUtil method getViewResultColumns.

public static ArrayList<ColumnSource> getViewResultColumns(final CreateViewStatement stmt) {
    ArrayList<ColumnSource> result = new ArrayList<ColumnSource>();
    SelectStatement _selectStatement = stmt.getSelectStatement();
    SelectCoreExpression coreExpr = _selectStatement.getCore();
    if ((coreExpr instanceof SelectCore)) {
        SelectCore core = ((SelectCore) coreExpr);
        SelectCoreExpression _right = core.getRight();
        SelectList selectList = ((SelectExpression) _right).getSelectList();
        boolean _notEquals = (!Objects.equal(selectList, null));
        if (_notEquals) {
            EList<ColumnSource> _resultColumns = selectList.getResultColumns();
            final Function1<ColumnSource, Boolean> _function = new Function1<ColumnSource, Boolean>() {

                public Boolean apply(final ColumnSource it) {
                    boolean _and = false;
                    String _name = it.getName();
                    boolean _notEquals = (!Objects.equal(_name, null));
                    if (!_notEquals) {
                        _and = false;
                    } else {
                        String _name_1 = it.getName();
                        boolean _equals = _name_1.equals("");
                        boolean _not = (!_equals);
                        _and = _not;
                    }
                    return Boolean.valueOf(_and);
                }
            };
            Iterable<ColumnSource> _filter = IterableExtensions.<ColumnSource>filter(_resultColumns, _function);
            Iterables.<ColumnSource>addAll(result, _filter);
        }
    } else {
        SelectList selectList_1 = ((SelectExpression) coreExpr).getSelectList();
        boolean _notEquals_1 = (!Objects.equal(selectList_1, null));
        if (_notEquals_1) {
            EList<ColumnSource> _resultColumns_1 = selectList_1.getResultColumns();
            final Function1<ColumnSource, Boolean> _function_1 = new Function1<ColumnSource, Boolean>() {

                public Boolean apply(final ColumnSource it) {
                    boolean _and = false;
                    String _name = it.getName();
                    boolean _notEquals = (!Objects.equal(_name, null));
                    if (!_notEquals) {
                        _and = false;
                    } else {
                        String _name_1 = it.getName();
                        boolean _equals = _name_1.equals("");
                        boolean _not = (!_equals);
                        _and = _not;
                    }
                    return Boolean.valueOf(_and);
                }
            };
            Iterable<ColumnSource> _filter_1 = IterableExtensions.<ColumnSource>filter(_resultColumns_1, _function_1);
            Iterables.<ColumnSource>addAll(result, _filter_1);
        }
    }
    return result;
}
Also used : SelectList(com.robotoworks.mechanoid.db.sqliteModel.SelectList) SelectCoreExpression(com.robotoworks.mechanoid.db.sqliteModel.SelectCoreExpression) ArrayList(java.util.ArrayList) Function1(org.eclipse.xtext.xbase.lib.Functions.Function1) SelectExpression(com.robotoworks.mechanoid.db.sqliteModel.SelectExpression) SelectCore(com.robotoworks.mechanoid.db.sqliteModel.SelectCore) SelectStatement(com.robotoworks.mechanoid.db.sqliteModel.SelectStatement) ColumnSource(com.robotoworks.mechanoid.db.sqliteModel.ColumnSource)

Example 3 with SelectCoreExpression

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

the class ModelUtil method getAllReferenceableColumns.

public static ArrayList<EObject> getAllReferenceableColumns(final SelectCoreExpression expr) {
    final ArrayList<EObject> items = Lists.<EObject>newArrayList();
    if ((expr instanceof SelectCore)) {
        SelectCoreExpression _left = ((SelectCore) expr).getLeft();
        ArrayList<EObject> _allReferenceableColumns = ModelUtil.getAllReferenceableColumns(_left);
        items.addAll(_allReferenceableColumns);
        SelectCoreExpression _right = ((SelectCore) expr).getRight();
        ArrayList<EObject> _allReferenceableColumns_1 = ModelUtil.getAllReferenceableColumns(_right);
        items.addAll(_allReferenceableColumns_1);
    } else {
        if ((expr instanceof SelectExpression)) {
            ArrayList<EObject> _allReferenceableColumns_2 = ModelUtil.getAllReferenceableColumns(((SelectExpression) expr), true);
            items.addAll(_allReferenceableColumns_2);
        }
    }
    return items;
}
Also used : SelectCoreExpression(com.robotoworks.mechanoid.db.sqliteModel.SelectCoreExpression) EObject(org.eclipse.emf.ecore.EObject) SelectExpression(com.robotoworks.mechanoid.db.sqliteModel.SelectExpression) SelectCore(com.robotoworks.mechanoid.db.sqliteModel.SelectCore)

Example 4 with SelectCoreExpression

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

the class ModelUtil method getAllReferenceableSingleSources.

public static ArrayList<EObject> getAllReferenceableSingleSources(final SelectCoreExpression expr) {
    final ArrayList<EObject> items = Lists.<EObject>newArrayList();
    if ((expr instanceof SelectCore)) {
        SelectCoreExpression _left = ((SelectCore) expr).getLeft();
        ArrayList<EObject> _allReferenceableSingleSources = ModelUtil.getAllReferenceableSingleSources(_left);
        items.addAll(_allReferenceableSingleSources);
        SelectCoreExpression _right = ((SelectCore) expr).getRight();
        ArrayList<EObject> _allReferenceableSingleSources_1 = ModelUtil.getAllReferenceableSingleSources(_right);
        items.addAll(_allReferenceableSingleSources_1);
    } else {
        if ((expr instanceof SelectExpression)) {
            ArrayList<SingleSource> _findAllSingleSources = ModelUtil.findAllSingleSources(((SelectExpression) expr));
            items.addAll(_findAllSingleSources);
        }
    }
    return items;
}
Also used : SingleSource(com.robotoworks.mechanoid.db.sqliteModel.SingleSource) SelectCoreExpression(com.robotoworks.mechanoid.db.sqliteModel.SelectCoreExpression) EObject(org.eclipse.emf.ecore.EObject) SelectExpression(com.robotoworks.mechanoid.db.sqliteModel.SelectExpression) SelectCore(com.robotoworks.mechanoid.db.sqliteModel.SelectCore)

Example 5 with SelectCoreExpression

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

the class StatementSequenceValidator method _validateStatement.

protected void _validateStatement(final StatementSequenceValidatorResult result, final CreateViewStatement 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.TABLE_DEFINITION__NAME;
    } else {
        SelectStatement _selectStatement = stmt.getSelectStatement();
        SelectCoreExpression _core = _selectStatement.getCore();
        this.validateTablesInExpression(result, _core);
    }
}
Also used : SelectStatement(com.robotoworks.mechanoid.db.sqliteModel.SelectStatement) SelectCoreExpression(com.robotoworks.mechanoid.db.sqliteModel.SelectCoreExpression)

Aggregations

SelectCoreExpression (com.robotoworks.mechanoid.db.sqliteModel.SelectCoreExpression)8 SelectCore (com.robotoworks.mechanoid.db.sqliteModel.SelectCore)3 SelectExpression (com.robotoworks.mechanoid.db.sqliteModel.SelectExpression)3 SelectStatement (com.robotoworks.mechanoid.db.sqliteModel.SelectStatement)3 EObject (org.eclipse.emf.ecore.EObject)3 ENotificationImpl (org.eclipse.emf.ecore.impl.ENotificationImpl)3 ColumnSource (com.robotoworks.mechanoid.db.sqliteModel.ColumnSource)1 DDLStatement (com.robotoworks.mechanoid.db.sqliteModel.DDLStatement)1 SelectList (com.robotoworks.mechanoid.db.sqliteModel.SelectList)1 SelectSource (com.robotoworks.mechanoid.db.sqliteModel.SelectSource)1 SingleSource (com.robotoworks.mechanoid.db.sqliteModel.SingleSource)1 SingleSourceSelectStatement (com.robotoworks.mechanoid.db.sqliteModel.SingleSourceSelectStatement)1 SingleSourceTable (com.robotoworks.mechanoid.db.sqliteModel.SingleSourceTable)1 TableDefinition (com.robotoworks.mechanoid.db.sqliteModel.TableDefinition)1 ArrayList (java.util.ArrayList)1 IScope (org.eclipse.xtext.scoping.IScope)1 Function1 (org.eclipse.xtext.xbase.lib.Functions.Function1)1