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

com.regnosys.rosetta.tests.util.ModelHelper Maven / Gradle / Ivy

There is a newer version: 9.29.0
Show newest version
package com.regnosys.rosetta.tests.util;

import com.google.common.base.Objects;
import com.regnosys.rosetta.builtin.RosettaBuiltinsService;
import com.regnosys.rosetta.generator.java.RosettaJavaPackages;
import com.regnosys.rosetta.rosetta.RosettaModel;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import javax.inject.Inject;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.EcoreUtil2;
import org.eclipse.xtext.testing.util.ParseHelper;
import org.eclipse.xtext.testing.validation.ValidationTestHelper;
import org.eclipse.xtext.xbase.lib.Conversions;
import org.eclipse.xtext.xbase.lib.Exceptions;
import org.eclipse.xtext.xbase.lib.Extension;
import org.eclipse.xtext.xbase.lib.Functions.Function0;
import org.eclipse.xtext.xbase.lib.Functions.Function1;
import org.eclipse.xtext.xbase.lib.ListExtensions;

@SuppressWarnings("all")
public class ModelHelper {
  @Inject
  @Extension
  private ParseHelper _parseHelper;

  @Inject
  @Extension
  private ValidationTestHelper _validationTestHelper;

  @Inject
  private RosettaBuiltinsService builtins;

  public static final String commonTestTypes = new Function0() {
    @Override
    public String apply() {
      StringConcatenation _builder = new StringConcatenation();
      CharSequence _versionInfo = ModelHelper.getVersionInfo();
      _builder.append(_versionInfo);
      _builder.newLineIfNotEmpty();
      _builder.newLine();
      _builder.append("type ReportableEvent:");
      _builder.newLine();
      _builder.newLine();
      _builder.append("metaType scheme string");
      _builder.newLine();
      _builder.append("\t");
      _builder.newLine();
      _builder.append("body Authority ESMA");
      _builder.newLine();
      _builder.append("body Authority CFTC");
      _builder.newLine();
      _builder.append("\t\t");
      _builder.newLine();
      _builder.append("corpus Regulation MiFIR");
      _builder.newLine();
      _builder.append("corpus Regulation EMIR");
      _builder.newLine();
      _builder.newLine();
      _builder.append("corpus CommissionDelegatedRegulation RTS_22");
      _builder.newLine();
      _builder.newLine();
      _builder.append("segment article");
      _builder.newLine();
      _builder.append("segment whereas");
      _builder.newLine();
      _builder.append("segment annex");
      _builder.newLine();
      _builder.append("segment section");
      _builder.newLine();
      _builder.append("segment field");
      _builder.newLine();
      _builder.newLine();
      _builder.append("stereotype entityReferenceData");
      _builder.newLine();
      _builder.append("stereotype productReferenceData");
      _builder.newLine();
      _builder.append("stereotype commondReferenceData");
      _builder.newLine();
      _builder.append("stereotype preExecutionActivity");
      _builder.newLine();
      _builder.append("stereotype executionActivity");
      _builder.newLine();
      _builder.append("stereotype postExecutionActivity");
      _builder.newLine();
      _builder.append("stereotype contractualProduct");
      _builder.newLine();
      _builder.append("stereotype regulatoryEligibility");
      _builder.newLine();
      _builder.append("stereotype regulatoryReporting");
      _builder.newLine();
      _builder.newLine();
      _builder.append("synonym source FIX");
      _builder.newLine();
      _builder.append("synonym source FpML");
      _builder.newLine();
      _builder.append("synonym source DTCC");
      _builder.newLine();
      _builder.append("synonym source ISO");
      _builder.newLine();
      _builder.append("synonym source ISO_20022");
      _builder.newLine();
      _builder.append("synonym source Bank_A");
      _builder.newLine();
      _builder.append("synonym source Venue_B");
      _builder.newLine();
      return _builder.toString();
    }
  }.apply();

  private static CharSequence getVersionInfo() {
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("namespace \"com.rosetta.test.model\"");
    _builder.newLine();
    _builder.append("version \"test\"");
    _builder.newLine();
    return _builder;
  }

