com.reprezen.genflow.rapidml.wadl.xtend.XGenerateWadl 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.wadl.xtend;
import com.google.common.base.Objects;
import com.google.common.collect.Iterables;
import com.reprezen.genflow.api.zenmodel.ZenModelExtractOutputItem;
import com.reprezen.genflow.rapidml.wadl.xtend.TraceHelper;
import com.reprezen.genflow.rapidml.wadl.xtend.WadlHelper;
import com.reprezen.rapidml.DataModel;
import com.reprezen.rapidml.Documentable;
import com.reprezen.rapidml.Documentation;
import com.reprezen.rapidml.HTTPMethods;
import com.reprezen.rapidml.HttpMessageParameterLocation;
import com.reprezen.rapidml.MatrixParameter;
import com.reprezen.rapidml.MediaType;
import com.reprezen.rapidml.MessageParameter;
import com.reprezen.rapidml.Method;
import com.reprezen.rapidml.ObjectResource;
import com.reprezen.rapidml.Parameter;
import com.reprezen.rapidml.RESTElement;
import com.reprezen.rapidml.ReferenceElement;
import com.reprezen.rapidml.ReferenceEmbed;
import com.reprezen.rapidml.ReferenceLink;
import com.reprezen.rapidml.ReferenceTreatment;
import com.reprezen.rapidml.ResourceAPI;
import com.reprezen.rapidml.ResourceDefinition;
import com.reprezen.rapidml.ServiceDataResource;
import com.reprezen.rapidml.SingleValueType;
import com.reprezen.rapidml.SourceReference;
import com.reprezen.rapidml.Structure;
import com.reprezen.rapidml.TemplateParameter;
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.ZenModel;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import org.eclipse.emf.common.util.EList;
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;
import org.eclipse.xtext.xbase.lib.StringExtensions;
@SuppressWarnings("all")
public class XGenerateWadl extends ZenModelExtractOutputItem {
@Extension
private WadlHelper _wadlHelper = new WadlHelper();
@Extension
private TraceHelper traceHelper;
@Override
public String generate(final ZenModel zenModel, final ResourceAPI resourceAPI) {
String _xblockexpression = null;
{
TraceHelper _traceHelper = new TraceHelper(this.context, zenModel);
this.traceHelper = _traceHelper;
StringConcatenation _builder = new StringConcatenation();
CharSequence _generateApplicationElement = this.generateApplicationElement(resourceAPI, zenModel);
_builder.append(_generateApplicationElement, "");
_builder.newLineIfNotEmpty();
_xblockexpression = _builder.toString();
}
return _xblockexpression;
}
private CharSequence generateApplicationElement(final ResourceAPI resourceAPI, final ZenModel zenModel) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLine();
_builder.append("\t");
CharSequence _generateGrammar = this.generateGrammar(zenModel);
_builder.append(_generateGrammar, "\t");
_builder.newLineIfNotEmpty();
_builder.append("\t");
CharSequence _generateResourcesElement = this.generateResourcesElement(resourceAPI);
_builder.append(_generateResourcesElement, "\t");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.newLine();
return _builder;
}
private String parameterLocation(final HttpMessageParameterLocation type) {
String _xifexpression = null;
boolean _equals = Objects.equal(type, HttpMessageParameterLocation.HEADER);
if (_equals) {
_xifexpression = "header";
} else {
_xifexpression = "query";
}
return _xifexpression;
}
protected CharSequence generateResourcesElement(final ResourceAPI resourceAPI) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLineIfNotEmpty();
{
EList _ownedResourceDefinitions = resourceAPI.getOwnedResourceDefinitions();
for(final ResourceDefinition resourceDef : _ownedResourceDefinitions) {
CharSequence _generateResource = this.generateResource(resourceDef);
_builder.append(_generateResource, "");
_builder.newLineIfNotEmpty();
}
}
_builder.append(" ");
_builder.newLine();
{
EList _ownedResourceDefinitions_1 = resourceAPI.getOwnedResourceDefinitions();
for(final ResourceDefinition resourceDef_1 : _ownedResourceDefinitions_1) {
CharSequence _generateResourceType = this.generateResourceType(resourceDef_1);
_builder.append(_generateResourceType, "");
_builder.newLineIfNotEmpty();
}
}
return _builder;
}
private CharSequence generateNamespaceAdditions(final ZenModel zenModel) {
StringConcatenation _builder = new StringConcatenation();
CharSequence _generateXsdNamespaceDeclarations = this.generateXsdNamespaceDeclarations(zenModel);
_builder.append(_generateXsdNamespaceDeclarations, "");
_builder.newLineIfNotEmpty();
CharSequence _generateAtomNamespaceDeclarations = this.generateAtomNamespaceDeclarations();
_builder.append(_generateAtomNamespaceDeclarations, "");
_builder.newLineIfNotEmpty();
return _builder;
}
private CharSequence generateAtomNamespaceDeclarations() {
StringConcatenation _builder = new StringConcatenation();
_builder.append("xmlns:atom=\"http://www.w3.org/2005/Atom\"");
return _builder;
}
private CharSequence generateXsdNamespaceDeclarations(final ZenModel zenModel) {
StringConcatenation _builder = new StringConcatenation();
{
EList _dataModels = zenModel.getDataModels();
for(final DataModel interfaceDataModel : _dataModels) {
Object _generateNamespaceDeclaration = this.generateNamespaceDeclaration(interfaceDataModel);
_builder.append(_generateNamespaceDeclaration, "");
_builder.newLineIfNotEmpty();
}
}
{
EList _resourceAPIs = zenModel.getResourceAPIs();
for(final ResourceAPI resourceAPI : _resourceAPIs) {
CharSequence _generateNamespaceDeclaration_1 = this.generateNamespaceDeclaration(resourceAPI);
_builder.append(_generateNamespaceDeclaration_1, "");
_builder.newLineIfNotEmpty();
}
}
return _builder;
}
private Object generateNamespaceDeclaration(final DataModel interfaceDataModel) {
return null;
}
private CharSequence generateNamespaceDeclaration(final ResourceAPI resourceAPI) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("xmlns:");
String _nsPrefix = this.traceHelper.getNsPrefix(resourceAPI);
_builder.append(_nsPrefix, "");
_builder.append("=\"");
String _namespace = this.traceHelper.getNamespace(resourceAPI);
_builder.append(_namespace, "");
_builder.append("\"");
return _builder;
}
private CharSequence generateGrammar(final ZenModel zenModel) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLine();
_builder.append(" ");
CharSequence _generateInclude = this.generateInclude(zenModel);
_builder.append(_generateInclude, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.newLine();
return _builder;
}
private CharSequence generateInclude(final ZenModel zenModel) {
StringConcatenation _builder = new StringConcatenation();
{
EList _resourceAPIs = zenModel.getResourceAPIs();
for(final ResourceAPI resourceAPI : _resourceAPIs) {
_builder.append(" ");
_builder.newLineIfNotEmpty();
}
}
return _builder;
}
protected CharSequence generateResource(final ResourceDefinition resourceDef) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.newLine();
return _builder;
}
private CharSequence generateResourceType(final ResourceDefinition resourceDef) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLineIfNotEmpty();
CharSequence _generateParameters = this.generateParameters(resourceDef);
_builder.append(_generateParameters, "");
_builder.newLineIfNotEmpty();
{
EList _methods = resourceDef.getMethods();
for(final Method method : _methods) {
CharSequence _generateMethod = this.generateMethod(method, ((ServiceDataResource) resourceDef));
_builder.append(_generateMethod, "");
_builder.newLineIfNotEmpty();
}
}
_builder.append(" ");
_builder.newLine();
return _builder;
}
protected CharSequence generateMethod(final Method method, final ServiceDataResource containingDataResource) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.append(" ");
CharSequence _generateDoc = this.generateDoc(method);
_builder.append(_generateDoc, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
TypedRequest _request = method.getRequest();
CharSequence _generateRequestParameters = this.generateRequestParameters(_request);
_builder.append(_generateRequestParameters, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
TypedRequest _request_1 = method.getRequest();
CharSequence _generateMediaTypes = this.generateMediaTypes(_request_1, containingDataResource);
_builder.append(_generateMediaTypes, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
{
EList _responses = method.getResponses();
for(final TypedResponse response : _responses) {
_builder.append(" ");
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
CharSequence _generateResponseParameters = this.generateResponseParameters(response);
_builder.append(_generateResponseParameters, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
CharSequence _generateMediaTypes_1 = this.generateMediaTypes(response, containingDataResource);
_builder.append(_generateMediaTypes_1, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
}
}
_builder.append(" ");
_builder.newLine();
return _builder;
}
private CharSequence generateDoc(final Documentable documentable) {
CharSequence _xifexpression = null;
Documentation _documentation = null;
if (documentable!=null) {
_documentation=documentable.getDocumentation();
}
boolean _tripleNotEquals = (_documentation != null);
if (_tripleNotEquals) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
Documentation _documentation_1 = documentable.getDocumentation();
String _text = _documentation_1.getText();
_builder.append(_text, "");
_builder.append(" ");
_xifexpression = _builder;
}
return _xifexpression;
}
private CharSequence generateMediaTypes(final TypedMessage message, final ServiceDataResource containingDataResource) {
CharSequence _xifexpression = null;
boolean _or = false;
boolean _hasResourceType = this.hasResourceType(message);
if (_hasResourceType) {
_or = true;
} else {
boolean _hasDataType = this.hasDataType(message);
_or = _hasDataType;
}
if (_or) {
StringConcatenation _builder = new StringConcatenation();
CharSequence _generateRepresentation = this.generateRepresentation(message, containingDataResource);
_builder.append(_generateRepresentation, "");
_xifexpression = _builder;
}
return _xifexpression;
}
private CharSequence generateRepresentation(final TypedMessage message, final ServiceDataResource containingDataResource) {
StringConcatenation _builder = new StringConcatenation();
{
EList _mediaTypes = message.getMediaTypes();
final Function1> _function = (MediaType it) -> {
return this._wadlHelper.getMediaSuperTypes(it);
};
List> _map = ListExtensions.>map(_mediaTypes, _function);
Iterable _flatten = Iterables.concat(_map);
EList _mediaTypes_1 = message.getMediaTypes();
Iterable _concat = Iterables.concat(_flatten, _mediaTypes_1);
Set _set = IterableExtensions.toSet(_concat);
for(final MediaType derivedMediaType : _set) {
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.append(" ");
CharSequence _generateRepresentationParameters = this.generateRepresentationParameters(message, derivedMediaType, containingDataResource);
_builder.append(_generateRepresentationParameters, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.newLine();
}
}
return _builder;
}
private CharSequence generateRepresentationElement(final TypedMessage message, final MediaType mediaType) {
CharSequence _xifexpression = null;
boolean _supportsJaxb = this._wadlHelper.supportsJaxb(mediaType);
if (_supportsJaxb) {
CharSequence _xifexpression_1 = null;
ResourceDefinition _resourceType = message.getResourceType();
boolean _tripleEquals = (_resourceType == null);
if (_tripleEquals) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("element=\"");
ResourceAPI _eContainer = this._wadlHelper.getEContainer(message, ResourceAPI.class);
String _nsPrefix = this.traceHelper.getNsPrefix(_eContainer);
_builder.append(_nsPrefix, "");
_builder.append(":");
String _messageTypeName = this._wadlHelper.getMessageTypeName(message);
String _firstLower = StringExtensions.toFirstLower(_messageTypeName);
_builder.append(_firstLower, "");
_builder.append("\"");
_xifexpression_1 = _builder;
} else {
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("element=\"");
ResourceDefinition _resourceType_1 = message.getResourceType();
String _complexTypeQName = this.traceHelper.getComplexTypeQName(_resourceType_1);
_builder_1.append(_complexTypeQName, "");
_builder_1.append("\"");
_xifexpression_1 = _builder_1;
}
_xifexpression = _xifexpression_1;
}
return _xifexpression;
}
private CharSequence generateRepresentationParameters(final TypedMessage message, final MediaType mediaType, final ServiceDataResource containingDataResource) {
CharSequence _xifexpression = null;
ResourceDefinition _resourceType = message.getResourceType();
boolean _tripleEquals = (_resourceType == null);
if (_tripleEquals) {
StringConcatenation _builder = new StringConcatenation();
{
EList _referenceTreatments = message.getReferenceTreatments();
Iterable _filter = Iterables.filter(_referenceTreatments, ReferenceLink.class);
for(final ReferenceLink referenceLink : _filter) {
String _messageTypeName = this._wadlHelper.getMessageTypeName(message);
CharSequence _generateRepresentationParameter = this.generateRepresentationParameter(referenceLink, mediaType, _messageTypeName, containingDataResource);
_builder.append(_generateRepresentationParameter, "");
_builder.newLineIfNotEmpty();
}
}
_xifexpression = _builder;
} else {
StringConcatenation _builder_1 = new StringConcatenation();
ResourceDefinition _eContainer = this._wadlHelper.getEContainer(message, ResourceDefinition.class);
CharSequence _generateRepresentationParameters = this.generateRepresentationParameters(_eContainer, mediaType);
_builder_1.append(_generateRepresentationParameters, "");
_xifexpression = _builder_1;
}
return _xifexpression;
}
private CharSequence generateRepresentationParameters(final ResourceDefinition resourceDefinition, final MediaType mediaType) {
CharSequence _xifexpression = null;
if ((resourceDefinition instanceof ServiceDataResource)) {
StringConcatenation _builder = new StringConcatenation();
CharSequence _generateServiceDataResourceRepresentationParameters = this.generateServiceDataResourceRepresentationParameters(((ServiceDataResource) resourceDefinition), mediaType);
_builder.append(_generateServiceDataResourceRepresentationParameters, "");
_xifexpression = _builder;
}
return _xifexpression;
}
private CharSequence generateServiceDataResourceRepresentationParameters(final ServiceDataResource dataResource, final MediaType mediaType) {
StringConcatenation _builder = new StringConcatenation();
{
EList _allReferenceTreatments = dataResource.getAllReferenceTreatments();
Iterable _filter = Iterables.filter(_allReferenceTreatments, ReferenceLink.class);
for(final ReferenceLink referenceLink : _filter) {
ResourceDefinition _targetResource = referenceLink.getTargetResource();
String _idInTrace = this.traceHelper.getIdInTrace(_targetResource);
String _plus = (_idInTrace + "Type");
CharSequence _generateRepresentationParameter = this.generateRepresentationParameter(referenceLink, mediaType, _plus, dataResource);
_builder.append(_generateRepresentationParameter, "");
_builder.newLineIfNotEmpty();
}
}
return _builder;
}
private CharSequence generateRepresentationParameter(final ReferenceLink referenceLink, final MediaType mediaType, final String typeName, final ServiceDataResource containingDataResource) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append("");
_builder.newLine();
return _builder;
}
private CharSequence generateRepresentationParameterPath(final ReferenceLink referenceLink, final MediaType mediaType, final ServiceDataResource containingDataResource) {
CharSequence _xifexpression = null;
boolean _supportsJaxb = this._wadlHelper.supportsJaxb(mediaType);
if (_supportsJaxb) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("path=\"");
String _path = this.getPath(referenceLink, containingDataResource);
_builder.append(_path, "");
_builder.append("\"");
_xifexpression = _builder;
}
return _xifexpression;
}
private CharSequence generateRepresentationParameterType(final ReferenceLink referenceLink, final MediaType mediaType) {
CharSequence _xifexpression = null;
boolean _supportsJaxb = this._wadlHelper.supportsJaxb(mediaType);
if (_supportsJaxb) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("type=\"");
String _type = this.getType(referenceLink);
_builder.append(_type, "");
_builder.append("\"");
_xifexpression = _builder;
}
return _xifexpression;
}
protected CharSequence generateParameters(final ResourceDefinition resourceDef) {
CharSequence _xifexpression = null;
if ((resourceDef != null)) {
CharSequence _xifexpression_1 = null;
URI _uRI = resourceDef.getURI();
boolean _tripleNotEquals = (_uRI != null);
if (_tripleNotEquals) {
StringConcatenation _builder = new StringConcatenation();
{
URI _uRI_1 = resourceDef.getURI();
EList _uriParameters = _uRI_1.getUriParameters();
Iterable _filter = Iterables.filter(_uriParameters, TemplateParameter.class);
for(final TemplateParameter param : _filter) {
_builder.append("");
_builder.newLineIfNotEmpty();
}
}
{
URI _uRI_2 = resourceDef.getURI();
EList _uriParameters_1 = _uRI_2.getUriParameters();
Iterable _filter_1 = Iterables.filter(_uriParameters_1, MatrixParameter.class);
for(final MatrixParameter param_1 : _filter_1) {
_builder.append("");
_builder.newLineIfNotEmpty();
}
}
_xifexpression_1 = _builder;
}
_xifexpression = _xifexpression_1;
}
return _xifexpression;
}
private CharSequence generateRequestParameters(final TypedRequest request) {
CharSequence _xifexpression = null;
if ((request != null)) {
CharSequence _xblockexpression = null;
{
final Method method = request.getContainingMethod();
StringConcatenation _builder = new StringConcatenation();
{
Iterable _primitiveParameters = this._wadlHelper.getPrimitiveParameters(request);
for(final MessageParameter param : _primitiveParameters) {
CharSequence _generateRequestParameter = this.generateRequestParameter(param, method);
_builder.append(_generateRequestParameter, "");
_builder.newLineIfNotEmpty();
}
}
_xblockexpression = _builder;
}
_xifexpression = _xblockexpression;
}
return _xifexpression;
}
private CharSequence generateRequestParameter(final MessageParameter param, final Method method) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLineIfNotEmpty();
return _builder;
}
private CharSequence generateResponseParameters(final TypedResponse request) {
CharSequence _xifexpression = null;
if ((request != null)) {
CharSequence _xblockexpression = null;
{
final Method method = request.getContainingMethod();
StringConcatenation _builder = new StringConcatenation();
{
Iterable _primitiveParameters = this._wadlHelper.getPrimitiveParameters(request);
for(final MessageParameter param : _primitiveParameters) {
CharSequence _generateResponseParameter = this.generateResponseParameter(param, method);
_builder.append(_generateResponseParameter, "");
_builder.newLineIfNotEmpty();
}
}
_xblockexpression = _builder;
}
_xifexpression = _xblockexpression;
}
return _xifexpression;
}
private CharSequence generateResponseParameter(final MessageParameter param, final Method method) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLineIfNotEmpty();
return _builder;
}
private CharSequence _generateParameterType(final Parameter param) {
CharSequence _xifexpression = null;
SourceReference _sourceReference = null;
if (param!=null) {
_sourceReference=param.getSourceReference();
}
boolean _tripleNotEquals = (_sourceReference != null);
if (_tripleNotEquals) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("type=\"xs:");
SingleValueType _type = param.getType();
String _name = _type.getName();
_builder.append(_name, "");
_builder.append("\"");
_xifexpression = _builder;
}
return _xifexpression;
}
private CharSequence _generateParameterType(final ObjectResource resource) {
CharSequence _xifexpression = null;
Structure _dataType = null;
if (resource!=null) {
_dataType=resource.getDataType();
}
boolean _tripleNotEquals = (_dataType != null);
if (_tripleNotEquals) {
StringConcatenation _builder = new StringConcatenation();
_builder.append("type=\"xs:");
Structure _dataType_1 = resource.getDataType();
String _paramType = this.paramType(_dataType_1);
_builder.append(_paramType, "");
_builder.append("\"");
_xifexpression = _builder;
}
return _xifexpression;
}
private String getParameterName(final ReferenceLink referenceLink) {
ReferenceElement _referenceElement = referenceLink.getReferenceElement();
String _name = _referenceElement.getName();
return StringExtensions.toFirstLower(_name);
}
private boolean hasResourceType(final TypedMessage message) {
ResourceDefinition _resourceType = message.getResourceType();
return (_resourceType != null);
}
private boolean hasDataType(final TypedMessage message) {
Structure _actualType = message.getActualType();
return (_actualType != null);
}
private String getPath(final ReferenceLink referenceLink, final ServiceDataResource containingDataResource) {
return this.getXPath(referenceLink, containingDataResource);
}
private String getType(final ReferenceLink referenceLink) {
return "xs:anyURI";
}
private String paramType(final Structure complexType) {
return complexType.getName();
}
public String getXPath(final ReferenceLink referenceLink, final ServiceDataResource containingDataResource) {
Iterable _pathToAtomLinkWithNs = this.getPathToAtomLinkWithNs(referenceLink, containingDataResource);
String _join = IterableExtensions.join(_pathToAtomLinkWithNs, "/");
String _plus = ("/" + _join);
return (_plus + "/atom:link");
}
private Iterable getPathToAtomLinkWithNs(final ReferenceLink referenceLink, final ServiceDataResource containingDataResource) {
Iterable _xblockexpression = null;
{
ResourceAPI _eContainer = this._wadlHelper.getEContainer(referenceLink, ResourceAPI.class);
final String nsPrefix = this.traceHelper.getNsPrefix(_eContainer);
Iterable _pathToAtomLink = this.getPathToAtomLink(referenceLink, containingDataResource);
final Function1 _function = (String it) -> {
return ((nsPrefix + ":") + it);
};
_xblockexpression = IterableExtensions.map(_pathToAtomLink, _function);
}
return _xblockexpression;
}
private Iterable getPathToAtomLink(final ReferenceLink referenceLink, final ServiceDataResource dataResource) {
List _xblockexpression = null;
{
List result = new ArrayList();
String _rootElementName = this.traceHelper.getRootElementName(dataResource);
result.add(_rootElementName);
Iterable _containmentXpath = this.getContainmentXpath(referenceLink);
Iterables.addAll(result, _containmentXpath);
ReferenceElement _referenceElement = referenceLink.getReferenceElement();
Iterable _referenceXpath = this.getReferenceXpath(_referenceElement);
Iterables.addAll(result, _referenceXpath);
_xblockexpression = result;
}
return _xblockexpression;
}
private Iterable getContainmentXpath(final ReferenceLink referenceLink) {
EList _embedHierarchy = referenceLink.getEmbedHierarchy();
final Function1 _function = (ReferenceEmbed it) -> {
return it.getReferenceElement();
};
List _map = ListExtensions.map(_embedHierarchy, _function);
final Function1> _function_1 = (ReferenceElement it) -> {
return this.getContainmentXpath(it);
};
List> _map_1 = ListExtensions.>map(_map, _function_1);
return Iterables.concat(_map_1);
}
private Iterable getReferenceXpath(final ReferenceElement refProperty) {
LinkedList _xblockexpression = null;
{
LinkedList result = new LinkedList();
boolean _isMultiValued = refProperty.isMultiValued();
if (_isMultiValued) {
String _listElementName = this.traceHelper.getListElementName(refProperty);
result.add(_listElementName);
String _listItemElementName = this.traceHelper.getListItemElementName(refProperty);
result.add(_listItemElementName);
} else {
String _elementName = this.traceHelper.getElementName(refProperty);
result.add(_elementName);
}
_xblockexpression = result;
}
return _xblockexpression;
}
private Iterable getContainmentXpath(final ReferenceElement refProperty) {
LinkedList _xblockexpression = null;
{
LinkedList result = new LinkedList();
boolean _isMultiValued = refProperty.isMultiValued();
if (_isMultiValued) {
String _listElementName = this.traceHelper.getListElementName(refProperty);
result.add(_listElementName);
String _listItemElementName = this.traceHelper.getListItemElementName(refProperty);
result.add(_listItemElementName);
} else {
String _elementName = this.traceHelper.getElementName(refProperty);
result.add(_elementName);
}
_xblockexpression = result;
}
return _xblockexpression;
}
private CharSequence generateParameterType(final RESTElement resource) {
if (resource instanceof ObjectResource) {
return _generateParameterType((ObjectResource)resource);
} else if (resource instanceof Parameter) {
return _generateParameterType((Parameter)resource);
} else {
throw new IllegalArgumentException("Unhandled parameter types: " +
Arrays. © 2015 - 2025 Weber Informatics LLC | Privacy Policy