Search in sources :

Example 1 with EList

use of org.eclipse.emf.common.util.EList in project mechanoid by robotoworks.

the class RequestGenerator method generateRequestClass.

public CharSequence generateRequestClass(final HttpMethod method, final Model module, final Client client) {
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("public class ");
    String _name = method.getName();
    String _pascalize = Strings.pascalize(_name);
    _builder.append(_pascalize, "");
    _builder.append("Request extends ");
    {
        boolean _hasBody = ModelExtensions.hasBody(method);
        if (_hasBody) {
            _builder.append("EntityEnclosed");
        }
    }
    _builder.append("ServiceRequest {");
    _builder.newLineIfNotEmpty();
    _builder.append("\t");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("private static final String PATH = \"");
    String _pathAsFormatString = ModelExtensions.getPathAsFormatString(method, this.serializer);
    _builder.append(_pathAsFormatString, "\t");
    _builder.append("\";");
    _builder.newLineIfNotEmpty();
    _builder.append("\t");
    _builder.newLine();
    {
        Path _path = method.getPath();
        EList<SimpleMemberAssignment> _params = null;
        if (_path != null) {
            _params = _path.getParams();
        }
        int _size = 0;
        if (_params != null) {
            _size = _params.size();
        }
        boolean _greaterThan = (_size > 0);
        if (_greaterThan) {
            {
                Path _path_1 = method.getPath();
                EList<SimpleMemberAssignment> _params_1 = _path_1.getParams();
                for (final SimpleMemberAssignment slug : _params_1) {
                    _builder.append("\t");
                    _builder.append("private final ");
                    SimpleMember _member = slug.getMember();
                    IntrinsicType _type = _member.getType();
                    String _signature = ModelExtensions.signature(_type);
                    _builder.append(_signature, "\t");
                    _builder.append(" ");
                    SimpleMember _member_1 = slug.getMember();
                    String _name_1 = _member_1.getName();
                    String _camelize = Strings.camelize(_name_1);
                    _builder.append(_camelize, "\t");
                    _builder.append("Segment;");
                    _builder.newLineIfNotEmpty();
                }
            }
            _builder.append("\t");
            _builder.newLine();
        }
    }
    _builder.append("\t");
    ParamsBlock methodParams = ModelExtensions.getParamsBlock(method);
    _builder.newLineIfNotEmpty();
    _builder.append("\t");
    ParamsBlock clientParams = ModelExtensions.getParamsBlock(client);
    _builder.newLineIfNotEmpty();
    {
        boolean _notEquals = (!Objects.equal(methodParams, null));
        if (_notEquals) {
            {
                EList<SimpleMemberAssignment> _params_2 = methodParams.getParams();
                for (final SimpleMemberAssignment param : _params_2) {
                    _builder.append("\t");
                    _builder.append("private ");
                    SimpleMember _member_2 = param.getMember();
                    IntrinsicType _type_1 = _member_2.getType();
                    String _signature_1 = ModelExtensions.signature(_type_1);
                    _builder.append(_signature_1, "\t");
                    _builder.append(" ");
                    SimpleMember _member_3 = param.getMember();
                    String _name_2 = _member_3.getName();
                    String _camelize_1 = Strings.camelize(_name_2);
                    _builder.append(_camelize_1, "\t");
                    _builder.append("Param");
                    {
                        Literal _defaultValue = param.getDefaultValue();
                        boolean _notEquals_1 = (!Objects.equal(_defaultValue, null));
                        if (_notEquals_1) {
                            _builder.append(" = ");
                            Literal _defaultValue_1 = param.getDefaultValue();
                            String _convertToJavaLiteral = ModelExtensions.convertToJavaLiteral(_defaultValue_1);
                            _builder.append(_convertToJavaLiteral, "\t");
                        }
                    }
                    _builder.append(";");
                    _builder.newLineIfNotEmpty();
                    _builder.append("\t");
                    _builder.append("private boolean ");
                    SimpleMember _member_4 = param.getMember();
                    String _name_3 = _member_4.getName();
                    String _camelize_2 = Strings.camelize(_name_3);
                    _builder.append(_camelize_2, "\t");
                    _builder.append("ParamSet");
                    {
                        Literal _defaultValue_2 = param.getDefaultValue();
                        boolean _notEquals_2 = (!Objects.equal(_defaultValue_2, null));
                        if (_notEquals_2) {
                            _builder.append(" = true");
                        }
                    }
                    _builder.append(";");
                    _builder.newLineIfNotEmpty();
                }
            }
            _builder.append("\t");
            _builder.append("\t");
            _builder.newLine();
        }
    }
    {
        boolean _notEquals_3 = (!Objects.equal(clientParams, null));
        if (_notEquals_3) {
            {
                EList<SimpleMemberAssignment> _params_3 = clientParams.getParams();
                for (final SimpleMemberAssignment param_1 : _params_3) {
                    _builder.append("\t");
                    _builder.append("private ");
                    SimpleMember _member_5 = param_1.getMember();
                    IntrinsicType _type_2 = _member_5.getType();
                    String _signature_2 = ModelExtensions.signature(_type_2);
                    _builder.append(_signature_2, "\t");
                    _builder.append(" ");
                    SimpleMember _member_6 = param_1.getMember();
                    String _name_4 = _member_6.getName();
                    String _camelize_3 = Strings.camelize(_name_4);
                    _builder.append(_camelize_3, "\t");
                    _builder.append("Param");
                    {
                        Literal _defaultValue_3 = param_1.getDefaultValue();
                        boolean _notEquals_4 = (!Objects.equal(_defaultValue_3, null));
                        if (_notEquals_4) {
                            _builder.append(" = ");
                            Literal _defaultValue_4 = param_1.getDefaultValue();
                            String _convertToJavaLiteral_1 = ModelExtensions.convertToJavaLiteral(_defaultValue_4);
                            _builder.append(_convertToJavaLiteral_1, "\t");
                        }
                    }
                    _builder.append(";");
                    _builder.newLineIfNotEmpty();
                    _builder.append("\t");
                    _builder.append("private boolean ");
                    SimpleMember _member_7 = param_1.getMember();
                    String _name_5 = _member_7.getName();
                    String _camelize_4 = Strings.camelize(_name_5);
                    _builder.append(_camelize_4, "\t");
                    _builder.append("ParamSet");
                    {
                        Literal _defaultValue_5 = param_1.getDefaultValue();
                        boolean _notEquals_5 = (!Objects.equal(_defaultValue_5, null));
                        if (_notEquals_5) {
                            _builder.append(" = true");
                        }
                    }
                    _builder.append(";");
                    _builder.newLineIfNotEmpty();
                }
            }
            _builder.append("\t");
            _builder.append("\t");
            _builder.newLine();
        }
    }
    {
        boolean _hasBody_1 = ModelExtensions.hasBody(method);
        if (_hasBody_1) {
            _builder.append("\t");
            BodyBlock _body = ModelExtensions.getBody(method);
            BlockType _type_3 = _body.getType();
            CharSequence _generateFieldForType = this.generateFieldForType(_type_3);
            _builder.append(_generateFieldForType, "\t");
            _builder.newLineIfNotEmpty();
            _builder.append("\t");
            _builder.newLine();
            _builder.append("\t");
            BodyBlock _body_1 = ModelExtensions.getBody(method);
            BlockType _type_4 = _body_1.getType();
            CharSequence _generateGetterSetterForType = this.generateGetterSetterForType(_type_4);
            _builder.append(_generateGetterSetterForType, "\t");
            _builder.newLineIfNotEmpty();
        }
    }
    {
        boolean _notEquals_6 = (!Objects.equal(methodParams, null));
        if (_notEquals_6) {
            {
                EList<SimpleMemberAssignment> _params_4 = methodParams.getParams();
                for (final SimpleMemberAssignment param_2 : _params_4) {
                    _builder.append("\t");
                    _builder.append("public ");
                    String _name_6 = method.getName();
                    String _pascalize_1 = Strings.pascalize(_name_6);
                    _builder.append(_pascalize_1, "\t");
                    _builder.append("Request set");
                    SimpleMember _member_8 = param_2.getMember();
                    String _name_7 = _member_8.getName();
                    String _pascalize_2 = Strings.pascalize(_name_7);
                    _builder.append(_pascalize_2, "\t");
                    _builder.append("Param(");
                    SimpleMember _member_9 = param_2.getMember();
                    IntrinsicType _type_5 = _member_9.getType();
                    String _signature_3 = ModelExtensions.signature(_type_5);
                    _builder.append(_signature_3, "\t");
                    _builder.append(" value) {");
                    _builder.newLineIfNotEmpty();
                    _builder.append("\t");
                    _builder.append("\t");
                    _builder.append("this.");
                    SimpleMember _member_10 = param_2.getMember();
                    String _name_8 = _member_10.getName();
                    String _camelize_5 = Strings.camelize(_name_8);
                    _builder.append(_camelize_5, "\t\t");
                    _builder.append("Param = value;");
                    _builder.newLineIfNotEmpty();
                    _builder.append("\t");
                    _builder.append("\t");
                    _builder.append("this.");
                    SimpleMember _member_11 = param_2.getMember();
                    String _name_9 = _member_11.getName();
                    String _camelize_6 = Strings.camelize(_name_9);
                    _builder.append(_camelize_6, "\t\t");
                    _builder.append("ParamSet = true;");
                    _builder.newLineIfNotEmpty();
                    _builder.append("\t");
                    _builder.append("\t");
                    _builder.append("return this;");
                    _builder.newLine();
                    _builder.append("\t");
                    _builder.append("}");
                    _builder.newLine();
                    _builder.append("\t");
                    _builder.newLine();
                    _builder.append("\t");
                    _builder.append("public boolean is");
                    SimpleMember _member_12 = param_2.getMember();
                    String _name_10 = _member_12.getName();
                    String _pascalize_3 = Strings.pascalize(_name_10);
                    _builder.append(_pascalize_3, "\t");
                    _builder.append("ParamSet() {");
                    _builder.newLineIfNotEmpty();
                    _builder.append("\t");
                    _builder.append("\t");
                    _builder.append("return ");
                    SimpleMember _member_13 = param_2.getMember();
                    String _name_11 = _member_13.getName();
                    String _camelize_7 = Strings.camelize(_name_11);
                    _builder.append(_camelize_7, "\t\t");
                    _builder.append("ParamSet;");
                    _builder.newLineIfNotEmpty();
                    _builder.append("\t");
                    _builder.append("}");
                    _builder.newLine();
                }
            }
            _builder.append("\t");
            _builder.append("\t");
            _builder.newLine();
        }
    }
    {
        boolean _notEquals_7 = (!Objects.equal(clientParams, null));
        if (_notEquals_7) {
            {
                EList<SimpleMemberAssignment> _params_5 = clientParams.getParams();
                for (final SimpleMemberAssignment param_3 : _params_5) {
                    _builder.append("\t");
                    _builder.append("public ");
                    String _name_12 = method.getName();
                    String _pascalize_4 = Strings.pascalize(_name_12);
                    _builder.append(_pascalize_4, "\t");
                    _builder.append("Request set");
                    SimpleMember _member_14 = param_3.getMember();
                    String _name_13 = _member_14.getName();
                    String _pascalize_5 = Strings.pascalize(_name_13);
                    _builder.append(_pascalize_5, "\t");
                    _builder.append("Param(");
                    SimpleMember _member_15 = param_3.getMember();
                    IntrinsicType _type_6 = _member_15.getType();
                    String _signature_4 = ModelExtensions.signature(_type_6);
                    _builder.append(_signature_4, "\t");
                    _builder.append(" value) {");
                    _builder.newLineIfNotEmpty();
                    _builder.append("\t");
                    _builder.append("\t");
                    _builder.append("this.");
                    SimpleMember _member_16 = param_3.getMember();
                    String _name_14 = _member_16.getName();
                    String _camelize_8 = Strings.camelize(_name_14);
                    _builder.append(_camelize_8, "\t\t");
                    _builder.append("Param = value;");
                    _builder.newLineIfNotEmpty();
                    _builder.append("\t");
                    _builder.append("\t");
                    _builder.append("this.");
                    SimpleMember _member_17 = param_3.getMember();
                    String _name_15 = _member_17.getName();
                    String _camelize_9 = Strings.camelize(_name_15);
                    _builder.append(_camelize_9, "\t\t");
                    _builder.append("ParamSet = true;");
                    _builder.newLineIfNotEmpty();
                    _builder.append("\t");
                    _builder.append("\t");
                    _builder.append("return this;");
                    _builder.newLine();
                    _builder.append("\t");
                    _builder.append("}");
                    _builder.newLine();
                    _builder.append("\t");
                    _builder.newLine();
                    _builder.append("\t");
                    _builder.append("public boolean is");
                    SimpleMember _member_18 = param_3.getMember();
                    String _name_16 = _member_18.getName();
                    String _pascalize_6 = Strings.pascalize(_name_16);
                    _builder.append(_pascalize_6, "\t");
                    _builder.append("ParamSet() {");
                    _builder.newLineIfNotEmpty();
                    _builder.append("\t");
                    _builder.append("\t");
                    _builder.append("return ");
                    SimpleMember _member_19 = param_3.getMember();
                    String _name_17 = _member_19.getName();
                    String _camelize_10 = Strings.camelize(_name_17);
                    _builder.append(_camelize_10, "\t\t");
                    _builder.append("ParamSet;");
                    _builder.newLineIfNotEmpty();
                    _builder.append("\t");
                    _builder.append("}");
                    _builder.newLine();
                }
            }
            _builder.append("\t");
            _builder.append("\t\t");
            _builder.newLine();
        }
    }
    _builder.append("\t");
    _builder.append("public ");
    String _name_18 = method.getName();
    String _pascalize_7 = Strings.pascalize(_name_18);
    _builder.append(_pascalize_7, "\t");
    _builder.append("Request(");
    Path _path_2 = method.getPath();
    BodyBlock _body_2 = ModelExtensions.getBody(method);
    String _generateRequestConstructorArgs = this.generateRequestConstructorArgs(_path_2, _body_2);
    _builder.append(_generateRequestConstructorArgs, "\t");
    _builder.append("){");
    _builder.newLineIfNotEmpty();
    _builder.append("\t\t");
    HeaderBlock methodHeaders = ModelExtensions.getHeaderBlock(method);
    _builder.newLineIfNotEmpty();
    {
        boolean _notEquals_8 = (!Objects.equal(methodHeaders, null));
        if (_notEquals_8) {
            {
                EList<Header> _headers = methodHeaders.getHeaders();
                for (final Header header : _headers) {
                    _builder.append("\t\t");
                    _builder.append("setHeader(\"");
                    String _name_19 = header.getName();
                    _builder.append(_name_19, "\t\t");
                    _builder.append("\",\"");
                    String _value = header.getValue();
                    _builder.append(_value, "\t\t");
                    _builder.append("\");");
                    _builder.newLineIfNotEmpty();
                }
            }
            _builder.append("\t\t");
            _builder.newLine();
        }
    }
    {
        Path _path_3 = method.getPath();
        EList<SimpleMemberAssignment> _params_6 = null;
        if (_path_3 != null) {
            _params_6 = _path_3.getParams();
        }
        int _size_1 = 0;
        if (_params_6 != null) {
            _size_1 = _params_6.size();
        }
        boolean _greaterThan_1 = (_size_1 > 0);
        if (_greaterThan_1) {
            {
                Path _path_4 = method.getPath();
                EList<SimpleMemberAssignment> _params_7 = _path_4.getParams();
                for (final SimpleMemberAssignment slug_1 : _params_7) {
                    _builder.append("\t\t");
                    _builder.append("this.");
                    SimpleMember _member_20 = slug_1.getMember();
                    String _name_20 = _member_20.getName();
                    String _camelize_11 = Strings.camelize(_name_20);
                    _builder.append(_camelize_11, "\t\t");
                    _builder.append("Segment = ");
                    SimpleMember _member_21 = slug_1.getMember();
                    String _name_21 = _member_21.getName();
                    String _camelize_12 = Strings.camelize(_name_21);
                    _builder.append(_camelize_12, "\t\t");
                    _builder.append("Segment;");
                    _builder.newLineIfNotEmpty();
                }
            }
        }
    }
    {
        boolean _hasBody_2 = ModelExtensions.hasBody(method);
        if (_hasBody_2) {
            _builder.append("\t\t");
            BodyBlock _body_3 = ModelExtensions.getBody(method);
            BlockType _type_7 = _body_3.getType();
            CharSequence _generateConstructorAssignmentForType = this.generateConstructorAssignmentForType(_type_7);
            _builder.append(_generateConstructorAssignmentForType, "\t\t");
            _builder.newLineIfNotEmpty();
        }
    }
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t");
    _builder.newLine();
    {
        boolean _hasBody_3 = ModelExtensions.hasBody(method);
        if (_hasBody_3) {
            _builder.append("\t");
            this.imports.addImport("com.robotoworks.mechanoid.util.Closeables");
            _builder.newLineIfNotEmpty();
            _builder.append("\t");
            this.imports.addImport("java.io.OutputStream");
            _builder.newLineIfNotEmpty();
            _builder.append("\t");
            this.imports.addImport("java.io.IOException");
            _builder.newLineIfNotEmpty();
            _builder.append("\t");
            _builder.append("@Override");
            _builder.newLine();
            _builder.append("\t");
            _builder.append("public void writeBody(JsonEntityWriterProvider provider, OutputStream stream) throws IOException {");
            _builder.newLine();
            _builder.append("\t");
            _builder.append("\t");
            BodyBlock _body_4 = ModelExtensions.getBody(method);
            BodyBlock _body_5 = ModelExtensions.getBody(method);
            BlockType _type_8 = _body_5.getType();
            CharSequence _generateSerializationStatementForType = this.generateSerializationStatementForType(method, _body_4, _type_8);
            _builder.append(_generateSerializationStatementForType, "\t\t");
            _builder.newLineIfNotEmpty();
            _builder.append("\t");
            _builder.append("}");
            _builder.newLine();
            _builder.newLine();
        }
    }
    _builder.append("\t");
    _builder.append("@Override");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("public String createUrl(String baseUrl){");
    _builder.newLine();
    {
        Path _path_5 = method.getPath();
        EList<SimpleMemberAssignment> _params_8 = null;
        if (_path_5 != null) {
            _params_8 = _path_5.getParams();
        }
        int _size_2 = 0;
        if (_params_8 != null) {
            _size_2 = _params_8.size();
        }
        boolean _greaterThan_2 = (_size_2 > 0);
        if (_greaterThan_2) {
            _builder.append("\t\t");
            _builder.append("Uri.Builder uriBuilder = Uri.parse(baseUrl + String.format(PATH, ");
            {
                Path _path_6 = method.getPath();
                EList<SimpleMemberAssignment> _params_9 = _path_6.getParams();
                boolean _hasElements = false;
                for (final SimpleMemberAssignment slug_2 : _params_9) {
                    if (!_hasElements) {
                        _hasElements = true;
                    } else {
                        _builder.appendImmediate(", ", "\t\t");
                    }
                    SimpleMember _member_22 = slug_2.getMember();
                    String _name_22 = _member_22.getName();
                    String _camelize_13 = Strings.camelize(_name_22);
                    _builder.append(_camelize_13, "\t\t");
                    _builder.append("Segment");
                }
            }
            _builder.append(")).buildUpon();");
            _builder.newLineIfNotEmpty();
        } else {
            _builder.append("\t\t");
            _builder.append("Uri.Builder uriBuilder = Uri.parse(baseUrl + PATH).buildUpon();");
            _builder.newLine();
        }
    }
    _builder.append("\t\t\t");
    _builder.newLine();
    {
        boolean _notEquals_9 = (!Objects.equal(methodParams, null));
        if (_notEquals_9) {
            {
                EList<SimpleMemberAssignment> _params_10 = methodParams.getParams();
                for (final SimpleMemberAssignment param_4 : _params_10) {
                    _builder.append("\t\t");
                    _builder.append("if(");
                    SimpleMember _member_23 = param_4.getMember();
                    String _name_23 = _member_23.getName();
                    String _camelize_14 = Strings.camelize(_name_23);
                    _builder.append(_camelize_14, "\t\t");
                    _builder.append("ParamSet){");
                    _builder.newLineIfNotEmpty();
                    {
                        SimpleMember _member_24 = param_4.getMember();
                        IntrinsicType _type_9 = _member_24.getType();
                        if ((_type_9 instanceof StringType)) {
                            _builder.append("\t\t");
                            _builder.append("\t");
                            _builder.append("uriBuilder.appendQueryParameter(\"");
                            SimpleMember _member_25 = param_4.getMember();
                            String _name_24 = _member_25.getName();
                            _builder.append(_name_24, "\t\t\t");
                            _builder.append("\", ");
                            SimpleMember _member_26 = param_4.getMember();
                            String _name_25 = _member_26.getName();
                            String _camelize_15 = Strings.camelize(_name_25);
                            _builder.append(_camelize_15, "\t\t\t");
                            _builder.append("Param);");
                            _builder.newLineIfNotEmpty();
                        } else {
                            _builder.append("\t\t");
                            _builder.append("\t");
                            _builder.append("uriBuilder.appendQueryParameter(\"");
                            SimpleMember _member_27 = param_4.getMember();
                            String _name_26 = _member_27.getName();
                            _builder.append(_name_26, "\t\t\t");
                            _builder.append("\", String.valueOf(");
                            SimpleMember _member_28 = param_4.getMember();
                            String _name_27 = _member_28.getName();
                            String _camelize_16 = Strings.camelize(_name_27);
                            _builder.append(_camelize_16, "\t\t\t");
                            _builder.append("Param));");
                            _builder.newLineIfNotEmpty();
                        }
                    }
                    _builder.append("\t\t");
                    _builder.append("}");
                    _builder.newLine();
                }
            }
            _builder.append("\t\t");
            _builder.newLine();
        }
    }
    {
        boolean _notEquals_10 = (!Objects.equal(clientParams, null));
        if (_notEquals_10) {
            {
                EList<SimpleMemberAssignment> _params_11 = clientParams.getParams();
                for (final SimpleMemberAssignment param_5 : _params_11) {
                    _builder.append("\t\t");
                    _builder.append("if(");
                    SimpleMember _member_29 = param_5.getMember();
                    String _name_28 = _member_29.getName();
                    String _camelize_17 = Strings.camelize(_name_28);
                    _builder.append(_camelize_17, "\t\t");
                    _builder.append("ParamSet){");
                    _builder.newLineIfNotEmpty();
                    {
                        SimpleMember _member_30 = param_5.getMember();
                        IntrinsicType _type_10 = _member_30.getType();
                        if ((_type_10 instanceof StringType)) {
                            _builder.append("\t\t");
                            _builder.append("\t");
                            _builder.append("uriBuilder.appendQueryParameter(\"");
                            SimpleMember _member_31 = param_5.getMember();
                            String _name_29 = _member_31.getName();
                            _builder.append(_name_29, "\t\t\t");
                            _builder.append("\", ");
                            SimpleMember _member_32 = param_5.getMember();
                            String _name_30 = _member_32.getName();
                            String _camelize_18 = Strings.camelize(_name_30);
                            _builder.append(_camelize_18, "\t\t\t");
                            _builder.append("Param);");
                            _builder.newLineIfNotEmpty();
                        } else {
                            _builder.append("\t\t");
                            _builder.append("\t");
                            _builder.append("uriBuilder.appendQueryParameter(\"");
                            SimpleMember _member_33 = param_5.getMember();
                            String _name_31 = _member_33.getName();
                            _builder.append(_name_31, "\t\t\t");
                            _builder.append("\", String.valueOf(");
                            SimpleMember _member_34 = param_5.getMember();
                            String _name_32 = _member_34.getName();
                            String _camelize_19 = Strings.camelize(_name_32);
                            _builder.append(_camelize_19, "\t\t\t");
                            _builder.append("Param));");
                            _builder.newLineIfNotEmpty();
                        }
                    }
                    _builder.append("\t\t");
                    _builder.append("}");
                    _builder.newLine();
                }
            }
            _builder.append("\t\t");
            _builder.newLine();
        }
    }
    _builder.append("\t\t");
    _builder.append("return uriBuilder.toString();\t\t\t");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    return _builder;
}
Also used : Path(com.robotoworks.mechanoid.net.netModel.Path) HeaderBlock(com.robotoworks.mechanoid.net.netModel.HeaderBlock) StringType(com.robotoworks.mechanoid.net.netModel.StringType) BodyBlock(com.robotoworks.mechanoid.net.netModel.BodyBlock) IntrinsicType(com.robotoworks.mechanoid.net.netModel.IntrinsicType) EList(org.eclipse.emf.common.util.EList) Header(com.robotoworks.mechanoid.net.netModel.Header) BlockType(com.robotoworks.mechanoid.net.netModel.BlockType) SimpleMemberAssignment(com.robotoworks.mechanoid.net.netModel.SimpleMemberAssignment) ParamsBlock(com.robotoworks.mechanoid.net.netModel.ParamsBlock) ComplexTypeLiteral(com.robotoworks.mechanoid.net.netModel.ComplexTypeLiteral) Literal(com.robotoworks.mechanoid.net.netModel.Literal) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) SimpleMember(com.robotoworks.mechanoid.net.netModel.SimpleMember)