  private final RosettaJavaPackages.RootPackage rootpack = new RosettaJavaPackages.RootPackage("com.rosetta.test.model");

  public final RosettaJavaPackages.RootPackage rootPackage() {
    return this.rootpack;
  }

  public RosettaModel parseRosetta(final CharSequence model) {
    try {
      CharSequence m = model;
      CharSequence _subSequence = model.subSequence(0, 9);
      boolean _notEquals = (!Objects.equal(_subSequence, "namespace"));
      if (_notEquals) {
        CharSequence _versionInfo = ModelHelper.getVersionInfo();
        String _plus = (_versionInfo + "\n");
        String _plus_1 = (_plus + m);
        m = _plus_1;
      }
      final ResourceSet resourceSet = this.testResourceSet();
      final RosettaModel parsed = this._parseHelper.parse(m, resourceSet);
      EcoreUtil2.resolveAll(parsed);
      return parsed;
    } catch (Throwable _e) {
      throw Exceptions.sneakyThrow(_e);
    }
  }

  public ArrayList parseRosetta(final CharSequence... models) {
    final ResourceSet resourceSet = this.testResourceSet();
    final Function1 _function = (CharSequence it) -> {
      CharSequence _xifexpression = null;
      CharSequence _subSequence = it.subSequence(0, 9);
      boolean _notEquals = (!Objects.equal(_subSequence, "namespace"));
      if (_notEquals) {
        CharSequence _versionInfo = ModelHelper.getVersionInfo();
        String _plus = (_versionInfo + "\n");
        _xifexpression = (_plus + it);
      } else {
        _xifexpression = it;
      }
      return _xifexpression;
    };
    final Function1 _function_1 = (CharSequence it) -> {
      try {
        return this._parseHelper.parse(it, resourceSet);
      } catch (Throwable _e) {
        throw Exceptions.sneakyThrow(_e);
      }
    };
    List _map = ListExtensions.map(ListExtensions.map(((List)Conversions.doWrapArray(models)), _function), _function_1);
    return new ArrayList(_map);
  }

  public RosettaModel parseRosettaWithNoErrors(final CharSequence model) {
    final RosettaModel parsed = this.parseRosetta(model);
    this._validationTestHelper.assertNoErrors(parsed);
    return parsed;
  }

  public ArrayList parseRosettaWithNoErrors(final CharSequence... models) {
    final ArrayList parsed = this.parseRosetta(models);
    final Consumer _function = (RosettaModel it) -> {
      this._validationTestHelper.assertNoErrors(it);
    };
    parsed.forEach(_function);
    return parsed;
  }

  public RosettaModel parseRosettaWithNoIssues(final CharSequence model) {
    final RosettaModel parsed = this.parseRosetta(model);
    this._validationTestHelper.assertNoIssues(parsed);
    return parsed;
  }

  public ArrayList parseRosettaWithNoIssues(final CharSequence... models) {
    final ArrayList parsed = this.parseRosetta(models);
    final Consumer _function = (RosettaModel it) -> {
      this._validationTestHelper.assertNoIssues(it);
    };
    parsed.forEach(_function);
    return parsed;
  }

  public RosettaModel combineAndParseRosetta(final CharSequence... models) {
    try {
      String m = ModelHelper.getVersionInfo().toString();
      for (final CharSequence model : models) {
        String _m = m;
        m = (_m + ("\n" + model));
      }
      final ResourceSet resourceSet = this.testResourceSet();
      final RosettaModel parsed = this._parseHelper.parse(m, resourceSet);
      this._validationTestHelper.assertNoErrors(parsed);
      return parsed;
    } catch (Throwable _e) {
      throw Exceptions.sneakyThrow(_e);
    }
  }

  public ResourceSet testResourceSet() {
    try {
      final ResourceSet resourceSet = this._parseHelper.parse(ModelHelper.commonTestTypes).eResource().getResourceSet();
      resourceSet.getResource(this.builtins.basicTypesURI, true);
      resourceSet.getResource(this.builtins.annotationsURI, true);
      return resourceSet;
    } catch (Throwable _e) {
      throw Exceptions.sneakyThrow(_e);
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy