diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Check.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Check.java index 66d2c5ccd7037d4ad7f8b86346265e47e073cf14..2610cc122d0829cb17f7750ce902053d89e23022 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Check.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Check.java @@ -126,7 +126,7 @@ public abstract class Check { */ public boolean canExecute(Checkable c) { // ignore objects where this check doesn't apply to - if (!getApplicableToClasses().contains(c.getCheckClass())) { + if (!canBeApplied(c)) { return false; } // check that object doesn't have errors for dependencies of this check @@ -145,6 +145,15 @@ public abstract class Check { } return true; } + + private boolean canBeApplied(Checkable c) { + for (Class<Checkable> checkableClass : getApplicableToClasses()) { + if (checkableClass.isAssignableFrom(c.getCheckClass())) { + return true; + } + } + return false; + } /** * check anything diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Checkable.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Checkable.java index f53e78b7a29767c99d2566e22eebf3703b711f9a..1349baef3be02f1de4dec87158626446a36c0b48 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Checkable.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/check/Checkable.java @@ -74,6 +74,11 @@ public abstract class Checkable implements Serializable { * @return the GML-ID */ public abstract GmlId getGmlId(); + + public boolean hasGmlId() { + return false; + } + /** * This should be called before executing a check if low memory consumption diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/GmlElement.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/GmlElement.java index 1e5c118e4be9bc767fc7a95a5ebae86e22314899..ea50cf2296b17c0348fbdba700bf8a7fee907f74 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/GmlElement.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/GmlElement.java @@ -73,4 +73,9 @@ public abstract class GmlElement extends Checkable { } return gmlId; } + + @Override + public boolean hasGmlId() { + return gmlId != null; + } }