Example 2 with EList

use of org.eclipse.emf.common.util.EList in project mechanoid by robotoworks.

the class ResultGenerator method generateResponseClass.

public CharSequence generateResponseClass(final HttpMethod method, final Model module, final Client client) {
    StringConcatenation _builder = new StringConcatenation();
    final ResponseBlock responseBlock = ModelExtensions.getResponseBlock(method);
    _builder.newLineIfNotEmpty();
    _builder.append("public class ");
    String _name = method.getName();
    String _pascalize = Strings.pascalize(_name);
    _builder.append(_pascalize, "");
    _builder.append("Result extends ServiceResult {");
    _builder.newLineIfNotEmpty();
    {
        BlockType _type = null;
        if (responseBlock != null) {
            _type = responseBlock.getType();
        }
        boolean _notEquals = (!Objects.equal(_type, null));
        if (_notEquals) {
            _builder.append("\t");
            BlockType _type_1 = responseBlock.getType();
            CharSequence _generateFieldForType = this.generateFieldForType(_type_1);
            _builder.append(_generateFieldForType, "\t");
            _builder.append("\t");
            _builder.newLineIfNotEmpty();
            _builder.append("\t");
            BlockType _type_2 = responseBlock.getType();
            CharSequence _generateGetterForType = this.generateGetterForType(_type_2);
            _builder.append(_generateGetterForType, "\t");
            _builder.append("\t");
            _builder.newLineIfNotEmpty();
        }
    }
    {
        ComplexTypeDeclaration _superType = null;
        if (responseBlock != null) {
            _superType = responseBlock.getSuperType();
        }
        boolean _notEquals_1 = (!Objects.equal(_superType, null));
        if (_notEquals_1) {
            _builder.append("\t");
            _builder.append("private ");
            ComplexTypeDeclaration _superType_1 = responseBlock.getSuperType();
            String _name_1 = _superType_1.getName();
            String _pascalize_1 = Strings.pascalize(_name_1);
            _builder.append(_pascalize_1, "\t");
            _builder.append(" base;");
            _builder.newLineIfNotEmpty();
            _builder.append("\t");
            ComplexTypeDeclaration _superType_2 = responseBlock.getSuperType();
            ComplexTypeLiteral _literal = _superType_2.getLiteral();
            EList<Member> _members = _literal.getMembers();
            final Function1<Member, Boolean> _function = new Function1<Member, Boolean>() {

                public Boolean apply(final Member superMember) {
                    BlockType _type = null;
                    if (responseBlock != null) {
                        _type = responseBlock.getType();
                    }
                    if ((_type instanceof ComplexTypeLiteral)) {
                        BlockType _type_1 = responseBlock.getType();
                        EList<Member> _members = ((ComplexTypeLiteral) _type_1).getMembers();
                        final Function1<Member, Boolean> _function = new Function1<Member, Boolean>() {

                            public Boolean apply(final Member member) {
                                String _name = superMember.getName();
                                String _name_1 = member.getName();
                                return Boolean.valueOf(_name.equals(_name_1));
                            }
                        };
                        Member _findFirst = IterableExtensions.<Member>findFirst(_members, _function);
                        return Boolean.valueOf(Objects.equal(_findFirst, null));
                    }
                    return Boolean.valueOf(true);
                }
            };
            Iterable<Member> _filter = IterableExtensions.<Member>filter(_members, _function);
            CharSequence _generateBaseAccessors = this.generateBaseAccessors(_filter);
            _builder.append(_generateBaseAccessors, "\t");
            _builder.newLineIfNotEmpty();
        }
    }
    _builder.append("\t");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("public ");
    String _name_2 = method.getName();
    String _pascalize_2 = Strings.pascalize(_name_2);
    _builder.append(_pascalize_2, "\t");
    _builder.append("Result(JsonEntityReaderProvider provider, InputStream inStream) throws IOException {");
    _builder.newLineIfNotEmpty();
    {
        boolean _notEquals_2 = (!Objects.equal(responseBlock, null));
        if (_notEquals_2) {
            {
                boolean _or = false;
                BlockType _type_3 = responseBlock.getType();
                if ((_type_3 instanceof ComplexTypeLiteral)) {
                    _or = true;
                } else {
                    ComplexTypeDeclaration _superType_3 = responseBlock.getSuperType();
                    boolean _notEquals_3 = (!Objects.equal(_superType_3, null));
                    _or = _notEquals_3;
                }
                if (_or) {
                    _builder.append("\t");
                    CharSequence _generateDeserializationStatementHeader = this.generateDeserializationStatementHeader(true);
                    _builder.append(_generateDeserializationStatementHeader, "\t");
                    _builder.newLineIfNotEmpty();
                    {
                        ComplexTypeDeclaration _superType_4 = responseBlock.getSuperType();
                        boolean _notEquals_4 = (!Objects.equal(_superType_4, null));
                        if (_notEquals_4) {
                            _builder.append("\t");
                            _builder.append("\t");
                            _builder.append("this.base = new ");
                            ComplexTypeDeclaration _superType_5 = responseBlock.getSuperType();
                            String _name_3 = _superType_5.getName();
                            String _pascalize_3 = Strings.pascalize(_name_3);
                            _builder.append(_pascalize_3, "\t\t");
                            _builder.append("();");
                            _builder.newLineIfNotEmpty();
                        }
                    }
                    {
                        BlockType _type_4 = responseBlock.getType();
                        if ((_type_4 instanceof ComplexTypeLiteral)) {
                            _builder.append("\t");
                            _builder.append("\t");
                            String _name_4 = method.getName();
                            String _pascalize_4 = Strings.pascalize(_name_4);
                            _builder.append(_pascalize_4, "\t\t");
                            _builder.append("Result subject = this;");
                            _builder.newLineIfNotEmpty();
                            _builder.append("\t");
                            _builder.append("\t");
                            BlockType _type_5 = responseBlock.getType();
                            ComplexTypeDeclaration _superType_6 = null;
                            if (responseBlock != null) {
                                _superType_6 = responseBlock.getSuperType();
                            }
                            ComplexTypeLiteral _literal_1 = null;
                            if (_superType_6 != null) {
                                _literal_1 = _superType_6.getLiteral();
                            }
                            EList<Member> _mergeMembers = this.mergeMembers(((ComplexTypeLiteral) _type_5), _literal_1);
                            CharSequence _genReadComplexTypeLiteralForMembers = this.jsonReaderGenerator.genReadComplexTypeLiteralForMembers(_mergeMembers);
                            _builder.append(_genReadComplexTypeLiteralForMembers, "\t\t");
                            _builder.newLineIfNotEmpty();
                        }
                    }
                    _builder.append("\t");
                    CharSequence _generateDeserializationStatementFooter = this.generateDeserializationStatementFooter(true);
                    _builder.append(_generateDeserializationStatementFooter, "\t");
                    _builder.newLineIfNotEmpty();
                } else {
                    _builder.append("\t");
                    BlockType _type_6 = responseBlock.getType();
                    CharSequence _generateDeserializationStatementForType = this.generateDeserializationStatementForType(responseBlock, ((Type) _type_6));
                    _builder.append(_generateDeserializationStatementForType, "\t");
                    _builder.newLineIfNotEmpty();
                }
            }
        } else {
            _builder.append("\t");
            _builder.append("Closeables.closeSilently(inStream);");
            _builder.newLine();
        }
    }
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    return _builder;
}
Also used : ComplexTypeDeclaration(com.robotoworks.mechanoid.net.netModel.ComplexTypeDeclaration) Function1(org.eclipse.xtext.xbase.lib.Functions.Function1) Type(com.robotoworks.mechanoid.net.netModel.Type) BlockType(com.robotoworks.mechanoid.net.netModel.BlockType) IntrinsicType(com.robotoworks.mechanoid.net.netModel.IntrinsicType) UserType(com.robotoworks.mechanoid.net.netModel.UserType) GenericListType(com.robotoworks.mechanoid.net.netModel.GenericListType) BasicEList(org.eclipse.emf.common.util.BasicEList) EList(org.eclipse.emf.common.util.EList) BlockType(com.robotoworks.mechanoid.net.netModel.BlockType) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) ResponseBlock(com.robotoworks.mechanoid.net.netModel.ResponseBlock) ComplexTypeLiteral(com.robotoworks.mechanoid.net.netModel.ComplexTypeLiteral) TypedMember(com.robotoworks.mechanoid.net.netModel.TypedMember) Member(com.robotoworks.mechanoid.net.netModel.Member) SkipMember(com.robotoworks.mechanoid.net.netModel.SkipMember)

