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

com.reprezen.genflow.common.xtend.XSecuritySchemeImportHelper 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.common.xtend;

import com.google.common.collect.Multimap;
import com.reprezen.genflow.common.xtend.XGenericImportHelper;
import com.reprezen.rapidml.AuthenticationMethod;
import com.reprezen.rapidml.HasSecurityValue;
import com.reprezen.rapidml.SecurityScheme;
import com.reprezen.rapidml.SecuritySchemeLibrary;
import com.reprezen.rapidml.ZenModel;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.function.Consumer;
import org.eclipse.emf.ecore.EObject;

/**
 * Helper methods for import statements.
 */
@SuppressWarnings("all")
public class XSecuritySchemeImportHelper extends XGenericImportHelper {
  @Override
  public String getModelFullQualifiedName(final SecuritySchemeLibrary dataModel) {
    String _xblockexpression = null;
    {
      EObject _eContainer = dataModel.eContainer();
      final ZenModel model = ((ZenModel) _eContainer);
      String _xifexpression = null;
      String _namespace = model.getNamespace();
      boolean _tripleNotEquals = (_namespace != null);
      if (_tripleNotEquals) {
        String _namespace_1 = model.getNamespace();
        String _plus = ("" + _namespace_1);
        _xifexpression = (_plus + ".");
      } else {
        _xifexpression = "";
      }
      EObject _eContainer_1 = dataModel.eContainer();
      String _name = ((ZenModel) _eContainer_1).getName();
      String _plus_1 = (_xifexpression + _name);
      String _plus_2 = (_plus_1 + ".");
      String _name_1 = dataModel.getName();
      _xblockexpression = (_plus_2 + _name_1);
    }
    return _xblockexpression;
  }
  
  @Override
  protected void addElement(final Multimap map, final EObject e) {
    this.addType(map, e);
  }
  
  private void _addType(final Multimap map, final EObject e) {
  }
  
  private void _addType(final Multimap map, final HasSecurityValue sdr) {
    final Consumer _function = (AuthenticationMethod it) -> {
      this.addSecuritySchemeType(map, it.getScheme());
    };
    sdr.getSecuredBy().forEach(_function);
  }
  
  private void addSecuritySchemeType(final Multimap map, final SecurityScheme scheme) {
    EObject _eContainer = scheme.eContainer();
    if ((_eContainer instanceof SecuritySchemeLibrary)) {
      EObject _eContainer_1 = scheme.eContainer();
      final SecuritySchemeLibrary dataModel = ((SecuritySchemeLibrary) _eContainer_1);
      map.put(dataModel, scheme);
    }
  }
  
  @Override
  public String getModelName(final SecuritySchemeLibrary model) {
    return model.getName();
  }
  
  @Override
  public String getElementName(final SecurityScheme element) {
    return element.getName();
  }
  
  @Override
  protected List getModels(final ZenModel model) {
    return Collections.singletonList(model.getSecuritySchemesLibrary());
  }
  
  private void addType(final Multimap map, final EObject sdr) {
    if (sdr instanceof HasSecurityValue) {
      _addType(map, (HasSecurityValue)sdr);
      return;
    } else if (sdr != null) {
      _addType(map, sdr);
      return;
    } else {
      throw new IllegalArgumentException("Unhandled parameter types: " +
        Arrays.asList(map, sdr).toString());
    }
  }
}