Loading plugins/org.etsi.mts.tdl.model/src/org/etsi/mts/tdl/Validator.java +41 −0 Changes for plugins/org.etsi.mts.tdl.model/src/org/etsi/mts/tdl/Validator.java: 41 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import org.eclipse.ocl.pivot.resource.CSResource; import org.eclipse.ocl.pivot.utilities.PivotUtil; import org.eclipse.ocl.pivot.validation.ValidationRegistryAdapter; import org.eclipse.ocl.xtext.completeocl.validation.CompleteOCLEObjectValidator; import org.eclipse.ocl.xtext.oclinecore.validation.OCLinEcoreEObjectValidator; import org.eclipse.xtext.validation.CompositeEValidator; import org.eclipse.xtext.validation.EValidatorRegistrar; import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; Loading Loading @@ -79,12 +81,51 @@ public class Validator { } public static void removeValidator(EPackage ePackage){ EValidator existingValidator = EValidator.Registry.INSTANCE.getEValidator(ePackage); if (existingValidator instanceof CompositeEValidator) { ((CompositeEValidator) existingValidator).getContents().removeIf(e -> e.getDelegate() instanceof CompleteOCLEObjectValidator); } if (true) return; EValidator.Registry.INSTANCE.remove(ePackage); validator = null; } public static void registerValidator(String path, EPackage ePackage, BundleContext context) { // EValidator.Registry.INSTANCE.put(null, new OCLinEcoreEObjectValidator()); // EValidator.Registry.INSTANCE.put(ePackage, tdlValidator.INSTANCE); //TODO: currently nukes all other registered validators (e.g. Xtext one), better to add and remove as needed instead.. EValidator existingValidator = EValidator.Registry.INSTANCE.getEValidator(ePackage); if (existingValidator instanceof CompositeEValidator) { Path oclPath = new Path(path); URL oclURL = FileLocator.find(context.getBundle(), oclPath); URI oclURI; try { oclURI = URI.createURI(oclURL.toURI().toString()); CompleteOCLEObjectValidator validator = createValidator(ePackage, oclURI); ((CompositeEValidator) existingValidator).addValidator(validator); //EValidator.Registry.INSTANCE.put(ePackage, validator); } catch (URISyntaxException e) { throw new RuntimeException(e); } //.add(evlValidator); } else { // if (existingValidator == null) { // existingValidator = EObjectValidator.INSTANCE; // } // CompositeEValidator newValidator = new CompositeEValidator(); // newValidator.getDelegates().add(existingValidator); // newValidator.getDelegates().add(evlValidator); // EValidator.Registry.INSTANCE.put(ePackage, newValidator); } if (true) return; Path oclPath = new Path(path); URL oclURL = FileLocator.find(context.getBundle(), oclPath); Loading Loading
plugins/org.etsi.mts.tdl.model/src/org/etsi/mts/tdl/Validator.java +41 −0 Changes for plugins/org.etsi.mts.tdl.model/src/org/etsi/mts/tdl/Validator.java: 41 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import org.eclipse.ocl.pivot.resource.CSResource; import org.eclipse.ocl.pivot.utilities.PivotUtil; import org.eclipse.ocl.pivot.validation.ValidationRegistryAdapter; import org.eclipse.ocl.xtext.completeocl.validation.CompleteOCLEObjectValidator; import org.eclipse.ocl.xtext.oclinecore.validation.OCLinEcoreEObjectValidator; import org.eclipse.xtext.validation.CompositeEValidator; import org.eclipse.xtext.validation.EValidatorRegistrar; import org.etsi.mts.tdl.extendedconfigurations.ExtendedConfigurationsPackage; import org.etsi.mts.tdl.structuredobjectives.StructuredObjectivesPackage; Loading Loading @@ -79,12 +81,51 @@ public class Validator { } public static void removeValidator(EPackage ePackage){ EValidator existingValidator = EValidator.Registry.INSTANCE.getEValidator(ePackage); if (existingValidator instanceof CompositeEValidator) { ((CompositeEValidator) existingValidator).getContents().removeIf(e -> e.getDelegate() instanceof CompleteOCLEObjectValidator); } if (true) return; EValidator.Registry.INSTANCE.remove(ePackage); validator = null; } public static void registerValidator(String path, EPackage ePackage, BundleContext context) { // EValidator.Registry.INSTANCE.put(null, new OCLinEcoreEObjectValidator()); // EValidator.Registry.INSTANCE.put(ePackage, tdlValidator.INSTANCE); //TODO: currently nukes all other registered validators (e.g. Xtext one), better to add and remove as needed instead.. EValidator existingValidator = EValidator.Registry.INSTANCE.getEValidator(ePackage); if (existingValidator instanceof CompositeEValidator) { Path oclPath = new Path(path); URL oclURL = FileLocator.find(context.getBundle(), oclPath); URI oclURI; try { oclURI = URI.createURI(oclURL.toURI().toString()); CompleteOCLEObjectValidator validator = createValidator(ePackage, oclURI); ((CompositeEValidator) existingValidator).addValidator(validator); //EValidator.Registry.INSTANCE.put(ePackage, validator); } catch (URISyntaxException e) { throw new RuntimeException(e); } //.add(evlValidator); } else { // if (existingValidator == null) { // existingValidator = EObjectValidator.INSTANCE; // } // CompositeEValidator newValidator = new CompositeEValidator(); // newValidator.getDelegates().add(existingValidator); // newValidator.getDelegates().add(evlValidator); // EValidator.Registry.INSTANCE.put(ePackage, newValidator); } if (true) return; Path oclPath = new Path(path); URL oclURL = FileLocator.find(context.getBundle(), oclPath); Loading