Example 3 with EList

use of org.eclipse.emf.common.util.EList in project mechanoid by robotoworks.

the class EntityReaderProviderGenerator method generateType.

public CharSequence generateType(final Client client, final Model model) {
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("public class Default");
    String _name = client.getName();
    _builder.append(_name, "");
    _builder.append("ReaderProvider implements JsonEntityReaderProvider {");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    _builder.append("\t");
    _builder.append("private HashMap<Class<?>, JsonEntityReader<?>> mMap = new HashMap<Class<?>, JsonEntityReader<?>>();");
    _builder.newLine();
    _builder.append("\t");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("public Default");
    String _name_1 = client.getName();
    _builder.append(_name_1, "\t");
    _builder.append("ReaderProvider(){");
    _builder.newLineIfNotEmpty();
    _builder.append("\t\t");
    _builder.append("registerReaders(mMap);");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("@SuppressWarnings(\"unchecked\")");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("@Override");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("public <T, R extends JsonEntityReader<T>> R get(Class<T> entityType) {");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("return (R) mMap.get(entityType);");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("protected void registerReaders(HashMap<Class<?>, JsonEntityReader<?>> map) {");
    _builder.newLine();
    {
        EList<Declaration> _declarations = model.getDeclarations();
        Iterable<ComplexTypeDeclaration> _filter = Iterables.<ComplexTypeDeclaration>filter(_declarations, ComplexTypeDeclaration.class);
        for (final ComplexTypeDeclaration entity : _filter) {
            _builder.append("\t\t");
            _builder.append("map.put(");
            String _name_2 = entity.getName();
            _builder.append(_name_2, "\t\t");
            _builder.append(".class, new ");
            String _name_3 = entity.getName();
            _builder.append(_name_3, "\t\t");
            _builder.append("Reader(this));");
            _builder.newLineIfNotEmpty();
        }
    }
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    return _builder;
}
Also used : ComplexTypeDeclaration(com.robotoworks.mechanoid.net.netModel.ComplexTypeDeclaration) EList(org.eclipse.emf.common.util.EList) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation)

