Commit 7614cbff authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ alternative methods for validator registration, seem to be recommended, not yet used

parent 419a0ca6
Loading
Loading
Loading
Loading
+26 −1
Original line number Original line Diff line number Diff line
@@ -24,13 +24,38 @@ import org.eclipse.ocl.pivot.resource.CSResource;
import org.eclipse.ocl.pivot.utilities.PivotUtil;
import org.eclipse.ocl.pivot.utilities.PivotUtil;
import org.eclipse.ocl.pivot.validation.ValidationRegistryAdapter;
import org.eclipse.ocl.pivot.validation.ValidationRegistryAdapter;
import org.eclipse.ocl.xtext.completeocl.validation.CompleteOCLEObjectValidator;
import org.eclipse.ocl.xtext.completeocl.validation.CompleteOCLEObjectValidator;
import org.eclipse.ocl.xtext.completeocl.validation.CompleteOCLValidator;
import org.eclipse.xtext.validation.EValidatorRegistrar;
import org.eclipse.xtext.validation.EValidatorRegistrar;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleContext;


public class Validator {
public class Validator {
	static CompleteOCLEObjectValidator validator;
	static CompleteOCLEObjectValidator validator;
	
	
	public static void registerValidator(String path, EValidatorRegistrar registrar, BundleContext context) {
		tdlPackage ePackage = tdlPackage.eINSTANCE;
		Path oclPath = new Path(path);
		URL oclURL = FileLocator.find(context.getBundle(), oclPath);
		URI oclURI;
		try {
			oclURI = URI.createURI(oclURL.toURI().toString());
			registrar.register(ePackage, new CompleteOCLEObjectValidator(ePackage, oclURI));
		} catch (URISyntaxException e) {
			throw new RuntimeException(e);
		}
	}
	
	public static void registerValidator(String path, EPackage ePackage, ResourceSet rs, BundleContext context){
		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);
			ValidationRegistryAdapter.getAdapter(rs).put(ePackage, validator);
		} catch (URISyntaxException e) {
			throw new RuntimeException(e);
		}
	}


	public static void removeValidator(EPackage ePackage, ResourceSet rs){
	public static void removeValidator(EPackage ePackage, ResourceSet rs){
		ValidationRegistryAdapter.getAdapter(rs).remove(ePackage);
		ValidationRegistryAdapter.getAdapter(rs).remove(ePackage);