blob: 27afa51bd1aed44d05d295dae9c37cf90f55c2e5 [file] [log] [blame]
/**
*
* Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
*
*
* This copyright notice shows up in the generated Java code
*
*/
package org.eclipse.osbp.xtext.entitymock.validation
import org.eclipse.emf.common.util.EList
import org.eclipse.osbp.xtext.entitymock.EntityMock
import org.eclipse.osbp.xtext.entitymock.EntityMockDSLPackage
import org.eclipse.osbp.xtext.entitymock.EntityMockPackage
import org.eclipse.xtext.validation.Check
/**
* Custom validation rules.
*
* see http://www.eclipse.org/Xtext/documentation.html#validation
*/
class EntityMockDSLValidator extends AbstractEntityMockDSLValidator {
@Check
def void checkDuplicateElementId(EntityMock mock){
var eObj = mock.eContainer()
while (!(eObj instanceof EntityMockPackage)) {
eObj = eObj.eContainer
}
if (eObj!==null){
var mockPackage = eObj as EntityMockPackage;
if (findDuplicateChartNames(mockPackage.mocks, mock.getName()) !== null){
error("Duplicate name '".concat(mock.getName()).concat("'!"), EntityMockDSLPackage.Literals.ENTITY_MOCK__NAME)
}
}
}
def private EntityMock findDuplicateChartNames(
EList<EntityMock> mocks, String mockName) {
var tempSet = <String>newHashSet()
for (EntityMock mock : mocks){
if (!tempSet.add(mock.name) && (mock.name.equals(mockName))){
return mock
}
}
return null
}
}