Example 4 with EList

use of org.eclipse.emf.common.util.EList in project mechanoid by robotoworks.

the class JsonReaderStatementGenerator method _genStatement.

protected CharSequence _genStatement(final SkipMember skipMember) {
    StringConcatenation _builder = new StringConcatenation();
    ImportHelper _imports = this.getImports();
    _imports.addImport("com.robotoworks.mechanoid.internal.util.JsonToken");
    _builder.newLineIfNotEmpty();
    String _readerIdentifier = this.getReaderIdentifier();
    _builder.append(_readerIdentifier, "");
    _builder.append(".beginObject();");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    _builder.append("while(");
    String _readerIdentifier_1 = this.getReaderIdentifier();
    _builder.append(_readerIdentifier_1, "");
    _builder.append(".hasNext()) {");
    _builder.newLineIfNotEmpty();
    _builder.append("\t");
    _builder.append("name = ");
    String _readerIdentifier_2 = this.getReaderIdentifier();
    _builder.append(_readerIdentifier_2, "\t");
    _builder.append(".nextName();");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    _builder.append("\t");
    _builder.append("if(");
    String _readerIdentifier_3 = this.getReaderIdentifier();
    _builder.append(_readerIdentifier_3, "\t");
    _builder.append(".peek() == JsonToken.NULL) {");
    _builder.newLineIfNotEmpty();
    _builder.append("\t\t");
    String _readerIdentifier_4 = this.getReaderIdentifier();
    _builder.append(_readerIdentifier_4, "\t\t");
    _builder.append(".skipValue();");
    _builder.newLineIfNotEmpty();
    _builder.append("\t\t");
    _builder.append("continue;");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t");
    _builder.newLine();
    _builder.append("\t");
    int COUNTER = 0;
    _builder.newLineIfNotEmpty();
    {
        ComplexTypeLiteral _literal = skipMember.getLiteral();
        EList<Member> _members = _literal.getMembers();
        for (final Member member : _members) {
            _builder.append("\t");
            Object _genBlock = this.genBlock(member, COUNTER = (COUNTER + 1));
            _builder.append(_genBlock, "\t");
            _builder.newLineIfNotEmpty();
        }
    }
    {
        if ((COUNTER > 0)) {
            _builder.append("\t");
            _builder.append("else {");
            _builder.newLine();
            _builder.append("\t");
            _builder.append("\t");
            String _readerIdentifier_5 = this.getReaderIdentifier();
            _builder.append(_readerIdentifier_5, "\t\t");
            _builder.append(".skipValue();");
            _builder.newLineIfNotEmpty();
            _builder.append("\t");
            _builder.append("}");
            _builder.newLine();
        }
    }
    _builder.append("}");
    _builder.newLine();
    _builder.newLine();
    String _readerIdentifier_6 = this.getReaderIdentifier();
    _builder.append(_readerIdentifier_6, "");
    _builder.append(".endObject();");
    _builder.newLineIfNotEmpty();
    return _builder;
}
Also used : EList(org.eclipse.emf.common.util.EList) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) ComplexTypeLiteral(com.robotoworks.mechanoid.net.netModel.ComplexTypeLiteral) TypedMember(com.robotoworks.mechanoid.net.netModel.TypedMember) Member(com.robotoworks.mechanoid.net.netModel.Member) SkipMember(com.robotoworks.mechanoid.net.netModel.SkipMember) ImportHelper(com.robotoworks.mechanoid.net.generator.ImportHelper)

