Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.reprezen.genflow.rapidml.doc.xtend.XGenerateInterfaces 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.google.common.base.Objects;
import com.google.common.base.Optional;
import com.reprezen.genflow.api.zenmodel.util.CommonServices;
import com.reprezen.genflow.common.doc.XDocHelper;
import com.reprezen.genflow.common.services.DocServices;
import com.reprezen.genflow.common.xtend.XDataTypeExtensions;
import com.reprezen.genflow.common.xtend.XImportHelper;
import com.reprezen.genflow.common.xtend.XParameterHelper;
import com.reprezen.rapidml.AuthenticationMethod;
import com.reprezen.rapidml.AuthenticationTypes;
import com.reprezen.rapidml.CollectionParameter;
import com.reprezen.rapidml.CollectionRealizationEnum;
import com.reprezen.rapidml.CollectionResource;
import com.reprezen.rapidml.Constraint;
import com.reprezen.rapidml.Enumeration;
import com.reprezen.rapidml.Feature;
import com.reprezen.rapidml.HTTPMethods;
import com.reprezen.rapidml.HasSecurityValue;
import com.reprezen.rapidml.MediaType;
import com.reprezen.rapidml.MessageParameter;
import com.reprezen.rapidml.Method;
import com.reprezen.rapidml.NamedLinkDescriptor;
import com.reprezen.rapidml.ObjectRealization;
import com.reprezen.rapidml.Parameter;
import com.reprezen.rapidml.PrimitiveProperty;
import com.reprezen.rapidml.PropertyRealization;
import com.reprezen.rapidml.RealizationContainer;
import com.reprezen.rapidml.ReferenceElement;
import com.reprezen.rapidml.ReferenceEmbed;
import com.reprezen.rapidml.ReferenceLink;
import com.reprezen.rapidml.ReferenceProperty;
import com.reprezen.rapidml.ReferenceTreatment;
import com.reprezen.rapidml.ResourceAPI;
import com.reprezen.rapidml.ResourceDefinition;
import com.reprezen.rapidml.SecurityScheme;
import com.reprezen.rapidml.SecurityScope;
import com.reprezen.rapidml.ServiceDataResource;
import com.reprezen.rapidml.SingleValueType;
import com.reprezen.rapidml.SourceReference;
import com.reprezen.rapidml.Structure;
import com.reprezen.rapidml.TypedMessage;
import com.reprezen.rapidml.TypedRequest;
import com.reprezen.rapidml.TypedResponse;
import com.reprezen.rapidml.URI;
import com.reprezen.rapidml.URIParameter;
import com.reprezen.rapidml.UserDefinedType;
import com.reprezen.rapidml.ZenModel;
import com.reprezen.rapidml.realization.processor.CycleDetector;
import com.reprezen.rapidml.util.InheritanceUtils;
import com.reprezen.rapidml.util.TagUtils;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.xbase.lib.Extension;
import org.eclipse.xtext.xbase.lib.Functions.Function1;
import org.eclipse.xtext.xbase.lib.IterableExtensions;
import org.eclipse.xtext.xbase.lib.ListExtensions;
@SuppressWarnings("all")
public class XGenerateInterfaces {
@Extension
private XDocHelper docHelper;
private final XParameterHelper parameterHelper = new XParameterHelper();
private final DocServices docServices = new DocServices();
private final CommonServices commonServices = new CommonServices();
private final XImportHelper importHelper;
private boolean isLiveView = false;
public XGenerateInterfaces(final XImportHelper importHelper, final XDocHelper docHelper) {
this.importHelper = importHelper;
this.docHelper = docHelper;
}
public CharSequence generateInterfaces(final ZenModel zenModel) {
StringConcatenation _builder = new StringConcatenation();
{
EList _resourceAPIs = zenModel.getResourceAPIs();
for(final ResourceAPI iface : _resourceAPIs) {
CharSequence _generateInterface = this.generateInterface(iface, zenModel);
_builder.append(_generateInterface, "");
_builder.newLineIfNotEmpty();
}
}
return _builder;
}
private CharSequence generateInterface(final ResourceAPI resourceAPI, final ZenModel zenModel) {
CharSequence _xblockexpression = null;
{
final String alias = this.importHelper.getAlias(resourceAPI);
String _xifexpression = null;
if ((alias != null)) {
StringConcatenation _builder = new StringConcatenation();
_builder.append(" ");
_builder.append("[as ");
_builder.append(alias, " ");
_builder.append(" ]");
_xifexpression = _builder.toString();
}
final String aliasNote = _xifexpression;
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append(" ");
_builder_1.newLine();
_builder_1.append("");
_builder_1.newLineIfNotEmpty();
_builder_1.append(" ");
_builder_1.append("
");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.append("
");
String _nameOrTitle = this.docHelper.nameOrTitle(resourceAPI);
_builder_1.append(_nameOrTitle, " ");
_builder_1.append(" (");
String _baseURI = resourceAPI.getBaseURI();
_builder_1.append(_baseURI, " ");
_builder_1.append(") ");
_builder_1.newLineIfNotEmpty();
_builder_1.append(" ");
_builder_1.append("
");
String _modelFullQualifiedName = this.importHelper.getModelFullQualifiedName(resourceAPI);
_builder_1.append(_modelFullQualifiedName, " ");
_builder_1.append(aliasNote, " ");
_builder_1.append("
");
_builder_1.newLineIfNotEmpty();
_builder_1.append(" ");
_builder_1.append("
");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.append("
");
_builder_1.newLine();
_builder_1.append(" ");
CharSequence _generateDocItem = this.docHelper.generateDocItem(resourceAPI);
_builder_1.append(_generateDocItem, " ");
_builder_1.newLineIfNotEmpty();
_builder_1.append(" ");
CharSequence _generateSecuritySchemeUsage = this.generateSecuritySchemeUsage(resourceAPI);
_builder_1.append(_generateSecuritySchemeUsage, " ");
_builder_1.newLineIfNotEmpty();
{
EList _ownedResourceDefinitions = resourceAPI.getOwnedResourceDefinitions();
for(final ResourceDefinition resource : _ownedResourceDefinitions) {
_builder_1.append(" ");
CharSequence _generateResource = this.generateResource(((ServiceDataResource) resource));
_builder_1.append(_generateResource, " ");
_builder_1.newLineIfNotEmpty();
}
}
_builder_1.append(" ");
_builder_1.append("
");
_builder_1.newLine();
_builder_1.append("
");
_builder_1.newLine();
_xblockexpression = _builder_1;
}
return _xblockexpression;
}
private CharSequence generateResource(final ServiceDataResource resource) {
StringConcatenation _builder = new StringConcatenation();
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("
");
_builder.newLine();
_builder.append(" ");
_builder.append("
");
_builder.newLine();
{
if ((resource instanceof CollectionResource)) {
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
} else {
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
}
}
_builder.append(" ");
String _name_1 = resource.getName();
_builder.append(_name_1, " ");
_builder.append(" ");
URI _uRI = resource.getURI();
_builder.append(_uRI, " ");
_builder.append("
");
_builder.newLineIfNotEmpty();
{
Structure _dataType = resource.getDataType();
boolean _tripleNotEquals = (_dataType != null);
if (_tripleNotEquals) {
_builder.append(" ");
_builder.append(" ");
Structure _dataType_1 = resource.getDataType();
String _qualifiedName = this.importHelper.getQualifiedName(_dataType_1);
_builder.append(_qualifiedName, " ");
_builder.append("
");
_builder.newLineIfNotEmpty();
}
}
{
boolean _isDefault = resource.isDefault();
if (_isDefault) {
_builder.append(" ");
_builder.append("Default ");
_builder.newLine();
}
}
_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(resource);
_builder.append(_generateDocItem, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("
Resource Properties ");
_builder.newLine();
_builder.append(" ");
_builder.append("
");
_builder.newLine();
_builder.append(" ");
EList _mediaTypes = resource.getMediaTypes();
CharSequence _generateMediaTypes = this.generateMediaTypes(_mediaTypes);
_builder.append(_generateMediaTypes, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
CharSequence _generateLinkDescriptors = this.generateLinkDescriptors(resource);
_builder.append(_generateLinkDescriptors, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("
");
_builder.newLine();
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
CharSequence _generateSecuritySchemeUsage = this.generateSecuritySchemeUsage(resource);
_builder.append(_generateSecuritySchemeUsage, " ");
_builder.newLineIfNotEmpty();
_builder.newLine();
{
boolean _and = false;
URI _uRI_1 = resource.getURI();
boolean _tripleNotEquals_1 = (_uRI_1 != null);
if (!_tripleNotEquals_1) {
_and = false;
} else {
URI _uRI_2 = resource.getURI();
EList
_uriParameters = _uRI_2.getUriParameters();
boolean _isEmpty = _uriParameters.isEmpty();
boolean _not = (!_isEmpty);
_and = _not;
}
if (_and) {
_builder.append(" ");
_builder.append("Parameters ");
_builder.newLine();
_builder.append(" ");
URI _uRI_3 = resource.getURI();
EList _uriParameters_1 = _uRI_3.getUriParameters();
CharSequence _generateParams = this.generateParams(_uriParameters_1);
_builder.append(_generateParams, " ");
_builder.newLineIfNotEmpty();
}
}
_builder.newLine();
{
if ((resource instanceof CollectionResource)) {
_builder.append(" ");
_builder.newLine();
{
EList _collectionParameters = ((CollectionResource) resource).getCollectionParameters();
boolean _isEmpty_1 = _collectionParameters.isEmpty();
boolean _not_1 = (!_isEmpty_1);
if (_not_1) {
_builder.append(" ");
_builder.append(" ");
_builder.append("Collection Parameters ");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
EList _collectionParameters_1 = ((CollectionResource) resource).getCollectionParameters();
CharSequence _generateParams_1 = this.generateParams(_collectionParameters_1);
_builder.append(_generateParams_1, " ");
_builder.newLineIfNotEmpty();
}
}
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
{
CollectionRealizationEnum _resourceRealizationKind = ((CollectionResource) resource).getResourceRealizationKind();
boolean _equals = Objects.equal(_resourceRealizationKind,
CollectionRealizationEnum.REFERENCE_LINK_LIST);
if (_equals) {
_builder.append(" ");
_builder.append(" ");
_builder.append("Data Properties ");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.append(" ");
_builder.append("");
Structure _dataType_2 = ((CollectionResource)resource).getDataType();
String _name_2 = _dataType_2.getName();
_builder.append(_name_2, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.append(" ");
EList _referenceLinks = ((CollectionResource)resource).getReferenceLinks();
ReferenceLink _get = _referenceLinks.get(0);
ResourceDefinition _targetResource = _get.getTargetResource();
final ServiceDataResource defResource = ((ServiceDataResource) _targetResource);
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.append(" ");
_builder.append("");
String _name_3 = defResource.getName();
_builder.append(_name_3, " ");
_builder.append("* ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
{
NamedLinkDescriptor _defaultLinkDescriptor = defResource.getDefaultLinkDescriptor();
boolean _tripleNotEquals_2 = (_defaultLinkDescriptor != null);
if (_tripleNotEquals_2) {
{
NamedLinkDescriptor _defaultLinkDescriptor_1 = defResource.getDefaultLinkDescriptor();
EList _allIncludedProperties = _defaultLinkDescriptor_1.getAllIncludedProperties();
final Function1 _function = (PropertyRealization it) -> {
return it.getBaseProperty();
};
List _map = ListExtensions.map(_allIncludedProperties, _function);
for(final Feature feature : _map) {
_builder.append(" ");
_builder.append(" ");
_builder.append(" ");
CharSequence _generateReferenceTreatmentPropertyRow = this.generateReferenceTreatmentPropertyRow(feature, Integer.valueOf(1), false);
_builder.append(_generateReferenceTreatmentPropertyRow, " ");
_builder.newLineIfNotEmpty();
}
}
}
}
_builder.append(" ");
_builder.append(" ");
_builder.append("
");
_builder.newLine();
} else {
_builder.append(" ");
_builder.append(" ");
CharSequence _generateResourceDataType = this.generateResourceDataType(resource);
_builder.append(_generateResourceDataType, " ");
_builder.newLineIfNotEmpty();
}
}
} else {
_builder.append(" ");
CharSequence _generateResourceDataType_1 = this.generateResourceDataType(resource);
_builder.append(_generateResourceDataType_1, " ");
_builder.newLineIfNotEmpty();
}
}
_builder.newLine();
{
EList _methods = resource.getMethods();
for(final Method method : _methods) {
_builder.append(" ");
CharSequence _generateMethod = this.generateMethod(method);
_builder.append(_generateMethod, " ");
_builder.newLineIfNotEmpty();
}
}
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
_builder.append("
");
_builder.newLine();
return _builder;
}
private CharSequence generateLinkDescriptors(final ServiceDataResource resource) {
StringConcatenation _builder = new StringConcatenation();
{
EList _definedLinkDescriptors = resource.getDefinedLinkDescriptors();
boolean _isEmpty = _definedLinkDescriptors.isEmpty();
boolean _not = (!_isEmpty);
if (_not) {
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("Link Descriptors ");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
{
EList _definedLinkDescriptors_1 = resource.getDefinedLinkDescriptors();
boolean _hasElements = false;
for(final NamedLinkDescriptor link : _definedLinkDescriptors_1) {
if (!_hasElements) {
_hasElements = true;
} else {
_builder.appendImmediate(" ", " ");
}
_builder.append(" ");
String _name = link.getName();
_builder.append(_name, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("\t\t\t\t\t ");
_builder.append("(");
{
EList _allIncludedProperties = link.getAllIncludedProperties();
final Function1 _function = (PropertyRealization it) -> {
return it.getBaseProperty();
};
List _map = ListExtensions.map(_allIncludedProperties, _function);
boolean _hasElements_1 = false;
for(final Feature feature : _map) {
if (!_hasElements_1) {
_hasElements_1 = true;
} else {
_builder.appendImmediate(", ", " \t\t\t\t\t ");
}
_builder.append("");
String _name_1 = feature.getName();
_builder.append(_name_1, " \t\t\t\t\t ");
_builder.append("
");
}
}
_builder.append(")");
_builder.newLineIfNotEmpty();
{
boolean _isDefault = link.isDefault();
if (_isDefault) {
_builder.append(" ");
_builder.append("\t\t\t\t\t ");
_builder.append("Default ");
_builder.newLine();
}
}
}
}
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.newLine();
}
}
return _builder;
}
private CharSequence generateParams(final List extends Parameter> params) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("Name ");
_builder.newLine();
_builder.append(" ");
_builder.append("Documentation ");
_builder.newLine();
_builder.append(" ");
_builder.append("Default ");
_builder.newLine();
_builder.append(" ");
_builder.append("Property ");
_builder.newLine();
_builder.append(" ");
_builder.append("Type ");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
{
for(final Parameter param : params) {
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
String _name = param.getName();
_builder.append(_name, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
{
boolean _isRequired = param.isRequired();
boolean _not = (!_isRequired);
if (_not) {
_builder.append("(optional )");
}
}
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
_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("");
String _default = param.getDefault();
_builder.append(_default, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.append("");
SourceReference _sourceReference = param.getSourceReference();
String _paramName = this.parameterHelper.paramName(_sourceReference);
_builder.append(_paramName, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.append("");
SourceReference _sourceReference_1 = param.getSourceReference();
String _paramType = this.parameterHelper.paramType(_sourceReference_1, this.importHelper);
_builder.append(_paramType, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
}
}
_builder.append("
");
_builder.newLine();
return _builder;
}
private CharSequence generateRealizationTemplateDetails(final RealizationContainer resource) {
CharSequence _xblockexpression = null;
{
if ((!this.isLiveView)) {
StringConcatenation _builder = new StringConcatenation();
return _builder.toString();
}
final Optional templateNameTag = TagUtils.getTagWithName(resource, TagUtils.REALIZATION_TEMPLATE_NAME);
boolean _isWithDefaultRealization = resource.isWithDefaultRealization();
final boolean isInline = (!_isWithDefaultRealization);
String _xifexpression = null;
if (isInline) {
_xifexpression = "(inline)";
} else {
String _realizationName = resource.getRealizationName();
String _xifexpression_1 = null;
if ((resource instanceof CollectionResource)) {
_xifexpression_1 = " [*]";
} else {
_xifexpression_1 = "";
}
_xifexpression = (_realizationName + _xifexpression_1);
}
final String realizationName = _xifexpression;
StringConcatenation _builder_1 = new StringConcatenation();
{
boolean _isPresent = templateNameTag.isPresent();
if (_isPresent) {
_builder_1.append("Realization: ");
_builder_1.append(realizationName, "");
_builder_1.newLineIfNotEmpty();
{
if ((!isInline)) {
_builder_1.append("");
_builder_1.newLineIfNotEmpty();
_builder_1.append("\t");
_builder_1.append("");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append(" ");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.newLine();
_builder_1.append("");
_builder_1.newLineIfNotEmpty();
_builder_1.append("\t");
_builder_1.append("
");
_builder_1.newLine();
_builder_1.append("
");
_builder_1.newLine();
}
}
}
}
_xblockexpression = _builder_1;
}
return _xblockexpression;
}
private CharSequence generateResourceDataType(final ServiceDataResource resource, final String headerMessage) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("Data Properties ");
_builder.newLine();
CharSequence _generateRealizationTemplateDetails = this.generateRealizationTemplateDetails(resource);
_builder.append(_generateRealizationTemplateDetails, "");
_builder.newLineIfNotEmpty();
_builder.append(headerMessage, "");
_builder.newLineIfNotEmpty();
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("Name ");
_builder.newLine();
_builder.append(" ");
_builder.append("Type ");
_builder.newLine();
_builder.append(" ");
_builder.append("Documentation ");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
_builder.newLine();
{
Structure _dataType = resource.getDataType();
EList _ownedFeatures = _dataType.getOwnedFeatures();
final Function1 _function = (Feature e) -> {
boolean _hasReferenceTreatment = this.hasReferenceTreatment(resource, e);
return Boolean.valueOf((!_hasReferenceTreatment));
};
Iterable _filter = IterableExtensions.filter(_ownedFeatures, _function);
for(final Feature aFeature : _filter) {
{
boolean _isIncluded = resource.isIncluded(aFeature);
if (_isIncluded) {
PropertyRealization _includedProperty = this.getIncludedProperty(resource, aFeature);
CharSequence _generateIncludedPropertyRow = this.generateIncludedPropertyRow(_includedProperty);
_builder.append(_generateIncludedPropertyRow, "");
_builder.newLineIfNotEmpty();
}
}
}
}
CharSequence _generateReferenceTreatments = this.generateReferenceTreatments(resource);
_builder.append(_generateReferenceTreatments, "");
_builder.newLineIfNotEmpty();
_builder.append("
");
_builder.newLine();
return _builder;
}
private CharSequence generateResourceDataType(final ServiceDataResource resource) {
return this.generateResourceDataType(resource, "");
}
private CharSequence generateMessageName(final TypedMessage message) {
StringConcatenation _builder = new StringConcatenation();
{
ResourceDefinition _resourceType = message.getResourceType();
boolean _tripleNotEquals = (_resourceType != null);
if (_tripleNotEquals) {
_builder.append(" ");
_builder.newLine();
_builder.append("");
ResourceDefinition _resourceType_2 = message.getResourceType();
String _name = _resourceType_2.getName();
_builder.append(_name, "");
_builder.append(" ");
_builder.newLineIfNotEmpty();
} else {
Structure _actualType = message.getActualType();
boolean _tripleNotEquals_1 = (_actualType != null);
if (_tripleNotEquals_1) {
_builder.append(" ");
_builder.newLine();
_builder.append("");
Structure _actualType_2 = message.getActualType();
String _name_1 = _actualType_2.getName();
_builder.append(_name_1, "");
_builder.append(" ");
_builder.newLineIfNotEmpty();
}
}
}
return _builder;
}
private CharSequence generateMessageDataType(final TypedMessage message) {
StringConcatenation _builder = new StringConcatenation();
{
boolean _or = false;
EList _referenceTreatments = message.getReferenceTreatments();
boolean _isEmpty = _referenceTreatments.isEmpty();
boolean _not = (!_isEmpty);
if (_not) {
_or = true;
} else {
Structure _actualType = message.getActualType();
EList _ownedFeatures = _actualType.getOwnedFeatures();
final Function1 _function = (Feature e) -> {
boolean _and = false;
boolean _hasReferenceTreatment = this.hasReferenceTreatment(message, e);
boolean _not_1 = (!_hasReferenceTreatment);
if (!_not_1) {
_and = false;
} else {
boolean _isIncluded = message.isIncluded(e);
_and = _isIncluded;
}
return Boolean.valueOf(_and);
};
Iterable _filter = IterableExtensions.filter(_ownedFeatures, _function);
boolean _isEmpty_1 = IterableExtensions.isEmpty(_filter);
boolean _not_1 = (!_isEmpty_1);
_or = _not_1;
}
if (_or) {
_builder.append("Data Properties ");
_builder.newLine();
CharSequence _generateRealizationTemplateDetails = this.generateRealizationTemplateDetails(message);
_builder.append(_generateRealizationTemplateDetails, "");
_builder.newLineIfNotEmpty();
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("Name ");
_builder.newLine();
_builder.append(" ");
_builder.append("Type ");
_builder.newLine();
_builder.append(" ");
_builder.append("Documentation ");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
_builder.newLine();
{
Structure _actualType_1 = message.getActualType();
EList _ownedFeatures_1 = _actualType_1.getOwnedFeatures();
final Function1 _function_1 = (Feature e) -> {
boolean _hasReferenceTreatment = this.hasReferenceTreatment(message, e);
return Boolean.valueOf((!_hasReferenceTreatment));
};
Iterable _filter_1 = IterableExtensions.filter(_ownedFeatures_1, _function_1);
for(final Feature aFeature : _filter_1) {
{
boolean _isIncluded = message.isIncluded(aFeature);
if (_isIncluded) {
PropertyRealization _includedProperty = this.getIncludedProperty(message, aFeature);
CharSequence _generateIncludedPropertyRow = this.generateIncludedPropertyRow(_includedProperty);
_builder.append(_generateIncludedPropertyRow, "");
_builder.newLineIfNotEmpty();
}
}
}
}
CharSequence _generateReferenceTreatments = this.generateReferenceTreatments(message);
_builder.append(_generateReferenceTreatments, "");
_builder.newLineIfNotEmpty();
_builder.append("
");
_builder.newLine();
}
}
return _builder;
}
private CharSequence generateMethod(final Method method) {
StringConcatenation _builder = new StringConcatenation();
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append("");
HTTPMethods _httpMethod = method.getHttpMethod();
_builder.append(_httpMethod, "");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append("");
String _id = method.getId();
_builder.append(_id, "");
_builder.append("
");
_builder.newLineIfNotEmpty();
_builder.newLine();
CharSequence _generateDocItem = this.docHelper.generateDocItem(method);
_builder.append(_generateDocItem, "");
_builder.newLineIfNotEmpty();
_builder.newLine();
CharSequence _generateSecuritySchemeUsage = this.generateSecuritySchemeUsage(method);
_builder.append(_generateSecuritySchemeUsage, "");
_builder.newLineIfNotEmpty();
_builder.newLine();
{
boolean _or = false;
TypedRequest _request = method.getRequest();
boolean _tripleNotEquals = (_request != null);
if (_tripleNotEquals) {
_or = true;
} else {
EList _responses = method.getResponses();
boolean _isEmpty = _responses.isEmpty();
boolean _not = (!_isEmpty);
_or = _not;
}
if (_or) {
_builder.append("");
}
}
_builder.newLineIfNotEmpty();
{
TypedRequest _request_1 = method.getRequest();
boolean _tripleNotEquals_1 = (_request_1 != null);
if (_tripleNotEquals_1) {
TypedRequest _request_2 = method.getRequest();
CharSequence _generateRequest = this.generateRequest(_request_2);
_builder.append(_generateRequest, "");
_builder.newLineIfNotEmpty();
}
}
{
EList _responses_1 = method.getResponses();
boolean _isEmpty_1 = _responses_1.isEmpty();
boolean _not_1 = (!_isEmpty_1);
if (_not_1) {
{
EList _responses_2 = method.getResponses();
for(final TypedResponse response : _responses_2) {
CharSequence _generateResponse = this.generateResponse(response);
_builder.append(_generateResponse, "");
_builder.newLineIfNotEmpty();
}
}
}
}
{
boolean _or_1 = false;
TypedRequest _request_3 = method.getRequest();
boolean _tripleNotEquals_2 = (_request_3 != null);
if (_tripleNotEquals_2) {
_or_1 = true;
} else {
EList _responses_3 = method.getResponses();
boolean _isEmpty_2 = _responses_3.isEmpty();
boolean _not_2 = (!_isEmpty_2);
_or_1 = _not_2;
}
if (_or_1) {
_builder.append(" ");
}
}
_builder.newLineIfNotEmpty();
return _builder;
}
private CharSequence generateRequest(final TypedRequest request) {
CharSequence _xblockexpression = null;
{
String id = this.docServices.randomId();
StringConcatenation _builder = new StringConcatenation();
{
if ((request != null)) {
_builder.append("");
_builder.newLine();
_builder.append("Request ");
CharSequence _generateMessageName = this.generateMessageName(request);
_builder.append(_generateMessageName, "");
_builder.newLineIfNotEmpty();
{
boolean _hasOverridedMediaTypes = this.hasOverridedMediaTypes(request);
if (_hasOverridedMediaTypes) {
_builder.append("Properties ");
_builder.newLine();
_builder.append("");
_builder.newLine();
EList _mediaTypes = request.getMediaTypes();
CharSequence _generateMediaTypes = this.generateMediaTypes(_mediaTypes);
_builder.append(_generateMediaTypes, "");
_builder.newLineIfNotEmpty();
_builder.append("
");
_builder.newLine();
}
}
{
boolean _showMessageDataType = this.showMessageDataType(request);
if (_showMessageDataType) {
CharSequence _generateMessageDataType = this.generateMessageDataType(request);
_builder.append(_generateMessageDataType, "");
_builder.newLineIfNotEmpty();
}
}
CharSequence _generateDocItem = this.docHelper.generateDocItem(request);
_builder.append(_generateDocItem, "");
_builder.newLineIfNotEmpty();
{
EList _parameters = request.getParameters();
boolean _isEmpty = _parameters.isEmpty();
boolean _not = (!_isEmpty);
if (_not) {
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("Parameters ");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
_builder.append("
");
_builder.newLine();
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.append(" ");
EList _parameters_1 = request.getParameters();
CharSequence _generateParams = this.generateParams(_parameters_1);
_builder.append(_generateParams, " ");
_builder.newLineIfNotEmpty();
_builder.append("
");
_builder.newLine();
}
}
_builder.append(" ");
_builder.newLine();
}
}
_xblockexpression = _builder;
}
return _xblockexpression;
}
private CharSequence generateResponse(final TypedResponse response) {
StringConcatenation _builder = new StringConcatenation();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("Response ");
CharSequence _generateMessageName = this.generateMessageName(response);
_builder.append(_generateMessageName, " ");
_builder.newLineIfNotEmpty();
{
int _statusCode = response.getStatusCode();
boolean _greaterThan = (_statusCode > 0);
if (_greaterThan) {
_builder.append("");
int _statusCode_2 = response.getStatusCode();
_builder.append(_statusCode_2, "");
_builder.append(" ");
_builder.newLineIfNotEmpty();
}
}
{
boolean _hasOverridedMediaTypes = this.hasOverridedMediaTypes(response);
if (_hasOverridedMediaTypes) {
_builder.append("Properties ");
_builder.newLine();
_builder.append("");
_builder.newLine();
EList _mediaTypes = response.getMediaTypes();
CharSequence _generateMediaTypes = this.generateMediaTypes(_mediaTypes);
_builder.append(_generateMediaTypes, "");
_builder.newLineIfNotEmpty();
_builder.append("
");
_builder.newLine();
}
}
{
boolean _showMessageDataType = this.showMessageDataType(response);
if (_showMessageDataType) {
CharSequence _generateMessageDataType = this.generateMessageDataType(response);
_builder.append(_generateMessageDataType, "");
_builder.newLineIfNotEmpty();
}
}
_builder.append(" ");
CharSequence _generateDocItem = this.docHelper.generateDocItem(response);
_builder.append(_generateDocItem, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
return _builder;
}
private boolean showMessageDataType(final TypedMessage message) {
boolean _and = false;
Structure _actualType = message.getActualType();
boolean _tripleNotEquals = (_actualType != null);
if (!_tripleNotEquals) {
_and = false;
} else {
ResourceDefinition _resourceType = message.getResourceType();
boolean _tripleEquals = (_resourceType == null);
_and = _tripleEquals;
}
return _and;
}
private CharSequence generateIncludedPropertyRow(final PropertyRealization includedProperty) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
Feature _baseProperty = includedProperty.getBaseProperty();
String _name = _baseProperty.getName();
_builder.append(_name, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("");
_builder.newLine();
{
Feature _baseProperty_1 = includedProperty.getBaseProperty();
if ((_baseProperty_1 instanceof ReferenceProperty)) {
_builder.append(" ");
_builder.append("");
CharSequence _generateIncludedPropertyType = this.generateIncludedPropertyType(includedProperty);
_builder.append(_generateIncludedPropertyType, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
} else {
_builder.append(" ");
Feature _baseProperty_3 = includedProperty.getBaseProperty();
final SingleValueType type = ((PrimitiveProperty) _baseProperty_3).getType();
_builder.newLineIfNotEmpty();
{
boolean _or = false;
if ((type instanceof Enumeration)) {
_or = true;
} else {
_or = (type instanceof UserDefinedType);
}
if (_or) {
_builder.append(" ");
_builder.append("");
CharSequence _generateIncludedPropertyType_1 = this.generateIncludedPropertyType(includedProperty);
_builder.append(_generateIncludedPropertyType_1, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
} else {
_builder.append(" ");
CharSequence _generateIncludedPropertyType_2 = this.generateIncludedPropertyType(includedProperty);
_builder.append(_generateIncludedPropertyType_2, " ");
_builder.newLineIfNotEmpty();
}
}
}
}
_builder.append(" ");
EList _allConstraints = includedProperty.getAllConstraints();
CharSequence _generateInlineConstraints = this.docHelper.generateInlineConstraints(_allConstraints);
_builder.append(_generateInlineConstraints, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.append("");
Feature _baseProperty_4 = includedProperty.getBaseProperty();
String _generateDoc = null;
if (_baseProperty_4!=null) {
_generateDoc=this.docHelper.generateDoc(_baseProperty_4);
}
_builder.append(_generateDoc, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.newLine();
return _builder;
}
private CharSequence generateMediaTypes(final List mediaTypes) {
StringConcatenation _builder = new StringConcatenation();
{
boolean _isEmpty = mediaTypes.isEmpty();
boolean _not = (!_isEmpty);
if (_not) {
_builder.append("");
_builder.newLine();
_builder.append("\t");
_builder.append("Media Types ");
_builder.newLine();
_builder.append("\t");
_builder.append("");
_builder.newLine();
_builder.append("\t");
{
boolean _hasElements = false;
for(final MediaType mediaType : mediaTypes) {
if (!_hasElements) {
_hasElements = true;
} else {
_builder.appendImmediate(", ", "\t");
}
_builder.append("");
String _name = mediaType.getName();
_builder.append(_name, "\t");
_builder.append(" ");
}
}
_builder.newLineIfNotEmpty();
_builder.append("\t");
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.newLine();
}
}
return _builder;
}
private boolean hasOverridedMediaTypes(final TypedMessage message) {
EList _mediaTypes = message.getMediaTypes();
boolean _isEmpty = _mediaTypes.isEmpty();
boolean _not = (!_isEmpty);
if (_not) {
EList _mediaTypes_1 = message.getMediaTypes();
EObject _eContainer = message.eContainer();
ResourceDefinition _containingResourceDefinition = ((Method) _eContainer).getContainingResourceDefinition();
EList _mediaTypes_2 = _containingResourceDefinition.getMediaTypes();
boolean _elementsEqual = IterableExtensions.elementsEqual(_mediaTypes_1, _mediaTypes_2);
return (!_elementsEqual);
}
return false;
}
private boolean hasReferenceTreatment(final ServiceDataResource resource, final Feature feature) {
EList _referenceTreatments = resource.getReferenceTreatments();
final Function1 _function = (ReferenceTreatment it) -> {
return it.getReferenceElement();
};
List _map = ListExtensions.map(_referenceTreatments, _function);
final Function1 _function_1 = (ReferenceElement f) -> {
return Boolean.valueOf((f == feature));
};
return IterableExtensions.exists(_map, _function_1);
}
private boolean hasReferenceTreatment(final TypedMessage message, final Feature feature) {
EList _referenceTreatments = message.getReferenceTreatments();
final Function1 _function = (ReferenceTreatment it) -> {
return it.getReferenceElement();
};
List _map = ListExtensions.map(_referenceTreatments, _function);
final Function1 _function_1 = (ReferenceElement f) -> {
return Boolean.valueOf((f == feature));
};
return IterableExtensions.exists(_map, _function_1);
}
private PropertyRealization getIncludedProperty(final ServiceDataResource resource, final Feature feature) {
ObjectRealization _properties = resource.getProperties();
return this.getIncludedProperty(_properties, feature);
}
private PropertyRealization getIncludedProperty(final TypedMessage message, final Feature feature) {
ObjectRealization _properties = message.getProperties();
return this.getIncludedProperty(_properties, feature);
}
private PropertyRealization getIncludedProperty(final ObjectRealization objectRealization, final Feature feature) {
EList _allIncludedProperties = objectRealization.getAllIncludedProperties();
final Function1 _function = (PropertyRealization it) -> {
Feature _baseProperty = it.getBaseProperty();
return Boolean.valueOf(InheritanceUtils.sameOrOverrides(_baseProperty, feature));
};
Iterable _filter = IterableExtensions.filter(_allIncludedProperties, _function);
return IterableExtensions.head(_filter);
}
private CharSequence generateReferenceTreatments(final ServiceDataResource resource) {
StringConcatenation _builder = new StringConcatenation();
{
EList _referenceTreatments = resource.getReferenceTreatments();
for(final ReferenceTreatment refTreatment : _referenceTreatments) {
EList _includedProperties = resource.getIncludedProperties();
CycleDetector _cycleDetector = new CycleDetector();
String _generateReferenceTreatment = this.generateReferenceTreatment(refTreatment, _includedProperties, _cycleDetector, Integer.valueOf(0));
_builder.append(_generateReferenceTreatment, "");
_builder.newLineIfNotEmpty();
}
}
return _builder;
}
private CharSequence generateReferenceTreatments(final TypedMessage message) {
StringConcatenation _builder = new StringConcatenation();
{
EList _referenceTreatments = message.getReferenceTreatments();
for(final ReferenceTreatment refTreatment : _referenceTreatments) {
EList _includedProperties = message.getIncludedProperties();
CycleDetector _cycleDetector = new CycleDetector();
String _generateReferenceTreatment = this.generateReferenceTreatment(refTreatment, _includedProperties, _cycleDetector, Integer.valueOf(0));
_builder.append(_generateReferenceTreatment, "");
_builder.newLineIfNotEmpty();
}
}
return _builder;
}
private String _generateReferenceTreatment(final ReferenceLink refLink, final List includedProperies, final CycleDetector cycleDetector, final Integer indent) {
String _xblockexpression = null;
{
final ReferenceElement referencedProperty = refLink.getReferenceElement();
final String cardinality = XDataTypeExtensions.getCardinalityLabel(refLink, includedProperies);
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLine();
_builder.append(" _containmentReferences = this.parameterHelper.getContainmentReferences(refLink);
int _size = _containmentReferences.size();
int _multiply = (1 * _size);
int _plus = ((indent).intValue() + _multiply);
_builder.append(_plus, "");
_builder.append("em;\">");
_builder.newLineIfNotEmpty();
_builder.append(" ");
String _name = referencedProperty.getName();
_builder.append(_name, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append("");
ResourceDefinition _targetResource_1 = refLink.getTargetResource();
String _name_1 = _targetResource_1.getName();
_builder.append(_name_1, "");
_builder.append(" ");
_builder.append(cardinality, "");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.newLine();
_builder.append("");
String _xifexpression = null;
if ((referencedProperty instanceof ReferenceProperty)) {
_xifexpression = this.docHelper.generateDoc(((ReferenceProperty) referencedProperty));
} else {
_xifexpression = "TODO";
}
_builder.append(_xifexpression, "");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.newLine();
{
List _includedProperties = this.getIncludedProperties(refLink);
for(final Feature feature : _includedProperties) {
CharSequence _generateReferenceTreatmentPropertyRow = this.generateReferenceTreatmentPropertyRow(feature, Integer.valueOf(((indent).intValue() + 1)), true);
_builder.append(_generateReferenceTreatmentPropertyRow, "");
_builder.newLineIfNotEmpty();
}
}
_xblockexpression = _builder.toString();
}
return _xblockexpression;
}
private String _generateReferenceTreatment(final ReferenceEmbed refEmbed, final List includedProperies, final CycleDetector cycleDetector, final Integer indent) {
String _xblockexpression = null;
{
boolean _visit = cycleDetector.visit(refEmbed);
final boolean isRecursive = (!_visit);
final ReferenceElement referencedProperty = refEmbed.getReferenceElement();
final String cardinality = XDataTypeExtensions.getCardinalityLabel(refEmbed, includedProperies);
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append(" _containmentReferences = this.parameterHelper.getContainmentReferences(refEmbed);
int _size = _containmentReferences.size();
int _multiply = (1 * _size);
int _plus = ((indent).intValue() + _multiply);
_builder.append(_plus, " ");
_builder.append("em;\">");
_builder.newLineIfNotEmpty();
_builder.append(" ");
String _name = referencedProperty.getName();
_builder.append(_name, " ");
_builder.append(" ");
{
if (isRecursive) {
_builder.append(" (recursive) ");
}
}
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
Structure _dataType_1 = referencedProperty.getDataType();
String _qualifiedName = this.importHelper.getQualifiedName(_dataType_1);
_builder.append(_qualifiedName, " ");
_builder.append(" ");
_builder.append(cardinality, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
_builder.append("");
String _xifexpression = null;
if ((referencedProperty instanceof ReferenceProperty)) {
_xifexpression = this.docHelper.generateDoc(((ReferenceProperty) referencedProperty));
} else {
_xifexpression = "TODO";
}
_builder.append(_xifexpression, "");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.newLine();
{
if ((!isRecursive)) {
{
List _includedProperties = this.getIncludedProperties(refEmbed);
final Function1 _function = (Feature e) -> {
return Boolean.valueOf((e instanceof PrimitiveProperty));
};
Iterable _filter = IterableExtensions.filter(_includedProperties, _function);
for(final Feature feature : _filter) {
CharSequence _generateReferenceTreatmentPropertyRow = this.generateReferenceTreatmentPropertyRow(feature, Integer.valueOf(((indent).intValue() + 1)), true);
_builder.append(_generateReferenceTreatmentPropertyRow, "");
_builder.newLineIfNotEmpty();
}
}
{
EList _nestedReferenceTreatments = refEmbed.getNestedReferenceTreatments();
for(final ReferenceTreatment refTreatment : _nestedReferenceTreatments) {
String _generateReferenceTreatment = this.generateReferenceTreatment(refTreatment, includedProperies, cycleDetector, Integer.valueOf(((indent).intValue() + 1)));
_builder.append(_generateReferenceTreatment, "");
_builder.newLineIfNotEmpty();
}
}
}
}
_xblockexpression = _builder.toString();
}
return _xblockexpression;
}
private CharSequence generateIncludedPropertyType(final PropertyRealization includedProperty) {
StringConcatenation _builder = new StringConcatenation();
Feature _baseProperty = includedProperty.getBaseProperty();
String _featureType = this.parameterHelper.featureType(_baseProperty, this.importHelper);
_builder.append(_featureType, "");
String _prettyPrintedCardinality = this.commonServices.getPrettyPrintedCardinality(includedProperty);
_builder.append(_prettyPrintedCardinality, "");
_builder.newLineIfNotEmpty();
return _builder;
}
private List getIncludedProperties(final ReferenceTreatment refLink) {
List _xifexpression = null;
ObjectRealization _linkDescriptor = refLink.getLinkDescriptor();
boolean _tripleEquals = (_linkDescriptor == null);
if (_tripleEquals) {
_xifexpression = Collections.emptyList();
} else {
ObjectRealization _linkDescriptor_1 = refLink.getLinkDescriptor();
EList _allIncludedProperties = _linkDescriptor_1.getAllIncludedProperties();
final Function1 _function = (PropertyRealization it) -> {
return it.getBaseProperty();
};
_xifexpression = ListExtensions.map(_allIncludedProperties, _function);
}
return _xifexpression;
}
private CharSequence generateReferenceTreatmentPropertyRow(final Feature property, final Integer indent, final boolean genDoc) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
String _name = property.getName();
_builder.append(_name, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("");
_builder.newLine();
{
if ((property instanceof ReferenceProperty)) {
_builder.append(" ");
_builder.append("");
String _featureType = this.parameterHelper.featureType(property, this.importHelper);
_builder.append(_featureType, " ");
String _prettyPrintedMultiplicity = this.commonServices.getPrettyPrintedMultiplicity(property);
_builder.append(_prettyPrintedMultiplicity, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
} else {
_builder.append(" ");
String _featureType_1 = this.parameterHelper.featureType(property, this.importHelper);
_builder.append(_featureType_1, " ");
String _prettyPrintedMultiplicity_1 = this.commonServices.getPrettyPrintedMultiplicity(property);
_builder.append(_prettyPrintedMultiplicity_1, " ");
_builder.newLineIfNotEmpty();
}
}
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
{
if (genDoc) {
_builder.append(" ");
_builder.append("");
String _generateDoc = null;
if (property!=null) {
_generateDoc=this.docHelper.generateDoc(property);
}
_builder.append(_generateDoc, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
}
}
_builder.append(" ");
_builder.newLine();
return _builder;
}
protected CharSequence generateSecuritySchemeUsage(final HasSecurityValue hasSecuredValue) {
StringConcatenation _builder = new StringConcatenation();
{
EList _securedBy = hasSecuredValue.getSecuredBy();
boolean _isEmpty = _securedBy.isEmpty();
boolean _not = (!_isEmpty);
if (_not) {
CharSequence _tableWithHeader = XDocHelper.tableWithHeader("Security Schemes", "Name", "Type", "Authorized Scopes");
_builder.append(_tableWithHeader, "");
_builder.newLineIfNotEmpty();
{
EList _securedBy_1 = hasSecuredValue.getSecuredBy();
for(final AuthenticationMethod authMethod : _securedBy_1) {
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
SecurityScheme _scheme_1 = authMethod.getScheme();
String _name = _scheme_1.getName();
_builder.append(_name, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("");
SecurityScheme _scheme_2 = authMethod.getScheme();
AuthenticationTypes _type = _scheme_2.getType();
String _string = _type.toString();
_builder.append(_string, " ");
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("");
{
EList _scopes = authMethod.getScopes();
boolean _hasElements = false;
for(final SecurityScope scope : _scopes) {
if (!_hasElements) {
_hasElements = true;
} else {
_builder.appendImmediate(", ", " ");
}
String _name_1 = scope.getName();
_builder.append(_name_1, " ");
}
}
_builder.append(" ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.newLine();
}
}
_builder.append("");
_builder.newLine();
}
}
return _builder;
}
public static String statusColorCode(final Integer code) {
String _switchResult = null;
boolean _matched = false;
if (!_matched) {
if ((((code).intValue() >= 100) && ((code).intValue() < 200))) {
_matched=true;
_switchResult = "info";
}
}
if (!_matched) {
if ((((code).intValue() >= 200) && ((code).intValue() < 300))) {
_matched=true;
_switchResult = "success";
}
}
if (!_matched) {
if ((((code).intValue() >= 300) && ((code).intValue() < 400))) {
_matched=true;
_switchResult = "info";
}
}
if (!_matched) {
_switchResult = "danger";
}
return _switchResult;
}
public boolean isLiveView(final boolean isLiveView) {
return this.isLiveView = isLiveView;
}
private String generateReferenceTreatment(final ReferenceTreatment refEmbed, final List includedProperies, final CycleDetector cycleDetector, final Integer indent) {
if (refEmbed instanceof ReferenceEmbed) {
return _generateReferenceTreatment((ReferenceEmbed)refEmbed, includedProperies, cycleDetector, indent);
} else if (refEmbed instanceof ReferenceLink) {
return _generateReferenceTreatment((ReferenceLink)refEmbed, includedProperies, cycleDetector, indent);
} else {
throw new IllegalArgumentException("Unhandled parameter types: " +
Arrays.asList(refEmbed, includedProperies, cycleDetector, indent).toString());
}
}
}