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

com.reprezen.genflow.rapidml.doc.xtend.XGenerateSecuritySchemes Maven / Gradle / Ivy

/**
 * Copyright © 2013, 2016 Modelsolv, Inc.
 * All Rights Reserved.
 * 
 * NOTICE: All information contained herein is, and remains the property
 * of ModelSolv, Inc. See the file license.html in the root directory of
 * this project for further information.
 */
package com.reprezen.genflow.rapidml.doc.xtend;

import com.reprezen.genflow.common.doc.XDocHelper;
import com.reprezen.genflow.common.services.MethodServices;
import com.reprezen.genflow.common.xtend.XImportHelper;
import com.reprezen.genflow.common.xtend.XParameterHelper;
import com.reprezen.genflow.common.xtend.XSecuritySchemeImportHelper;
import com.reprezen.genflow.rapidml.doc.xtend.XGenerateInterfaces;
import com.reprezen.rapidml.AuthenticationTypes;
import com.reprezen.rapidml.Documentation;
import com.reprezen.rapidml.MessageParameter;
import com.reprezen.rapidml.SecurityScheme;
import com.reprezen.rapidml.SecuritySchemeLibrary;
import com.reprezen.rapidml.SecuritySchemeParameter;
import com.reprezen.rapidml.SecurityScope;
import com.reprezen.rapidml.TypedResponse;
import com.reprezen.rapidml.ZenModel;
import java.util.Collection;
import java.util.Set;
import org.eclipse.emf.common.util.EList;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.xbase.lib.Extension;

@SuppressWarnings("all")
public class XGenerateSecuritySchemes {
  @Extension
  private XDocHelper docHelper;
  
  private final XParameterHelper paramHelper = new XParameterHelper();
  
  private final XImportHelper importHelper;
  
  private final XSecuritySchemeImportHelper securitySchemeImportHelper;
  
  public XGenerateSecuritySchemes(final XImportHelper importHelper, final XSecuritySchemeImportHelper securitySchemeImportHelper, final XDocHelper docHelper) {
    this.importHelper = importHelper;
    this.securitySchemeImportHelper = securitySchemeImportHelper;
    this.docHelper = docHelper;
  }
  
