Search in sources :

Example 6 with ColumnDef

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

the class ActiveRecordGenerator method _generateParcelDeserializationStatements.

protected CharSequence _generateParcelDeserializationStatements(final CreateTableStatement stmt) {
    StringConcatenation _builder = new StringConcatenation();
    int counter = (-1);
    _builder.newLineIfNotEmpty();
    {
        EList<ColumnSource> _columnDefs = stmt.getColumnDefs();
        final Function1<ColumnSource, Boolean> _function = new Function1<ColumnSource, Boolean>() {

            public Boolean apply(final ColumnSource it) {
                String _name = it.getName();
                boolean _equals = _name.equals("_id");
                return Boolean.valueOf((!_equals));
            }
        };
        Iterable<ColumnSource> _filter = IterableExtensions.<ColumnSource>filter(_columnDefs, _function);
        for (final ColumnSource item : _filter) {
            ColumnDef col = ((ColumnDef) item);
            _builder.newLineIfNotEmpty();
            {
                ColumnType _type = col.getType();
                boolean _equals = Objects.equal(_type, ColumnType.BOOLEAN);
                if (_equals) {
                    _builder.append("m");
                    String _name = col.getName();
                    String _pascalize = Strings.pascalize(_name);
                    _builder.append(_pascalize, "");
                    _builder.append(" = (in.readInt() > 0);");
                    _builder.newLineIfNotEmpty();
                } else {
                    ColumnType _type_1 = col.getType();
                    boolean _equals_1 = Objects.equal(_type_1, ColumnType.BLOB);
                    if (_equals_1) {
                        _builder.append("m");
                        String _name_1 = col.getName();
                        String _pascalize_1 = Strings.pascalize(_name_1);
                        _builder.append(_pascalize_1, "");
                        _builder.append(" = in.createByteArray();");
                        _builder.newLineIfNotEmpty();
                    } else {
                        _builder.append("m");
                        String _name_2 = col.getName();
                        String _pascalize_2 = Strings.pascalize(_name_2);
                        _builder.append(_pascalize_2, "");
                        _builder.append(" = in.read");
                        ColumnType _type_2 = col.getType();
                        String _javaTypeName = ModelUtil.toJavaTypeName(_type_2);
                        String _pascalize_3 = Strings.pascalize(_javaTypeName);
                        _builder.append(_pascalize_3, "");
                        _builder.append("();");
                        _builder.newLineIfNotEmpty();
                    }
                }
            }
        }
    }
    _builder.newLine();
    _builder.append("boolean[] dirtyFlags = new boolean[");
    EList<ColumnSource> _columnDefs_1 = stmt.getColumnDefs();
    int _size = _columnDefs_1.size();
    int _minus = (_size - 1);
    _builder.append(_minus, "");
    _builder.append("];");
    _builder.newLineIfNotEmpty();
    _builder.append("in.readBooleanArray(dirtyFlags);");
    _builder.newLine();
    {
        EList<ColumnSource> _columnDefs_2 = stmt.getColumnDefs();
        final Function1<ColumnSource, Boolean> _function_1 = new Function1<ColumnSource, Boolean>() {

            public Boolean apply(final ColumnSource it) {
                String _name = it.getName();
                boolean _equals = _name.equals("_id");
                return Boolean.valueOf((!_equals));
            }
        };
        Iterable<ColumnSource> _filter_1 = IterableExtensions.<ColumnSource>filter(_columnDefs_2, _function_1);
        for (final ColumnSource col_1 : _filter_1) {
            _builder.append("m");
            String _name_3 = col_1.getName();
            String _pascalize_4 = Strings.pascalize(_name_3);
            _builder.append(_pascalize_4, "");
            _builder.append("Dirty = dirtyFlags[");
            _builder.append(counter = (counter + 1), "");
            _builder.append("];");
            _builder.newLineIfNotEmpty();
        }
    }
    return _builder;
}
Also used : ColumnType(com.robotoworks.mechanoid.db.sqliteModel.ColumnType) Function1(org.eclipse.xtext.xbase.lib.Functions.Function1) ColumnDef(com.robotoworks.mechanoid.db.sqliteModel.ColumnDef) EList(org.eclipse.emf.common.util.EList) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) ColumnSource(com.robotoworks.mechanoid.db.sqliteModel.ColumnSource)

Example 7 with ColumnDef

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

the class ActiveRecordGenerator method _generateParcelSerializationStatements.

