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

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

There is a newer version: 1.4.2
Show newest version
/**
 * Copyright © 2013, 2016 Modelsolv, Inc.
 * All Rights Reserved.
 * 
 * NOTICE: All information contained herein is, and remains the property
 * of ModelSolv, Inc. See the file license.html in the root directory of
 * this project for further information.
 */
package com.reprezen.genflow.rapidml.doc.xtend;

import com.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.append(" "); _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("
"); _builder.newLine(); _builder.append(" "); _builder.append(" "); _builder.append("
"); _builder.newLine(); _builder.append(" "); _builder.append(" "); _builder.append("
    "); _builder.newLine(); _builder.append(" "); _builder.append(" "); _builder.append("
  • Resource APIs
  • "); _builder.newLine(); _builder.append(" "); _builder.append(" "); _builder.append("
  • Data Models
  • "); _builder.newLine(); _builder.append(" "); _builder.append(" "); _builder.append("
"); _builder.newLine(); _builder.append(" "); _builder.append(" "); _builder.append("
    "); _builder.newLine(); _builder.append(" "); _builder.append(" "); _builder.append("
  • Created with
  • "); _builder.newLine(); _builder.append(" "); _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.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.append(" "); _builder.append(" "); _builder.append("
    "); _builder.newLine(); { EList _resourceAPIs = model.getResourceAPIs(); for(final ResourceAPI resourceAPI : _resourceAPIs) { _builder.append(" "); _builder.append(" "); _builder.append("
  • "); _builder.newLine(); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append(""); String _nameOrTitle_1 = this.docHelper.nameOrTitle(resourceAPI); _builder.append(_nameOrTitle_1, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append("
      "); _builder.newLine(); { EList _ownedResourceDefinitions = resourceAPI.getOwnedResourceDefinitions(); for(final ResourceDefinition resource : _ownedResourceDefinitions) { _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append("
    • "); _builder.newLine(); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append(""); String _name = resource.getName(); _builder.append(_name, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _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.newLine(); } } { EList _dataModels = model.getDataModels(); for(final DataModel dataModel : _dataModels) { _builder.append(" "); _builder.append(" "); _builder.append("
  • "); _builder.newLine(); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append(""); String _nameOrTitle_2 = this.docHelper.nameOrTitle(dataModel); _builder.append(_nameOrTitle_2, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append("
      "); _builder.newLine(); { EList _ownedDataTypes = dataModel.getOwnedDataTypes(); for(final DataType dataType : _ownedDataTypes) { _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append("
    • "); _builder.newLine(); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append(""); String _name_1 = dataType.getName(); _builder.append(_name_1, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _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.newLine(); } } { Set _keySet = this.importHelper.importedTypes.keySet(); for(final DataModel dataModel_1 : _keySet) { _builder.append(" "); _builder.append(" "); _builder.append("
  • "); _builder.newLine(); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append(""); String _nameOrTitle_3 = this.docHelper.nameOrTitle(dataModel_1); _builder.append(_nameOrTitle_3, " "); _builder.append(""); _builder.newLineIfNotEmpty(); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append("
      "); _builder.newLine(); { Collection _get_3 = this.importHelper.importedTypes.get(dataModel_1); for(final DataType dataType_1 : _get_3) { _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append("
    • "); _builder.newLine(); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append(" "); _builder.append(""); String _name_2 = dataType_1.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(" "); _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("
"); _builder.newLine(); _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.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