Example 5 with EList

use of org.eclipse.emf.common.util.EList in project mechanoid by robotoworks.

the class OperationGenerator method generate.

public CharSequence generate(final Model model, final Operation op) {
    StringConcatenation _builder = new StringConcatenation();
    ServiceBlock svc = model.getService();
    _builder.newLineIfNotEmpty();
    _builder.append("/*");
    _builder.newLine();
    _builder.append(" ");
    _builder.append("* Generated by Robotoworks Mechanoid");
    _builder.newLine();
    _builder.append(" ");
    _builder.append("*/");
    _builder.newLine();
    _builder.append("package ");
    String _packageName = model.getPackageName();
    _builder.append(_packageName, "");
    _builder.append(";");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    _builder.append("import com.robotoworks.mechanoid.Mechanoid;");
    _builder.newLine();
    _builder.append("import com.robotoworks.mechanoid.ops.Operation;");
    _builder.newLine();
    _builder.append("import com.robotoworks.mechanoid.ops.OperationContext;");
    _builder.newLine();
    _builder.append("import com.robotoworks.mechanoid.ops.OperationResult;");
    _builder.newLine();
    _builder.append("import com.robotoworks.mechanoid.ops.OperationServiceBridge;");
    _builder.newLine();
    _builder.append("import com.robotoworks.mechanoid.ops.OperationConfiguration;");
    _builder.newLine();
    _builder.append("import android.content.Intent;");
    _builder.newLine();
    _builder.append("import android.os.Bundle;");
    _builder.newLine();
    _builder.newLine();
    _builder.append("public abstract class Abstract");
    String _name = op.getName();
    String _pascalize = Strings.pascalize(_name);
    _builder.append(_pascalize, "");
    _builder.append("Operation extends Operation {");
    _builder.newLineIfNotEmpty();
    _builder.append("\t");
    _builder.append("public static final String ACTION_");
    String _name_1 = op.getName();
    String _underscore = Strings.underscore(_name_1);
    String _upperCase = _underscore.toUpperCase();
    _builder.append(_upperCase, "\t");
    _builder.append(" = \"");
    String _packageName_1 = model.getPackageName();
    _builder.append(_packageName_1, "\t");
    _builder.append(".");
    String _name_2 = svc.getName();
    String _formatServiceName = Extensions.formatServiceName(_name_2);
    _builder.append(_formatServiceName, "\t");
    _builder.append(".actions.");
    String _name_3 = op.getName();
    String _underscore_1 = Strings.underscore(_name_3);
    String _upperCase_1 = _underscore_1.toUpperCase();
    _builder.append(_upperCase_1, "\t");
    _builder.append("\";");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    {
        EList<OperationArg> _args = op.getArgs();
        for (final OperationArg arg : _args) {
            _builder.append("\t");
            _builder.append("public static final String EXTRA_");
            String _name_4 = arg.getName();
            String _underscore_2 = Strings.underscore(_name_4);
            String _upperCase_2 = _underscore_2.toUpperCase();
            _builder.append(_upperCase_2, "\t");
            _builder.append(" = \"");
            String _packageName_2 = model.getPackageName();
            _builder.append(_packageName_2, "\t");
            _builder.append(".");
            String _name_5 = svc.getName();
            String _formatServiceName_1 = Extensions.formatServiceName(_name_5);
            _builder.append(_formatServiceName_1, "\t");
            _builder.append(".extras.");
            String _name_6 = arg.getName();
            String _underscore_3 = Strings.underscore(_name_6);
            String _upperCase_3 = _underscore_3.toUpperCase();
            _builder.append(_upperCase_3, "\t");
            _builder.append("\";");
            _builder.newLineIfNotEmpty();
        }
    }
    _builder.newLine();
    _builder.append("\t");
    _builder.append("static class Args {");
    _builder.newLine();
    {
        EList<OperationArg> _args_1 = op.getArgs();
        for (final OperationArg arg_1 : _args_1) {
            _builder.append("\t\t");
            _builder.append("public ");
            OpArgType _type = arg_1.getType();
            String _typeLiteral = Extensions.toTypeLiteral(_type);
            _builder.append(_typeLiteral, "\t\t");
            _builder.append(" ");
            String _name_7 = arg_1.getName();
            String _camelize = Strings.camelize(_name_7);
            _builder.append(_camelize, "\t\t");
            _builder.append(";");
            _builder.newLineIfNotEmpty();
        }
    }
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("static class Configuration extends OperationConfiguration {");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("@Override ");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("public Operation createOperation() {");
    _builder.newLine();
    _builder.append("\t\t\t");
    _builder.append("return new ");
    String _name_8 = op.getName();
    String _pascalize_1 = Strings.pascalize(_name_8);
    _builder.append(_pascalize_1, "\t\t\t");
    _builder.append("Operation();");
    _builder.newLineIfNotEmpty();
    _builder.append("\t\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("@Override");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("public Intent findMatchOnConstraint(OperationServiceBridge bridge, Intent intent) {");
    _builder.newLine();
    {
        UniqueClause _uniqueClause = op.getUniqueClause();
        boolean _equals = Objects.equal(_uniqueClause, null);
        if (_equals) {
            _builder.append("\t\t\t");
            _builder.append("Intent existingRequest = bridge.findPendingRequestByActionWithExtras(Abstract");
            String _name_9 = op.getName();
            String _pascalize_2 = Strings.pascalize(_name_9);
            _builder.append(_pascalize_2, "\t\t\t");
            _builder.append("Operation.ACTION_");
            String _name_10 = op.getName();
            String _underscore_4 = Strings.underscore(_name_10);
            String _upperCase_4 = _underscore_4.toUpperCase();
            _builder.append(_upperCase_4, "\t\t\t");
            _builder.append(", intent.getExtras());");
            _builder.newLineIfNotEmpty();
            _builder.append("\t\t\t");
            _builder.newLine();
            _builder.append("\t\t\t");
            _builder.append("return existingRequest;");
            _builder.newLine();
            _builder.append("\t\t\t");
            _builder.newLine();
        } else {
            UniqueClause _uniqueClause_1 = op.getUniqueClause();
            if ((_uniqueClause_1 instanceof UniqueDeclaration)) {
                _builder.append("\t\t\t");
                UniqueClause _uniqueClause_2 = op.getUniqueClause();
                UniqueDeclaration uniqueDecl = ((UniqueDeclaration) _uniqueClause_2);
                _builder.newLineIfNotEmpty();
                _builder.append("\t\t\t");
                _builder.append("android.os.Bundle matcher = new android.os.Bundle();");
                _builder.newLine();
                _builder.append("\t\t\t");
                _builder.append("android.os.Bundle intentExtras = intent.getExtras();");
                _builder.newLine();
                {
                    EList<OperationArg> _args_2 = uniqueDecl.getArgs();
                    for (final OperationArg uarg : _args_2) {
                        _builder.append("\t\t\t");
                        _builder.append("matcher.");
                        OpArgType _type_1 = uarg.getType();
                        String _bundlePutMethodName = Extensions.toBundlePutMethodName(_type_1);
                        _builder.append(_bundlePutMethodName, "\t\t\t");
                        _builder.append("(");
                        _builder.newLineIfNotEmpty();
                        _builder.append("\t\t\t");
                        _builder.append("\t");
                        String _name_11 = op.getName();
                        String _pascalize_3 = Strings.pascalize(_name_11);
                        _builder.append(_pascalize_3, "\t\t\t\t");
                        _builder.append("Operation.EXTRA_");
                        String _name_12 = uarg.getName();
                        String _underscore_5 = Strings.underscore(_name_12);
                        String _upperCase_5 = _underscore_5.toUpperCase();
                        _builder.append(_upperCase_5, "\t\t\t\t");
                        _builder.append(", ");
                        _builder.newLineIfNotEmpty();
                        _builder.append("\t\t\t");
                        _builder.append("\t");
                        _builder.append("intentExtras.");
                        OpArgType _type_2 = uarg.getType();
                        String _bundleGetMethodName = Extensions.toBundleGetMethodName(_type_2);
                        _builder.append(_bundleGetMethodName, "\t\t\t\t");
                        _builder.append("(");
                        String _name_13 = op.getName();
                        String _pascalize_4 = Strings.pascalize(_name_13);
                        _builder.append(_pascalize_4, "\t\t\t\t");
                        _builder.append("Operation.EXTRA_");
                        String _name_14 = uarg.getName();
                        String _underscore_6 = Strings.underscore(_name_14);
                        String _upperCase_6 = _underscore_6.toUpperCase();
                        _builder.append(_upperCase_6, "\t\t\t\t");
                        _builder.append("));");
                        _builder.newLineIfNotEmpty();
                    }
                }
                _builder.append("\t\t\t");
                _builder.newLine();
                _builder.append("\t\t\t");
                _builder.append("Intent existingRequest = bridge.findPendingRequestByActionWithExtras(Abstract");
                String _name_15 = op.getName();
                String _pascalize_5 = Strings.pascalize(_name_15);
                _builder.append(_pascalize_5, "\t\t\t");
                _builder.append("Operation.ACTION_");
                String _name_16 = op.getName();
                String _underscore_7 = Strings.underscore(_name_16);
                String _upperCase_7 = _underscore_7.toUpperCase();
                _builder.append(_upperCase_7, "\t\t\t");
                _builder.append(", matcher);");
                _builder.newLineIfNotEmpty();
                _builder.newLine();
                _builder.append("\t\t\t");
                _builder.append("return existingRequest;");
                _builder.newLine();
            } else {
                _builder.append("\t\t\t");
                _builder.append("return null;");
                _builder.newLine();
            }
        }
    }
    _builder.append("\t\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("public static final Intent newIntent(");
    {
        EList<OperationArg> _args_3 = op.getArgs();
        boolean _hasElements = false;
        for (final OperationArg arg_2 : _args_3) {
            if (!_hasElements) {
                _hasElements = true;
            } else {
                _builder.appendImmediate(", ", "\t");
            }
            OpArgType _type_3 = arg_2.getType();
            String _typeLiteral_1 = Extensions.toTypeLiteral(_type_3);
            _builder.append(_typeLiteral_1, "\t");
            _builder.append(" ");
            String _name_17 = arg_2.getName();
            String _camelize_1 = Strings.camelize(_name_17);
            _builder.append(_camelize_1, "\t");
        }
    }
    _builder.append(") {");
    _builder.newLineIfNotEmpty();
    _builder.append("\t\t");
    _builder.append("Intent intent = new Intent(ACTION_");
    String _name_18 = op.getName();
    String _underscore_8 = Strings.underscore(_name_18);
    String _upperCase_8 = _underscore_8.toUpperCase();
    _builder.append(_upperCase_8, "\t\t");
    _builder.append(");");
    _builder.newLineIfNotEmpty();
    _builder.append("\t\t");
    _builder.append("intent.setClass(Mechanoid.getApplicationContext(), ");
    String _name_19 = svc.getName();
    String _formatServiceName_2 = Extensions.formatServiceName(_name_19);
    _builder.append(_formatServiceName_2, "\t\t");
    _builder.append(".class);");
    _builder.newLineIfNotEmpty();
    _builder.append("\t\t");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("Bundle extras = new Bundle();");
    _builder.newLine();
    {
        EList<OperationArg> _args_4 = op.getArgs();
        for (final OperationArg arg_3 : _args_4) {
            _builder.append("\t\t");
            _builder.append("extras.");
            OpArgType _type_4 = arg_3.getType();
            String _bundlePutMethodName_1 = Extensions.toBundlePutMethodName(_type_4);
            _builder.append(_bundlePutMethodName_1, "\t\t");
            _builder.append("(EXTRA_");
            String _name_20 = arg_3.getName();
            String _underscore_9 = Strings.underscore(_name_20);
            String _upperCase_9 = _underscore_9.toUpperCase();
            _builder.append(_upperCase_9, "\t\t");
            _builder.append(", ");
            String _name_21 = arg_3.getName();
            String _camelize_2 = Strings.camelize(_name_21);
            _builder.append(_camelize_2, "\t\t");
            _builder.append(");");
            _builder.newLineIfNotEmpty();
        }
    }
    _builder.append("\t\t");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("intent.putExtras(extras);");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("return intent;");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.newLine();
    _builder.append("\t");
    _builder.append("@Override");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("public OperationResult execute(OperationContext context) {");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("Args args = new Args();");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.newLine();
    {
        EList<OperationArg> _args_5 = op.getArgs();
        int _size = _args_5.size();
        boolean _greaterThan = (_size > 0);
        if (_greaterThan) {
            _builder.append("\t\t");
            _builder.append("Bundle extras = context.getIntent().getExtras();");
            _builder.newLine();
            {
                EList<OperationArg> _args_6 = op.getArgs();
                for (final OperationArg arg_4 : _args_6) {
                    _builder.append("\t\t");
                    _builder.append("args.");
                    String _name_22 = arg_4.getName();
                    String _camelize_3 = Strings.camelize(_name_22);
                    _builder.append(_camelize_3, "\t\t");
                    _builder.append(" = extras.");
                    OpArgType _type_5 = arg_4.getType();
                    String _bundleGetMethodName_1 = Extensions.toBundleGetMethodName(_type_5);
                    _builder.append(_bundleGetMethodName_1, "\t\t");
                    _builder.append("(EXTRA_");
                    String _name_23 = arg_4.getName();
                    String _underscore_10 = Strings.underscore(_name_23);
                    String _upperCase_10 = _underscore_10.toUpperCase();
                    _builder.append(_upperCase_10, "\t\t");
                    _builder.append(");");
                    _builder.newLineIfNotEmpty();
                }
            }
            _builder.append("\t\t");
            _builder.newLine();
        }
    }
    _builder.append("\t\t");
    _builder.append("return onExecute(context, args);");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t\t\t");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("protected abstract OperationResult onExecute(OperationContext context, Args args);");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    return _builder;
}
Also used : EList(org.eclipse.emf.common.util.EList) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation) UniqueClause(com.robotoworks.mechanoid.ops.opServiceModel.UniqueClause) UniqueDeclaration(com.robotoworks.mechanoid.ops.opServiceModel.UniqueDeclaration) OperationArg(com.robotoworks.mechanoid.ops.opServiceModel.OperationArg) ServiceBlock(com.robotoworks.mechanoid.ops.opServiceModel.ServiceBlock) OpArgType(com.robotoworks.mechanoid.ops.opServiceModel.OpArgType)

Aggregations

EList (org.eclipse.emf.common.util.EList)130 ElementParameterType (org.talend.designer.core.model.utils.emf.talendfile.ElementParameterType)35 ArrayList (java.util.ArrayList)33 List (java.util.List)25 StringConcatenation (org.eclipse.xtend2.lib.StringConcatenation)25 ProcessType (org.talend.designer.core.model.utils.emf.talendfile.ProcessType)21 NodeType (org.talend.designer.core.model.utils.emf.talendfile.NodeType)20 PersistenceException (org.talend.commons.exception.PersistenceException)19 ProcessItem (org.talend.core.model.properties.ProcessItem)16 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)15 ProxyRepositoryFactory (org.talend.core.repository.model.ProxyRepositoryFactory)15 HashMap (java.util.HashMap)13 Iterator (java.util.Iterator)11 Function1 (org.eclipse.xtext.xbase.lib.Functions.Function1)10 Item (org.talend.core.model.properties.Item)10 JobletProcessItem (org.talend.core.model.properties.JobletProcessItem)9 TreeNode (org.talend.designer.xmlmap.model.emf.xmlmap.TreeNode)9 IProxyRepositoryFactory (org.talend.repository.model.IProxyRepositoryFactory)9 ConnectionItem (org.talend.core.model.properties.ConnectionItem)8 ParametersType (org.talend.designer.core.model.utils.emf.talendfile.ParametersType)8