protected CharSequence _generateParcelSerializationStatements(final CreateTableStatement stmt) {
    StringConcatenation _builder = new StringConcatenation();
    {
        EList<ColumnSource> _columnDefs = stmt.getColumnDefs();
        final Function1<ColumnSource, Boolean> _function = new Function1<ColumnSource, Boolean>() {

            public Boolean apply(final ColumnSource it) {
                String _name = it.getName();
                boolean _equals = _name.equals("_id");
                return Boolean.valueOf((!_equals));
            }
        };
        Iterable<ColumnSource> _filter = IterableExtensions.<ColumnSource>filter(_columnDefs, _function);
        for (final ColumnSource item : _filter) {
            ColumnDef col = ((ColumnDef) item);
            _builder.newLineIfNotEmpty();
            {
                ColumnType _type = col.getType();
                boolean _equals = Objects.equal(_type, ColumnType.BOOLEAN);
                if (_equals) {
                    _builder.append("dest.writeInt(m");
                    String _name = col.getName();
                    String _pascalize = Strings.pascalize(_name);
                    _builder.append(_pascalize, "");
                    _builder.append(" ? 1 : 0);");
                    _builder.newLineIfNotEmpty();
                } else {
                    ColumnType _type_1 = col.getType();
                    boolean _equals_1 = Objects.equal(_type_1, ColumnType.BLOB);
                    if (_equals_1) {
                        _builder.append("dest.writeByteArray(m");
                        String _name_1 = col.getName();
                        String _pascalize_1 = Strings.pascalize(_name_1);
                        _builder.append(_pascalize_1, "");
                        _builder.append(");");
                        _builder.newLineIfNotEmpty();
                    } else {
                        _builder.append("dest.write");
                        ColumnType _type_2 = col.getType();
                        String _javaTypeName = ModelUtil.toJavaTypeName(_type_2);
                        String _pascalize_2 = Strings.pascalize(_javaTypeName);
                        _builder.append(_pascalize_2, "");
                        _builder.append("(m");
                        String _name_2 = col.getName();
                        String _pascalize_3 = Strings.pascalize(_name_2);
                        _builder.append(_pascalize_3, "");
                        _builder.append(");");
                        _builder.newLineIfNotEmpty();
                    }
                }
            }
        }
    }
    _builder.append("dest.writeBooleanArray(new boolean[] {");
    _builder.newLine();
    {
        EList<ColumnSource> _columnDefs_1 = stmt.getColumnDefs();
        final Function1<ColumnSource, Boolean> _function_1 = new Function1<ColumnSource, Boolean>() {

            public Boolean apply(final ColumnSource it) {
                String _name = it.getName();
                boolean _equals = _name.equals("_id");
                return Boolean.valueOf((!_equals));
            }
        };
        Iterable<ColumnSource> _filter_1 = IterableExtensions.<ColumnSource>filter(_columnDefs_1, _function_1);
        boolean _hasElements = false;
        for (final ColumnSource col_1 : _filter_1) {
            if (!_hasElements) {
                _hasElements = true;
            } else {
                _builder.appendImmediate(",", "\t");
            }
            _builder.append("\t");
            _builder.append("m");
            String _name_3 = col_1.getName();
            String _pascalize_4 = Strings.pascalize(_name_3);
            _builder.append(_pascalize_4, "\t");
            _builder.append("Dirty");
            _builder.newLineIfNotEmpty();
        }
    }
    _builder.append("});");
    _builder.newLine();
    return _builder;
}
Also used : EList(org.eclipse.emf.common.util.EList) ColumnType(com.robotoworks.mechanoid.db.sqliteModel.ColumnType) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) Function1(org.eclipse.xtext.xbase.lib.Functions.Function1) ColumnDef(com.robotoworks.mechanoid.db.sqliteModel.ColumnDef) ColumnSource(com.robotoworks.mechanoid.db.sqliteModel.ColumnSource)

Aggregations

ColumnDef (com.robotoworks.mechanoid.db.sqliteModel.ColumnDef)7 ColumnSource (com.robotoworks.mechanoid.db.sqliteModel.ColumnSource)4 ColumnType (com.robotoworks.mechanoid.db.sqliteModel.ColumnType)4 EList (org.eclipse.emf.common.util.EList)3 StringConcatenation (org.eclipse.xtend2.lib.StringConcatenation)3 Function1 (org.eclipse.xtext.xbase.lib.Functions.Function1)3 ResultColumn (com.robotoworks.mechanoid.db.sqliteModel.ResultColumn)2 ENotificationImpl (org.eclipse.emf.ecore.impl.ENotificationImpl)2 AlterTableAddColumnStatement (com.robotoworks.mechanoid.db.sqliteModel.AlterTableAddColumnStatement)1 CastExpression (com.robotoworks.mechanoid.db.sqliteModel.CastExpression)1 ColumnSourceRef (com.robotoworks.mechanoid.db.sqliteModel.ColumnSourceRef)1 CreateTableStatement (com.robotoworks.mechanoid.db.sqliteModel.CreateTableStatement)1 ExprConcat (com.robotoworks.mechanoid.db.sqliteModel.ExprConcat)1 Expression (com.robotoworks.mechanoid.db.sqliteModel.Expression)1 Function (com.robotoworks.mechanoid.db.sqliteModel.Function)1 SelectCoreExpression (com.robotoworks.mechanoid.db.sqliteModel.SelectCoreExpression)1 SelectExpression (com.robotoworks.mechanoid.db.sqliteModel.SelectExpression)1 SingleSourceTable (com.robotoworks.mechanoid.db.sqliteModel.SingleSourceTable)1 SqliteDataType (com.robotoworks.mechanoid.db.sqliteModel.SqliteDataType)1 TableDefinition (com.robotoworks.mechanoid.db.sqliteModel.TableDefinition)1