use of com.avaloq.tools.ddk.xtext.export.export.InterfaceField in project dsl-devkit by dsldevkit.
the class ExportJavaValidator method checkInterfaceFieldUniqueness.
/**
* Checks that the interface don't have overlapping features, as a feature export is inherited by the export of subtypes.
*
* @param context
* model to check
*/
@Check
public void checkInterfaceFieldUniqueness(final ExportModel context) {
UniquenessJavaValidationHelper<InterfaceField> helper1 = new UniquenessJavaValidationHelper<InterfaceField>(new AbstractNameFunction() {
@Override
public QualifiedName apply(final EObject from) {
String name = ((InterfaceField) from).getField().getName();
return QualifiedName.create(name != null ? name : "");
}
}, getMessageAcceptor());
UniquenessJavaValidationHelper<InterfaceNavigation> helper2 = new UniquenessJavaValidationHelper<InterfaceNavigation>(new AbstractNameFunction() {
@Override
public QualifiedName apply(final EObject from) {
String name = ((InterfaceNavigation) from).getRef().getName();
return QualifiedName.create(name != null ? name : "");
}
}, getMessageAcceptor());
for (Interface fingertype : context.getInterfaces()) {
helper1.errorOnDuplicates(Iterables.filter(fingertype.getItems(), InterfaceField.class), ExportPackage.Literals.INTERFACE_FIELD__FIELD);
helper2.errorOnDuplicates(Iterables.filter(fingertype.getItems(), InterfaceNavigation.class), ExportPackage.Literals.INTERFACE_NAVIGATION__REF);
}
}
Aggregations