  public String generateSecuritySchemes(final ZenModel model) {
    StringConcatenation _builder = new StringConcatenation();
    {
      SecuritySchemeLibrary _securitySchemesLibrary = model.getSecuritySchemesLibrary();
      boolean _tripleNotEquals = (_securitySchemesLibrary != null);
      if (_tripleNotEquals) {
        _builder.append("\t");
        _builder.append("
"); _builder.newLine(); _builder.append("\t\t"); _builder.append("
"); _builder.newLine(); _builder.append("\t\t\t"); _builder.append("

"); String _name = model.getSecuritySchemesLibrary().getName(); _builder.append(_name, "\t\t\t"); _builder.append("

"); _builder.newLineIfNotEmpty(); _builder.append("\t"); _builder.append("
"); _builder.newLine(); _builder.append("\t"); _builder.append("
"); _builder.newLine(); { EList _securitySchemes = model.getSecuritySchemesLibrary().getSecuritySchemes(); for(final SecurityScheme securityScheme : _securitySchemes) { _builder.append("\t "); CharSequence _generateSecurityScheme = this.generateSecurityScheme(securityScheme); _builder.append(_generateSecurityScheme, "\t "); _builder.newLineIfNotEmpty(); } } _builder.append("\t"); _builder.append("
"); _builder.newLine(); _builder.append("
"); _builder.newLine(); } } { Set _keySet = this.securitySchemeImportHelper.importedTypes.keySet(); for(final SecuritySchemeLibrary schemeModel : _keySet) { CharSequence _generateImportedSecuritySchemes = this.generateImportedSecuritySchemes(schemeModel); _builder.append(_generateImportedSecuritySchemes); _builder.newLineIfNotEmpty(); } } return _builder.toString(); } protected CharSequence generateSecurityScheme(final SecurityScheme securityScheme) { StringConcatenation _builder = new StringConcatenation(); _builder.append(" "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append("
"); _builder.newLine(); _builder.append(" "); _builder.append("
"); _builder.newLine(); _builder.append(" "); _builder.append("

"); _builder.newLine(); _builder.append(" "); _builder.append(""); _builder.newLine(); _builder.append(" "); _builder.append(""); String _name = securityScheme.getName(); _builder.append(_name, " "); _builder.append(" "); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append("("); AuthenticationTypes _type = securityScheme.getType(); _builder.append(_type, " "); _builder.append(")"); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append("

"); _builder.newLine(); _builder.append(" "); _builder.append("
"); _builder.newLine(); _builder.append(" "); _builder.append("
"); _builder.newLine(); _builder.append(" "); CharSequence _generateDocItem = this.docHelper.generateDocItem(securityScheme); _builder.append(_generateDocItem, " "); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.newLine(); _builder.append(" "); _builder.append("Method Invocation"); _builder.newLine(); _builder.append(" "); _builder.append("
    "); _builder.newLine(); { boolean _isEmpty = securityScheme.getParameters().isEmpty(); boolean _not = (!_isEmpty); if (_not) { _builder.append(" "); _builder.append("
  • "); _builder.newLine(); _builder.append(" "); _builder.append(" "); CharSequence _tableWithHeader = XDocHelper.tableWithHeader("Authorization Parameters", "Name", "Location", "Type", "Documentation"); _builder.append(_tableWithHeader, " "); _builder.newLineIfNotEmpty(); { EList _parameters = securityScheme.getParameters(); for(final MessageParameter param : _parameters) { _builder.append(" "); _builder.append(" "); _builder.append(""); _builder.newLine(); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append(""); String _name_1 = param.getName(); _builder.append(_name_1, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append(""); String _string = param.getType().toString(); _builder.append(_string, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append(""); String _paramType = this.paramHelper.paramType(param.getSourceReference(), this.importHelper); _builder.append(_paramType, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append(""); String _generateDoc = null; if (param!=null) { _generateDoc=this.docHelper.generateDoc(param); } _builder.append(_generateDoc, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(" "); _builder.append(""); _builder.newLine(); } } _builder.append(" "); _builder.append(""); _builder.newLine(); _builder.append(" "); _builder.append("
  • "); _builder.newLine(); } } { boolean _isEmpty_1 = securityScheme.getErrorResponses().isEmpty(); boolean _not_1 = (!_isEmpty_1); if (_not_1) { _builder.append("
  • "); _builder.newLine(); _builder.append(" "); CharSequence _tableWithHeader_1 = XDocHelper.tableWithHeader("Error Responses", "Code", "Description", "Documentation"); _builder.append(_tableWithHeader_1, " "); _builder.newLineIfNotEmpty(); { EList _errorResponses = securityScheme.getErrorResponses(); for(final TypedResponse response : _errorResponses) { _builder.append(" "); CharSequence _generateErrorResponse = this.generateErrorResponse(response); _builder.append(_generateErrorResponse, " "); _builder.newLineIfNotEmpty(); } } _builder.append(" "); _builder.append(""); _builder.newLine(); _builder.append("
  • "); _builder.newLine(); } } _builder.append(" "); _builder.append("
"); _builder.newLine(); _builder.append(" "); _builder.newLine(); { boolean _isEmpty_2 = securityScheme.getScopes().isEmpty(); boolean _not_2 = (!_isEmpty_2); if (_not_2) { CharSequence _tableWithHeader_2 = XDocHelper.tableWithHeader("Defined Scopes", "Name", "Documentation"); _builder.append(_tableWithHeader_2); _builder.newLineIfNotEmpty(); { EList _scopes = securityScheme.getScopes(); for(final SecurityScope scope : _scopes) { _builder.append(""); _builder.newLine(); _builder.append(" "); _builder.append(""); String _name_2 = scope.getName(); _builder.append(_name_2, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(""); Documentation _documentation = scope.getDocumentation(); String _text = null; if (_documentation!=null) { _text=_documentation.getText(); } _builder.append(_text, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(""); _builder.newLine(); } } _builder.append(""); _builder.newLine(); } } { boolean _isEmpty_3 = securityScheme.getSettings().isEmpty(); boolean _not_3 = (!_isEmpty_3); if (_not_3) { CharSequence _tableWithHeader_3 = XDocHelper.tableWithHeader("Settings", "Name", "Documentation", "Value"); _builder.append(_tableWithHeader_3); _builder.newLineIfNotEmpty(); { EList _settings = securityScheme.getSettings(); for(final SecuritySchemeParameter setting : _settings) { _builder.append(""); _builder.newLine(); _builder.append(" "); _builder.append(""); String _name_3 = setting.getName(); _builder.append(_name_3, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(""); Documentation _documentation_1 = setting.getDocumentation(); String _text_1 = null; if (_documentation_1!=null) { _text_1=_documentation_1.getText(); } _builder.append(_text_1, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(""); String _value = setting.getValue(); _builder.append(_value, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(""); _builder.newLine(); } } _builder.append(""); _builder.newLine(); } } _builder.append(" "); _builder.newLine(); _builder.append(" "); _builder.append("
"); _builder.newLine(); _builder.append(" "); _builder.append("
"); _builder.newLine(); return _builder; } private CharSequence generateErrorResponse(final TypedResponse response) { StringConcatenation _builder = new StringConcatenation(); _builder.append(""); _builder.newLine(); _builder.append(" "); _builder.append("Error Response"); _builder.newLine(); _builder.append(" "); _builder.append(""); int _statusCode = response.getStatusCode(); _builder.append(_statusCode, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(""); String _responseStatusCodeDescription = MethodServices.getResponseStatusCodeDescription(response.getStatusCode()); _builder.append(_responseStatusCodeDescription, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(""); String _generateDoc = this.docHelper.generateDoc(response); _builder.append(_generateDoc, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(""); _builder.newLine(); return _builder; } private CharSequence generateImportedSecuritySchemes(final SecuritySchemeLibrary model) { StringConcatenation _builder = new StringConcatenation(); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append("
"); _builder.newLine(); _builder.append(" "); _builder.append("
"); _builder.newLine(); _builder.append(" "); _builder.append("

"); String _modelQualifiedName = this.securitySchemeImportHelper.getModelQualifiedName(model); _builder.append(_modelQualifiedName, " "); _builder.append("

"); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append("
"); _builder.newLine(); _builder.append(" "); _builder.append("
"); _builder.newLine(); { Collection _get = this.securitySchemeImportHelper.importedTypes.get(model); for(final SecurityScheme dataType : _get) { _builder.append(" "); CharSequence _generateSecurityScheme = this.generateSecurityScheme(dataType); _builder.append(_generateSecurityScheme, " "); _builder.newLineIfNotEmpty(); } } _builder.append(" "); _builder.append("
"); _builder.newLine(); _builder.append(" "); _builder.append("
"); return _builder; } public boolean hasSecuritySchemes(final ZenModel model) { boolean _xblockexpression = false; { final SecuritySchemeLibrary library = model.getSecuritySchemesLibrary(); boolean _xifexpression = false; if ((library != null)) { boolean _isEmpty = library.getSecuritySchemes().isEmpty(); _xifexpression = (!_isEmpty); } else { _xifexpression = false; } _xblockexpression = _xifexpression; } return _xblockexpression; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy