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

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

There is a newer version: 1.4.2
Show newest version
/**
 * 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.SingleValueType;
import com.reprezen.rapidml.SourceReference;
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("

"); SecuritySchemeLibrary _securitySchemesLibrary_1 = model.getSecuritySchemesLibrary(); String _name = _securitySchemesLibrary_1.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(); { SecuritySchemeLibrary _securitySchemesLibrary_2 = model.getSecuritySchemesLibrary(); EList _securitySchemes = _securitySchemesLibrary_2.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(); { EList _parameters = securityScheme.getParameters(); boolean _isEmpty = _parameters.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_1 = securityScheme.getParameters(); for(final MessageParameter param : _parameters_1) { _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(""); SingleValueType _type_1 = param.getType(); String _string = _type_1.toString(); _builder.append(_string, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append(""); SourceReference _sourceReference = param.getSourceReference(); String _paramType = this.paramHelper.paramType(_sourceReference, 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(); } } { EList _errorResponses = securityScheme.getErrorResponses(); boolean _isEmpty_1 = _errorResponses.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_1 = securityScheme.getErrorResponses(); for(final TypedResponse response : _errorResponses_1) { _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(); { EList _scopes = securityScheme.getScopes(); boolean _isEmpty_2 = _scopes.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_1 = securityScheme.getScopes(); for(final SecurityScope scope : _scopes_1) { _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(); } } { EList _settings = securityScheme.getSettings(); boolean _isEmpty_3 = _settings.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_1 = securityScheme.getSettings(); for(final SecuritySchemeParameter setting : _settings_1) { _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_1 = response.getStatusCode(); _builder.append(_statusCode_1, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(""); int _statusCode_2 = response.getStatusCode(); String _responseStatusCodeDescription = MethodServices.getResponseStatusCodeDescription(_statusCode_2); _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)) { EList _securitySchemes = library.getSecuritySchemes(); boolean _isEmpty = _securitySchemes.isEmpty(); _xifexpression = (!_isEmpty); } else { _xifexpression = false; } _xblockexpression = _xifexpression; } return _xblockexpression; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy