From 4cd9bd9f4e947974943815532f719168f9ec2b97 Mon Sep 17 00:00:00 2001 From: Florian Hoelzl <hoelzl@fortiss.org> Date: Mon, 13 Jun 2016 11:31:10 +0000 Subject: [PATCH] Provided register method for constraint verifier service. refs 2590 --- .../trunk/schema/constraintVerifier.exsd | 4 ++-- .../schema/eclipseResourcePostLoadProvider.exsd | 2 +- .../eclipseResourceStorageLocationProvider.exsd | 2 +- .../IEclipseResourcePostLoadProvider.java | 2 ++ .../internal/ConstraintVerificationService.java | 8 ++++++++ .../service/IConstraintVerificationService.java | 15 ++++++++++----- 6 files changed, 24 insertions(+), 9 deletions(-) diff --git a/org.fortiss.tooling.kernel/trunk/schema/constraintVerifier.exsd b/org.fortiss.tooling.kernel/trunk/schema/constraintVerifier.exsd index b927dcd92..2d10f8ae5 100644 --- a/org.fortiss.tooling.kernel/trunk/schema/constraintVerifier.exsd +++ b/org.fortiss.tooling.kernel/trunk/schema/constraintVerifier.exsd @@ -1,12 +1,12 @@ <?xml version='1.0' encoding='UTF-8'?> <!-- Schema file written by PDE --> -<schema targetNamespace="org.fortiss.af3.verification" xmlns="http://www.w3.org/2001/XMLSchema"> +<schema targetNamespace="org.fortiss.tooling.kernel" xmlns="http://www.w3.org/2001/XMLSchema"> <annotation> <appinfo> <meta.schema plugin="org.fortiss.tooling.kernel" id="constraintVerifier" name="Constraint Verifier"/> </appinfo> <documentation> - [Enter description of this extension point.] + DEPRECATED use IConstraintVerificationService.registerConstraintVerifier() instead. </documentation> </annotation> diff --git a/org.fortiss.tooling.kernel/trunk/schema/eclipseResourcePostLoadProvider.exsd b/org.fortiss.tooling.kernel/trunk/schema/eclipseResourcePostLoadProvider.exsd index 387cb579a..1a0bc0fd3 100644 --- a/org.fortiss.tooling.kernel/trunk/schema/eclipseResourcePostLoadProvider.exsd +++ b/org.fortiss.tooling.kernel/trunk/schema/eclipseResourcePostLoadProvider.exsd @@ -6,7 +6,7 @@ <meta.schema plugin="org.fortiss.tooling.kernel" id="eclipseResourcePostLoadProvider" name="Eclipse Resource Post Load Provider"/> </appinfo> <documentation> - Registers a location provider for Eclipse resource based storage. + DEPRECATED use IPersistencyService instead. </documentation> </annotation> diff --git a/org.fortiss.tooling.kernel/trunk/schema/eclipseResourceStorageLocationProvider.exsd b/org.fortiss.tooling.kernel/trunk/schema/eclipseResourceStorageLocationProvider.exsd index 0eb2cb9fb..ef3faf566 100644 --- a/org.fortiss.tooling.kernel/trunk/schema/eclipseResourceStorageLocationProvider.exsd +++ b/org.fortiss.tooling.kernel/trunk/schema/eclipseResourceStorageLocationProvider.exsd @@ -6,7 +6,7 @@ <meta.schema plugin="org.fortiss.tooling.kernel" id="eclipseResourceStorageLocationProvider" name="Eclipse Resource Storage Location Provider"/> </appinfo> <documentation> - Registers a location provider for Eclipse resource based storage. + DEPRECATED use IPersistencyService instead. </documentation> </annotation> diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/IEclipseResourcePostLoadProvider.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/IEclipseResourcePostLoadProvider.java index accf20eed..40c071316 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/IEclipseResourcePostLoadProvider.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/extension/IEclipseResourcePostLoadProvider.java @@ -29,6 +29,8 @@ import org.fortiss.tooling.kernel.extension.data.ITopLevelElement; * @version $Rev$ * @ConQAT.Rating GREEN Hash: 9D7025FE2AE6D9B3CAE8A20352705445 */ +@Deprecated +// FIXME: move to IPersistencyService public interface IEclipseResourcePostLoadProvider { /** diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/ConstraintVerificationService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/ConstraintVerificationService.java index a9f84a438..0c8d259f8 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/ConstraintVerificationService.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/ConstraintVerificationService.java @@ -55,6 +55,14 @@ public final class ConstraintVerificationService extends KernelIntrospectionSystemService.getInstance().registerService(this); } + /** {@inheritDoc} */ + @SuppressWarnings("unchecked") + @Override + public <T extends IConstraint> void registerConstraintVerifier(IConstraintVerifier<T> verifier, + Class<T> constraintElementClass) { + addHandler(constraintElementClass, (IConstraintVerifier<IConstraint>)verifier); + } + /** {@inheritDoc} */ @Override public String getIntrospectionDescription() { diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/IConstraintVerificationService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/IConstraintVerificationService.java index bf43a788a..eec848ec2 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/IConstraintVerificationService.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/service/IConstraintVerificationService.java @@ -3,6 +3,7 @@ package org.fortiss.tooling.kernel.service; import java.util.List; import java.util.function.Consumer; +import org.fortiss.tooling.kernel.extension.IConstraintVerifier; import org.fortiss.tooling.kernel.internal.ConstraintVerificationService; import org.fortiss.tooling.kernel.model.constraints.IConstrained; import org.fortiss.tooling.kernel.model.constraints.IConstraint; @@ -34,26 +35,30 @@ public interface IConstraintVerificationService { return INSTANCE; } + /** Registers the given verifier with the service. */ + <T extends IConstraint> void registerConstraintVerifier(IConstraintVerifier<T> verifier, + Class<T> constraintElementClass); + /** * @param constraint * Verifies <code>constraint</code>. The framework always runs the verification in a * command. Should not yield any "useless" change because verification should always * update the constraint status and the checksums anyways. */ - public void verify(IConstraint constraint); + void verify(IConstraint constraint); /** * @param constraint * @return <code>true</code> if <code>constraint</code> is up to date. */ - public boolean isUpToDate(IConstraint constraint); + boolean isUpToDate(IConstraint constraint); /** * @param status * @return A list of possible automatic fixes for the (constraint of) <code>status</code>. * A status should be candidate to fixing if it is anything but successful or outdated. */ - public List<IFix> fixes(IConstraintVerificationStatus status); + List<IFix> fixes(IConstraintVerificationStatus status); /** Interface for a "fix". */ public interface IFix { @@ -61,13 +66,13 @@ public interface IConstraintVerificationService { * Description of the fix. Useful to allow the user distinguish the fix in case there are * several. */ - public String getDescription(); + String getDescription(); /** * @param status * Fixes (the constraint of) <code>status</code>. */ - public void runFix(IConstraintVerificationStatus status); + void runFix(IConstraintVerificationStatus status); } /** Utils. We store them to avoid having again thousands of different classes for one topic. */ -- GitLab