
com.reprezen.genflow.rapidml.doc.xtend.XGenerateDoc 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.reprezen.genflow.api.source.ISource;
import com.reprezen.genflow.api.zenmodel.ZenModelOutputItem;
import com.reprezen.genflow.common.doc.XDocHelper;
import com.reprezen.genflow.common.xtend.XImportHelper;
import com.reprezen.genflow.common.xtend.XLiveViewHelpers;
import com.reprezen.genflow.common.xtend.XSecuritySchemeImportHelper;
import com.reprezen.genflow.rapidml.doc.xtend.XGenerateInterfaceDataModels;
import com.reprezen.genflow.rapidml.doc.xtend.XGenerateInterfaces;
import com.reprezen.genflow.rapidml.doc.xtend.XGenerateSecuritySchemes;
import com.reprezen.rapidml.DataModel;
import com.reprezen.rapidml.DataType;
import com.reprezen.rapidml.Documentation;
import com.reprezen.rapidml.ResourceAPI;
import com.reprezen.rapidml.ResourceDefinition;
import com.reprezen.rapidml.ZenModel;
import java.io.File;
import java.net.URI;
import java.util.Collection;
import java.util.Map;
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 XGenerateDoc extends ZenModelOutputItem {
public final static String URL_PREFIX_PARAM = "urlPrefix";
public final static String ANCHOR_NAME_PARAM = "anchorName";
public final static String PREVIEW_PARAM = "preview";
private final XImportHelper importHelper = new XImportHelper();
private final XSecuritySchemeImportHelper securitySchemeImportHelper = new XSecuritySchemeImportHelper();
@Extension
private XDocHelper docHelper;
private XGenerateInterfaces genInterfaces = null;
private XGenerateInterfaceDataModels genDataModels = null;
private XGenerateSecuritySchemes genSecuritySchemes = null;
@Override
public String generate(final ZenModel model) {
String _xblockexpression = null;
{
ISource> _primarySource = this.context.getPrimarySource();
File _inputFile = null;
if (_primarySource!=null) {
_inputFile=_primarySource.getInputFile();
}
URI _uRI = null;
if (_inputFile!=null) {
_uRI=_inputFile.toURI();
}
XDocHelper _xDocHelper = new XDocHelper(_uRI);
this.docHelper = _xDocHelper;
XGenerateInterfaces _xGenerateInterfaces = new XGenerateInterfaces(this.importHelper, this.docHelper);
this.genInterfaces = _xGenerateInterfaces;
XGenerateInterfaceDataModels _xGenerateInterfaceDataModels = new XGenerateInterfaceDataModels(this.importHelper, this.docHelper);
this.genDataModels = _xGenerateInterfaceDataModels;
XGenerateSecuritySchemes _xGenerateSecuritySchemes = new XGenerateSecuritySchemes(this.importHelper, this.securitySchemeImportHelper, this.docHelper);
this.genSecuritySchemes = _xGenerateSecuritySchemes;
final Map templateParam = this.context.getGenTargetParameters();
Object _get = templateParam.get(XGenerateDoc.URL_PREFIX_PARAM);
final String urlPrefix = ((String) _get);
Object _get_1 = templateParam.get(XGenerateDoc.ANCHOR_NAME_PARAM);
final String anchorName = ((String) _get_1);
Object _get_2 = templateParam.get(XGenerateDoc.PREVIEW_PARAM);
final boolean preview = Objects.equal(Boolean.valueOf(true), _get_2);
this.importHelper.init(model);
this.securitySchemeImportHelper.init(model);
this.genInterfaces.isLiveView(preview);
StringConcatenation _builder = new StringConcatenation();
_builder.append("");
_builder.newLine();
_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("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.newLine();
_builder.append(" ");
_builder.append("");
String _nameOrTitle = this.docHelper.nameOrTitle(model);
_builder.append(_nameOrTitle, " ");
_builder.append(" Documentation ");
_builder.newLineIfNotEmpty();
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("");
_builder.newLineIfNotEmpty();
{
if (preview) {
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
String _generateErrorHandlerForLiveView = XLiveViewHelpers.generateErrorHandlerForLiveView();
_builder.append(_generateErrorHandlerForLiveView, " ");
_builder.newLineIfNotEmpty();
}
}
_builder.append(" ");
_builder.newLine();
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
{
if (preview) {
_builder.append(" ");
String _generateStylesForLiveView = XLiveViewHelpers.generateStylesForLiveView((urlPrefix + "../"));
_builder.append(_generateStylesForLiveView, " ");
_builder.newLineIfNotEmpty();
}
}
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
{
if ((!preview)) {
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
}
}
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.newLine();
{
if ((!preview)) {
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.append("");
_builder.newLine();
}
}
_builder.newLine();
{
Documentation _documentation = model.getDocumentation();
boolean _tripleNotEquals = (_documentation != null);
if (_tripleNotEquals) {
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.append("Model Documentation
");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
CharSequence _generateDocItem = this.docHelper.generateDocItem(model);
_builder.append(_generateDocItem, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("");
_builder.newLine();
}
}
_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("Resource APIs
");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
CharSequence _generateInterfaces = this.genInterfaces.generateInterfaces(model);
_builder.append(_generateInterfaces, " ");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("Data Models
");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
String _generateInterfaceDataModels = this.genDataModels.generateInterfaceDataModels(model);
_builder.append(_generateInterfaceDataModels, " ");
_builder.newLineIfNotEmpty();
_builder.newLine();
{
boolean _hasSecuritySchemes = this.genSecuritySchemes.hasSecuritySchemes(model);
if (_hasSecuritySchemes) {
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.append("Security Schemes
");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
String _generateSecuritySchemes = this.genSecuritySchemes.generateSecuritySchemes(model);
_builder.append(_generateSecuritySchemes, " ");
_builder.newLineIfNotEmpty();
}
}
_builder.newLine();
_builder.append(" ");
_builder.append(" ");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append(" ");
_builder.append("");
_builder.newLineIfNotEmpty();
_builder.append(" ");
_builder.append("");
_builder.newLineIfNotEmpty();
{
if (preview) {
_builder.append(" ");
String _generateJavaScriptForLiveView = XLiveViewHelpers.generateJavaScriptForLiveView(anchorName);
_builder.append(_generateJavaScriptForLiveView, " ");
_builder.newLineIfNotEmpty();
}
}
_builder.append(" ");
_builder.append("");
_builder.newLine();
_builder.append("");
_builder.newLine();
_xblockexpression = _builder.toString();
}
return _xblockexpression;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy