Search in sources :

Example 16 with EClass

use of org.eclipse.emf.ecore.EClass in project xtext-core by eclipse.

the class NamesAreUniqueValidationHelperTest method testErrorMessage_04.

@Test
public void testErrorMessage_04() {
    EClass eClass = createEClass();
    eClass.setName("EClassName");
    EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
    attribute.setName("Attribute");
    eClass.getEStructuralFeatures().add(attribute);
    IEObjectDescription description = EObjectDescription.create(QualifiedName.create(attribute.getName()), attribute);
    String errorMessage = helper.getDuplicateNameErrorMessage(description, EcorePackage.Literals.EATTRIBUTE, EcorePackage.Literals.ENAMED_ELEMENT__NAME);
    assertEquals("Duplicate EAttribute 'Attribute' in EClass 'EClassName'", errorMessage);
}
Also used : EClass(org.eclipse.emf.ecore.EClass) EAttribute(org.eclipse.emf.ecore.EAttribute) IEObjectDescription(org.eclipse.xtext.resource.IEObjectDescription) Test(org.junit.Test)

Example 17 with EClass

use of org.eclipse.emf.ecore.EClass in project xtext-core by eclipse.

the class NamesAreUniqueValidationHelperTest method testErrorMessage_01.

@Test
public void testErrorMessage_01() {
    EClass eClass = createEClass();
    eClass.setName("EClassName");
    IEObjectDescription description = EObjectDescription.create(QualifiedName.create(eClass.getName()), eClass);
    String errorMessage = helper.getDuplicateNameErrorMessage(description, EcorePackage.Literals.ECLASSIFIER, EcorePackage.Literals.ENAMED_ELEMENT__NAME);
    assertEquals("Duplicate EClassifier 'EClassName'", errorMessage);
}
Also used : EClass(org.eclipse.emf.ecore.EClass) IEObjectDescription(org.eclipse.xtext.resource.IEObjectDescription) Test(org.junit.Test)

Example 18 with EClass

use of org.eclipse.emf.ecore.EClass in project xtext-core by eclipse.

the class NamesAreUniqueValidationHelperTest method testErrorMessage_03.

@Test
public void testErrorMessage_03() {
    EClass eClass = createEClass();
    eClass.setName("EClassName");
    EAttribute attribute = EcoreFactory.eINSTANCE.createEAttribute();
    attribute.setName("Attribute");
    eClass.getEStructuralFeatures().add(attribute);
    IEObjectDescription description = EObjectDescription.create(QualifiedName.create(eClass.getName(), attribute.getName()), attribute);
    String errorMessage = helper.getDuplicateNameErrorMessage(description, EcorePackage.Literals.EATTRIBUTE, EcorePackage.Literals.ENAMED_ELEMENT__NAME);
    assertEquals("Duplicate EAttribute 'Attribute' in EClass 'EClassName'", errorMessage);
}
Also used : EClass(org.eclipse.emf.ecore.EClass) EAttribute(org.eclipse.emf.ecore.EAttribute) IEObjectDescription(org.eclipse.xtext.resource.IEObjectDescription) Test(org.junit.Test)

Example 19 with EClass

use of org.eclipse.emf.ecore.EClass in project xtext-core by eclipse.

the class NamesAreUniqueValidatorTest method setUp.

@Override
public void setUp() throws Exception {
    super.setUp();
    context = Maps.newHashMap();
    validator = new NamesAreUniqueValidator() {

        @Override
        protected Map<Object, Object> getContext() {
            return context;
        }
    };
    validator.setResourceServiceProviderRegistry(this);
    validator.setHelper(this);
    final DefaultResourceDescriptionStrategy strategy = new DefaultResourceDescriptionStrategy();
    strategy.setQualifiedNameProvider(new IQualifiedNameProvider.AbstractImpl() {

        @Override
        public QualifiedName getFullyQualifiedName(EObject obj) {
            return QualifiedName.create(SimpleAttributeResolver.NAME_RESOLVER.getValue(obj));
        }
    });
    resourceDescriptionManager = new DefaultResourceDescriptionManager() {

        @Override
        public IResourceDescription getResourceDescription(Resource resource) {
            DefaultResourceDescription resourceDescription = new DefaultResourceDescription(resource, strategy);
            return resourceDescription;
        }
    };
    callCount = 0;
    resource = new ResourceImpl();
    resource.getContents().add(EcoreFactory.eINSTANCE.createEClass());
    resource.getContents().add(EcoreFactory.eINSTANCE.createEClass());
    resource.getContents().add(EcoreFactory.eINSTANCE.createEClass());
    for (int i = 0; i < resource.getContents().size(); i++) {
        EClass clazz = (EClass) resource.getContents().get(i);
        clazz.setName(String.valueOf(i));
    }
}
Also used : IResourceDescription(org.eclipse.xtext.resource.IResourceDescription) DefaultResourceDescription(org.eclipse.xtext.resource.impl.DefaultResourceDescription) QualifiedName(org.eclipse.xtext.naming.QualifiedName) Resource(org.eclipse.emf.ecore.resource.Resource) DefaultResourceDescriptionManager(org.eclipse.xtext.resource.impl.DefaultResourceDescriptionManager) EClass(org.eclipse.emf.ecore.EClass) IQualifiedNameProvider(org.eclipse.xtext.naming.IQualifiedNameProvider) ResourceImpl(org.eclipse.emf.ecore.resource.impl.ResourceImpl) EObject(org.eclipse.emf.ecore.EObject) DefaultResourceDescriptionStrategy(org.eclipse.xtext.resource.impl.DefaultResourceDescriptionStrategy) Map(java.util.Map)

Example 20 with EClass

use of org.eclipse.emf.ecore.EClass in project xtext-core by eclipse.

the class ResourceValidatorImplTest method setUp.

@Override
public void setUp() throws Exception {
    super.setUp();
    with(new LangATestLanguageStandaloneSetup());
    EValidator.Registry.INSTANCE.put(LangATestLanguagePackage.eINSTANCE, new EValidator() {

        @Override
        public boolean validate(EObject eObject, DiagnosticChain diagnostics, Map<Object, Object> context) {
            if (eObject instanceof Type) {
                String name = ((Type) eObject).getName();
                if (name.equals("Foo"))
                    diagnostics.add(new BasicDiagnostic(Diagnostic.ERROR, "", 12, "Foo", null));
                if (name.equals("Bar"))
                    diagnostics.add(new BasicDiagnostic(Diagnostic.WARNING, "", 12, "Foo", null));
            }
            return true;
        }

        @Override
        public boolean validate(EClass eClass, EObject eObject, DiagnosticChain diagnostics, Map<Object, Object> context) {
            return validate(eObject, diagnostics, context);
        }

        @Override
        public boolean validate(EDataType eDataType, Object value, DiagnosticChain diagnostics, Map<Object, Object> context) {
            return false;
        }
    });
}
Also used : EDataType(org.eclipse.emf.ecore.EDataType) Type(org.eclipse.xtext.linking.langATestLanguage.Type) EClass(org.eclipse.emf.ecore.EClass) BasicDiagnostic(org.eclipse.emf.common.util.BasicDiagnostic) EDataType(org.eclipse.emf.ecore.EDataType) EObject(org.eclipse.emf.ecore.EObject) EValidator(org.eclipse.emf.ecore.EValidator) DiagnosticChain(org.eclipse.emf.common.util.DiagnosticChain) EObject(org.eclipse.emf.ecore.EObject) LangATestLanguageStandaloneSetup(org.eclipse.xtext.linking.LangATestLanguageStandaloneSetup)

Aggregations

EClass (org.eclipse.emf.ecore.EClass)205 Test (org.junit.Test)99 EPackage (org.eclipse.emf.ecore.EPackage)70 EClassifier (org.eclipse.emf.ecore.EClassifier)67 StringConcatenation (org.eclipse.xtend2.lib.StringConcatenation)43 EObject (org.eclipse.emf.ecore.EObject)35 EStructuralFeature (org.eclipse.emf.ecore.EStructuralFeature)27 Resource (org.eclipse.emf.ecore.resource.Resource)23 EReference (org.eclipse.emf.ecore.EReference)22 IEObjectDescription (org.eclipse.xtext.resource.IEObjectDescription)16 ISerializationContext (org.eclipse.xtext.serializer.ISerializationContext)13 ParserRule (org.eclipse.xtext.ParserRule)12 QualifiedName (org.eclipse.xtext.naming.QualifiedName)12 InternalEObject (org.eclipse.emf.ecore.InternalEObject)11 StringConcatenationClient (org.eclipse.xtend2.lib.StringConcatenationClient)11 IScope (org.eclipse.xtext.scoping.IScope)11 ArrayList (java.util.ArrayList)10 AbstractRule (org.eclipse.xtext.AbstractRule)10 List (java.util.List)9 ResourceSet (org.eclipse.emf.ecore.resource.ResourceSet)9