From 0a21cf7ee37b2afcc71eccca34be455fc4d3f038 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Tue, 5 Feb 2019 23:53:50 +0100 Subject: Generated files change --- .../.ApplicationConfigurationIdeModule.xtendbin | Bin 1701 -> 1701 bytes .../ide/.ApplicationConfigurationIdeSetup.xtendbin | Bin 2526 -> 2526 bytes .../ide/ApplicationConfigurationIdeModule.java | 26 +- .../ide/ApplicationConfigurationIdeSetup.java | 48 ++-- .../application/validation/MetamodelValidator.java | 314 ++++++++++----------- .../validation/QueryAndMetamodelValidator.java | 172 +++++------ ...licationConfigurationValueConverterService.java | 32 +-- 7 files changed, 296 insertions(+), 296 deletions(-) (limited to 'Application') diff --git a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeModule.xtendbin b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeModule.xtendbin index 3a607d3e..879d3171 100644 Binary files a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeModule.xtendbin and b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeModule.xtendbin differ diff --git a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeSetup.xtendbin b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeSetup.xtendbin index 46e639f1..1583d4f9 100644 Binary files a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeSetup.xtendbin and b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/.ApplicationConfigurationIdeSetup.xtendbin differ diff --git a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeModule.java b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeModule.java index 34f65780..f4d40594 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeModule.java +++ b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeModule.java @@ -1,13 +1,13 @@ -/** - * generated by Xtext 2.12.0 - */ -package hu.bme.mit.inf.dslreasoner.application.ide; - -import hu.bme.mit.inf.dslreasoner.application.ide.AbstractApplicationConfigurationIdeModule; - -/** - * Use this class to register ide components. - */ -@SuppressWarnings("all") -public class ApplicationConfigurationIdeModule extends AbstractApplicationConfigurationIdeModule { -} +/** + * generated by Xtext 2.12.0 + */ +package hu.bme.mit.inf.dslreasoner.application.ide; + +import hu.bme.mit.inf.dslreasoner.application.ide.AbstractApplicationConfigurationIdeModule; + +/** + * Use this class to register ide components. + */ +@SuppressWarnings("all") +public class ApplicationConfigurationIdeModule extends AbstractApplicationConfigurationIdeModule { +} diff --git a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeSetup.java b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeSetup.java index a73d3f1f..2281147c 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeSetup.java +++ b/Application/hu.bme.mit.inf.dslreasoner.application.ide/xtend-gen/hu/bme/mit/inf/dslreasoner/application/ide/ApplicationConfigurationIdeSetup.java @@ -1,24 +1,24 @@ -/** - * generated by Xtext 2.12.0 - */ -package hu.bme.mit.inf.dslreasoner.application.ide; - -import com.google.inject.Guice; -import com.google.inject.Injector; -import hu.bme.mit.inf.dslreasoner.application.ApplicationConfigurationRuntimeModule; -import hu.bme.mit.inf.dslreasoner.application.ApplicationConfigurationStandaloneSetup; -import hu.bme.mit.inf.dslreasoner.application.ide.ApplicationConfigurationIdeModule; -import org.eclipse.xtext.util.Modules2; - -/** - * Initialization support for running Xtext languages as language servers. - */ -@SuppressWarnings("all") -public class ApplicationConfigurationIdeSetup extends ApplicationConfigurationStandaloneSetup { - @Override - public Injector createInjector() { - ApplicationConfigurationRuntimeModule _applicationConfigurationRuntimeModule = new ApplicationConfigurationRuntimeModule(); - ApplicationConfigurationIdeModule _applicationConfigurationIdeModule = new ApplicationConfigurationIdeModule(); - return Guice.createInjector(Modules2.mixin(_applicationConfigurationRuntimeModule, _applicationConfigurationIdeModule)); - } -} +/** + * generated by Xtext 2.12.0 + */ +package hu.bme.mit.inf.dslreasoner.application.ide; + +import com.google.inject.Guice; +import com.google.inject.Injector; +import hu.bme.mit.inf.dslreasoner.application.ApplicationConfigurationRuntimeModule; +import hu.bme.mit.inf.dslreasoner.application.ApplicationConfigurationStandaloneSetup; +import hu.bme.mit.inf.dslreasoner.application.ide.ApplicationConfigurationIdeModule; +import org.eclipse.xtext.util.Modules2; + +/** + * Initialization support for running Xtext languages as language servers. + */ +@SuppressWarnings("all") +public class ApplicationConfigurationIdeSetup extends ApplicationConfigurationStandaloneSetup { + @Override + public Injector createInjector() { + ApplicationConfigurationRuntimeModule _applicationConfigurationRuntimeModule = new ApplicationConfigurationRuntimeModule(); + ApplicationConfigurationIdeModule _applicationConfigurationIdeModule = new ApplicationConfigurationIdeModule(); + return Guice.createInjector(Modules2.mixin(_applicationConfigurationRuntimeModule, _applicationConfigurationIdeModule)); + } +} diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/validation/MetamodelValidator.java b/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/validation/MetamodelValidator.java index 2a2e1047..872814b8 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/validation/MetamodelValidator.java +++ b/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/validation/MetamodelValidator.java @@ -1,157 +1,157 @@ -package hu.bme.mit.inf.dslreasoner.application.validation; - -import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EAttribute; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EDataType; -import org.eclipse.emf.ecore.EEnum; -import org.eclipse.emf.ecore.EEnumLiteral; -import org.eclipse.emf.ecore.EReference; -import org.eclipse.emf.ecore.EcorePackage; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Extension; - -@SuppressWarnings("all") -public class MetamodelValidator { - public LinkedList validateMetamodel(final EcoreMetamodelDescriptor descriptor) { - final LinkedList errors = new LinkedList(); - this.allSupertypesAreIncluded(descriptor.getClasses(), errors); - this.allEnumTypesareIncluded(descriptor.getEnums(), descriptor.getLiterals(), errors); - this.referenceEndpointsAreIncluded(descriptor.getClasses(), descriptor.getReferences(), errors); - this.attributeSourcePontIsIncluded(descriptor.getClasses(), descriptor.getAttributes(), errors); - this.attributeTargetIsSupported(descriptor.getAttributes(), errors); - return errors; - } - - private boolean supportedEDataType(final EDataType dataType) { - @Extension - final EcorePackage l = EcorePackage.eINSTANCE; - EDataType _eInt = l.getEInt(); - EDataType _eBoolean = l.getEBoolean(); - EDataType _eString = l.getEString(); - EDataType _eDouble = l.getEDouble(); - EDataType _eFloat = l.getEFloat(); - return Collections.unmodifiableList(CollectionLiterals.newArrayList(_eInt, _eBoolean, _eString, _eDouble, _eFloat)).contains(dataType); - } - - public void allSupertypesAreIncluded(final List classes, final List errors) { - for (final EClass c : classes) { - EList _eSuperTypes = c.getESuperTypes(); - for (final EClass s : _eSuperTypes) { - boolean _contains = classes.contains(s); - boolean _not = (!_contains); - if (_not) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("Metamodel contains \""); - String _name = c.getName(); - _builder.append(_name); - _builder.append("\" but not contains its supertype \""); - String _name_1 = s.getName(); - _builder.append(_name_1); - _builder.append("\"!"); - errors.add(_builder.toString()); - } - } - } - } - - public void allEnumTypesareIncluded(final List enums, final List literals, final List errors) { - for (final EEnumLiteral l : literals) { - boolean _contains = enums.contains(l.getEEnum()); - boolean _not = (!_contains); - if (_not) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("Metamodel contains literal \""); - String _name = l.getName(); - _builder.append(_name); - _builder.append("\" but does not contains enum \""); - String _name_1 = l.getEEnum().getName(); - _builder.append(_name_1); - _builder.append("\"!"); - errors.add(_builder.toString()); - } - } - } - - public void referenceEndpointsAreIncluded(final List classes, final List references, final List errors) { - for (final EReference reference : references) { - { - final EClass src = reference.getEContainingClass(); - boolean _contains = classes.contains(src); - boolean _not = (!_contains); - if (_not) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("Metamodel contains reference \""); - String _name = reference.getName(); - _builder.append(_name); - _builder.append("\" but does not contains its source type \""); - String _name_1 = src.getName(); - _builder.append(_name_1); - _builder.append("\"!"); - errors.add(_builder.toString()); - } - final EClass trg = reference.getEReferenceType(); - boolean _contains_1 = classes.contains(trg); - boolean _not_1 = (!_contains_1); - if (_not_1) { - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("Metamodel contains reference \""); - String _name_2 = reference.getName(); - _builder_1.append(_name_2); - _builder_1.append("\" but does not contains its target type \""); - String _name_3 = trg.getName(); - _builder_1.append(_name_3); - _builder_1.append("\"!"); - errors.add(_builder_1.toString()); - } - } - } - } - - public void attributeSourcePontIsIncluded(final List classes, final List attributes, final List errors) { - for (final EAttribute attribute : attributes) { - { - final Class src = attribute.getContainerClass(); - boolean _contains = classes.contains(src); - boolean _not = (!_contains); - if (_not) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("Metamodel contains attribute \""); - String _name = attribute.getName(); - _builder.append(_name); - _builder.append("\" but does not contains its source type \""); - String _name_1 = src.getName(); - _builder.append(_name_1); - _builder.append("\"!"); - errors.add(_builder.toString()); - } - } - } - } - - public void attributeTargetIsSupported(final List attributes, final List errors) { - for (final EAttribute attribute : attributes) { - { - final EDataType trg = attribute.getEAttributeType(); - boolean _supportedEDataType = this.supportedEDataType(trg); - boolean _not = (!_supportedEDataType); - if (_not) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("Metamodels contains attribute \""); - String _name = attribute.getName(); - _builder.append(_name); - _builder.append("\" with unsupported type \""); - String _name_1 = trg.getName(); - _builder.append(_name_1); - _builder.append("\"!"); - errors.add(_builder.toString()); - } - } - } - } -} +package hu.bme.mit.inf.dslreasoner.application.validation; + +import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EEnumLiteral; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EcorePackage; +import org.eclipse.xtend2.lib.StringConcatenation; +import org.eclipse.xtext.xbase.lib.CollectionLiterals; +import org.eclipse.xtext.xbase.lib.Extension; + +@SuppressWarnings("all") +public class MetamodelValidator { + public LinkedList validateMetamodel(final EcoreMetamodelDescriptor descriptor) { + final LinkedList errors = new LinkedList(); + this.allSupertypesAreIncluded(descriptor.getClasses(), errors); + this.allEnumTypesareIncluded(descriptor.getEnums(), descriptor.getLiterals(), errors); + this.referenceEndpointsAreIncluded(descriptor.getClasses(), descriptor.getReferences(), errors); + this.attributeSourcePontIsIncluded(descriptor.getClasses(), descriptor.getAttributes(), errors); + this.attributeTargetIsSupported(descriptor.getAttributes(), errors); + return errors; + } + + private boolean supportedEDataType(final EDataType dataType) { + @Extension + final EcorePackage l = EcorePackage.eINSTANCE; + EDataType _eInt = l.getEInt(); + EDataType _eBoolean = l.getEBoolean(); + EDataType _eString = l.getEString(); + EDataType _eDouble = l.getEDouble(); + EDataType _eFloat = l.getEFloat(); + return Collections.unmodifiableList(CollectionLiterals.newArrayList(_eInt, _eBoolean, _eString, _eDouble, _eFloat)).contains(dataType); + } + + public void allSupertypesAreIncluded(final List classes, final List errors) { + for (final EClass c : classes) { + EList _eSuperTypes = c.getESuperTypes(); + for (final EClass s : _eSuperTypes) { + boolean _contains = classes.contains(s); + boolean _not = (!_contains); + if (_not) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("Metamodel contains \""); + String _name = c.getName(); + _builder.append(_name); + _builder.append("\" but not contains its supertype \""); + String _name_1 = s.getName(); + _builder.append(_name_1); + _builder.append("\"!"); + errors.add(_builder.toString()); + } + } + } + } + + public void allEnumTypesareIncluded(final List enums, final List literals, final List errors) { + for (final EEnumLiteral l : literals) { + boolean _contains = enums.contains(l.getEEnum()); + boolean _not = (!_contains); + if (_not) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("Metamodel contains literal \""); + String _name = l.getName(); + _builder.append(_name); + _builder.append("\" but does not contains enum \""); + String _name_1 = l.getEEnum().getName(); + _builder.append(_name_1); + _builder.append("\"!"); + errors.add(_builder.toString()); + } + } + } + + public void referenceEndpointsAreIncluded(final List classes, final List references, final List errors) { + for (final EReference reference : references) { + { + final EClass src = reference.getEContainingClass(); + boolean _contains = classes.contains(src); + boolean _not = (!_contains); + if (_not) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("Metamodel contains reference \""); + String _name = reference.getName(); + _builder.append(_name); + _builder.append("\" but does not contains its source type \""); + String _name_1 = src.getName(); + _builder.append(_name_1); + _builder.append("\"!"); + errors.add(_builder.toString()); + } + final EClass trg = reference.getEReferenceType(); + boolean _contains_1 = classes.contains(trg); + boolean _not_1 = (!_contains_1); + if (_not_1) { + StringConcatenation _builder_1 = new StringConcatenation(); + _builder_1.append("Metamodel contains reference \""); + String _name_2 = reference.getName(); + _builder_1.append(_name_2); + _builder_1.append("\" but does not contains its target type \""); + String _name_3 = trg.getName(); + _builder_1.append(_name_3); + _builder_1.append("\"!"); + errors.add(_builder_1.toString()); + } + } + } + } + + public void attributeSourcePontIsIncluded(final List classes, final List attributes, final List errors) { + for (final EAttribute attribute : attributes) { + { + final Class src = attribute.getContainerClass(); + boolean _contains = classes.contains(src); + boolean _not = (!_contains); + if (_not) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("Metamodel contains attribute \""); + String _name = attribute.getName(); + _builder.append(_name); + _builder.append("\" but does not contains its source type \""); + String _name_1 = src.getName(); + _builder.append(_name_1); + _builder.append("\"!"); + errors.add(_builder.toString()); + } + } + } + } + + public void attributeTargetIsSupported(final List attributes, final List errors) { + for (final EAttribute attribute : attributes) { + { + final EDataType trg = attribute.getEAttributeType(); + boolean _supportedEDataType = this.supportedEDataType(trg); + boolean _not = (!_supportedEDataType); + if (_not) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("Metamodels contains attribute \""); + String _name = attribute.getName(); + _builder.append(_name); + _builder.append("\" with unsupported type \""); + String _name_1 = trg.getName(); + _builder.append(_name_1); + _builder.append("\"!"); + errors.add(_builder.toString()); + } + } + } + } +} diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.java b/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.java index 3ed13964..e6840f6f 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.java +++ b/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/validation/QueryAndMetamodelValidator.java @@ -1,86 +1,86 @@ -package hu.bme.mit.inf.dslreasoner.application.validation; - -import com.google.common.collect.Iterables; -import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; -import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EAttribute; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.EClassifier; -import org.eclipse.emf.ecore.EEnum; -import org.eclipse.emf.ecore.EEnumLiteral; -import org.eclipse.emf.ecore.ENamedElement; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EReference; -import org.eclipse.viatra.query.patternlanguage.emf.vql.Pattern; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.xbase.lib.CollectionLiterals; -import org.eclipse.xtext.xbase.lib.Functions.Function1; -import org.eclipse.xtext.xbase.lib.IterableExtensions; -import org.eclipse.xtext.xbase.lib.IteratorExtensions; -import org.eclipse.xtext.xbase.lib.ListExtensions; -import org.eclipse.xtext.xbase.lib.Pair; - -@SuppressWarnings("all") -public class QueryAndMetamodelValidator { - public LinkedList validateQueryAndMetamodel(final EcoreMetamodelDescriptor metamodel, final Pair> viatra) { - final Set patterns = viatra.getValue(); - List _classes = metamodel.getClasses(); - List _enums = metamodel.getEnums(); - Iterable _plus = Iterables.concat(_classes, _enums); - List _literals = metamodel.getLiterals(); - Iterable _plus_1 = Iterables.concat(_plus, _literals); - List _attributes = metamodel.getAttributes(); - Iterable _plus_2 = Iterables.concat(_plus_1, _attributes); - List _references = metamodel.getReferences(); - final Set elementsInMetamodel = IterableExtensions.toSet(Iterables.concat(_plus_2, _references)); - final LinkedList errors = new LinkedList(); - for (final Pattern pattern : patterns) { - { - final Iterable elements = this.getReferredNamedElements(pattern); - for (final ENamedElement element : elements) { - boolean _contains = elementsInMetamodel.contains(element); - boolean _not = (!_contains); - if (_not) { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("Pattern \""); - String _name = pattern.getName(); - _builder.append(_name); - _builder.append("\" refers to an element \""); - _builder.append(element); - _builder.append("\" that is not included to the selected metamodel!"); - errors.add(_builder.toString()); - } - } - } - } - return errors; - } - - public Iterable getReferredNamedElements(final Pattern pattern) { - final List elements = IteratorExtensions.toList(pattern.eAllContents()); - final Function1> _function = (EObject element) -> { - final EList references = element.eClass().getEAllReferences(); - final Function1> _function_1 = (EReference r) -> { - boolean _isMany = r.isMany(); - if (_isMany) { - Object _eGet = element.eGet(r); - return Iterables.filter(((List) _eGet), ENamedElement.class); - } else { - final Object value = element.eGet(r); - if ((value instanceof ENamedElement)) { - return Collections.unmodifiableList(CollectionLiterals.newArrayList(((ENamedElement)value))); - } else { - return Collections.unmodifiableList(CollectionLiterals.newArrayList()); - } - } - }; - return Iterables.filter(Iterables.concat(ListExtensions.>map(references, _function_1)), ENamedElement.class); - }; - return Iterables.concat(ListExtensions.>map(elements, _function)); - } -} +package hu.bme.mit.inf.dslreasoner.application.validation; + +import com.google.common.collect.Iterables; +import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; +import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EEnumLiteral; +import org.eclipse.emf.ecore.ENamedElement; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.viatra.query.patternlanguage.emf.vql.Pattern; +import org.eclipse.xtend2.lib.StringConcatenation; +import org.eclipse.xtext.xbase.lib.CollectionLiterals; +import org.eclipse.xtext.xbase.lib.Functions.Function1; +import org.eclipse.xtext.xbase.lib.IterableExtensions; +import org.eclipse.xtext.xbase.lib.IteratorExtensions; +import org.eclipse.xtext.xbase.lib.ListExtensions; +import org.eclipse.xtext.xbase.lib.Pair; + +@SuppressWarnings("all") +public class QueryAndMetamodelValidator { + public LinkedList validateQueryAndMetamodel(final EcoreMetamodelDescriptor metamodel, final Pair> viatra) { + final Set patterns = viatra.getValue(); + List _classes = metamodel.getClasses(); + List _enums = metamodel.getEnums(); + Iterable _plus = Iterables.concat(_classes, _enums); + List _literals = metamodel.getLiterals(); + Iterable _plus_1 = Iterables.concat(_plus, _literals); + List _attributes = metamodel.getAttributes(); + Iterable _plus_2 = Iterables.concat(_plus_1, _attributes); + List _references = metamodel.getReferences(); + final Set elementsInMetamodel = IterableExtensions.toSet(Iterables.concat(_plus_2, _references)); + final LinkedList errors = new LinkedList(); + for (final Pattern pattern : patterns) { + { + final Iterable elements = this.getReferredNamedElements(pattern); + for (final ENamedElement element : elements) { + boolean _contains = elementsInMetamodel.contains(element); + boolean _not = (!_contains); + if (_not) { + StringConcatenation _builder = new StringConcatenation(); + _builder.append("Pattern \""); + String _name = pattern.getName(); + _builder.append(_name); + _builder.append("\" refers to an element \""); + _builder.append(element); + _builder.append("\" that is not included to the selected metamodel!"); + errors.add(_builder.toString()); + } + } + } + } + return errors; + } + + public Iterable getReferredNamedElements(final Pattern pattern) { + final List elements = IteratorExtensions.toList(pattern.eAllContents()); + final Function1> _function = (EObject element) -> { + final EList references = element.eClass().getEAllReferences(); + final Function1> _function_1 = (EReference r) -> { + boolean _isMany = r.isMany(); + if (_isMany) { + Object _eGet = element.eGet(r); + return Iterables.filter(((List) _eGet), ENamedElement.class); + } else { + final Object value = element.eGet(r); + if ((value instanceof ENamedElement)) { + return Collections.unmodifiableList(CollectionLiterals.newArrayList(((ENamedElement)value))); + } else { + return Collections.unmodifiableList(CollectionLiterals.newArrayList()); + } + } + }; + return Iterables.filter(Iterables.concat(ListExtensions.>map(references, _function_1)), ENamedElement.class); + }; + return Iterables.concat(ListExtensions.>map(elements, _function)); + } +} diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/valueconverter/ApplicationConfigurationValueConverterService.java b/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/valueconverter/ApplicationConfigurationValueConverterService.java index e617a132..59a09906 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/valueconverter/ApplicationConfigurationValueConverterService.java +++ b/Application/hu.bme.mit.inf.dslreasoner.application/xtend-gen/hu/bme/mit/inf/dslreasoner/application/valueconverter/ApplicationConfigurationValueConverterService.java @@ -1,16 +1,16 @@ -package hu.bme.mit.inf.dslreasoner.application.valueconverter; - -import hu.bme.mit.inf.dslreasoner.application.valueconverter.QualifiedNameValueConverter; -import org.eclipse.xtext.common.services.DefaultTerminalConverters; -import org.eclipse.xtext.conversion.IValueConverter; -import org.eclipse.xtext.conversion.ValueConverter; - -@SuppressWarnings("all") -public class ApplicationConfigurationValueConverterService extends DefaultTerminalConverters { - private final QualifiedNameValueConverter converter2 = new QualifiedNameValueConverter(); - - @ValueConverter(rule = "QualifiedName") - public IValueConverter QualifiedName() { - return this.converter2; - } -} +package hu.bme.mit.inf.dslreasoner.application.valueconverter; + +import hu.bme.mit.inf.dslreasoner.application.valueconverter.QualifiedNameValueConverter; +import org.eclipse.xtext.common.services.DefaultTerminalConverters; +import org.eclipse.xtext.conversion.IValueConverter; +import org.eclipse.xtext.conversion.ValueConverter; + +@SuppressWarnings("all") +public class ApplicationConfigurationValueConverterService extends DefaultTerminalConverters { + private final QualifiedNameValueConverter converter2 = new QualifiedNameValueConverter(); + + @ValueConverter(rule = "QualifiedName") + public IValueConverter QualifiedName() { + return this.converter2; + } +} -- cgit v1.2.3-54-g00ecf