@Check public void checkEnumConstantType(EnumConstant enumConstant) { Enumeration enumeration = (Enumeration) enumConstant.eContainer(); String baseTypeName = enumeration.getBaseType().getName(); if (INT.typeName().equals(baseTypeName)) { if (hasLiteralValue().apply(enumConstant)) { String message = String.format("An int enumeration may use only int enum constants."); error(message, RapidmlPackage.Literals.ENUM_CONSTANT__LITERAL_VALUE); } } if (STRING.typeName().equals(baseTypeName)) { if (hasIntegerValue().apply(enumConstant)) { String message = String.format("A string enumeration may use only string enum constants."); error(message, RapidmlPackage.Literals.ENUM_CONSTANT__INTEGER_VALUE); } } }