
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.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