All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.xowl.infra.lang.runtime.Class Maven / Gradle / Ivy

There is a newer version: 2.3.4
Show newest version
/* This file has been generated by:
   xOWL Code Generator
*/
package org.xowl.infra.lang.runtime;

public class Class implements org.xowl.infra.lang.runtime.Interpretation, org.xowl.infra.lang.runtime.Class_OR_Datatype {
    // 
    private static class interpretationOf_impl implements org.xowl.infra.lang.runtime.Interpretation.interpretationOf {
        private org.xowl.infra.lang.runtime.Class domain;
        private org.xowl.infra.lang.runtime.Entity data;
        public org.xowl.infra.lang.runtime.Entity get_raw() { return data; }
        public org.xowl.infra.lang.runtime.Entity get() { return data; }
        private boolean check_card(int modifier) {
            int card = modifier + 0;
            if (data != null) card++;
            return (card >= 0 && card <= 1);
        }
        @Override public boolean check_contains(org.xowl.infra.lang.runtime.Entity elem) { return (data == elem); }
        public boolean simple_check_add(org.xowl.infra.lang.runtime.Entity elem) {
            if (check_contains(elem)) return false;
            if (!check_card(1)) return false;
            return true;
        }
        public boolean simple_check_remove(org.xowl.infra.lang.runtime.Entity elem) {
            if (!check_contains(elem)) return false;
            if (!check_card(-1)) return false;
            return true;
        }
        public boolean simple_check_replace(org.xowl.infra.lang.runtime.Entity oldElem, org.xowl.infra.lang.runtime.Entity  newElem) {
            if (check_contains(newElem)) return false;
            if (!check_contains(oldElem)) return false;
            return true;
        }
        public void simple_add(org.xowl.infra.lang.runtime.Entity elem) {
            data = elem;
        }
        public void simple_remove(org.xowl.infra.lang.runtime.Entity elem) {
            data = null;
        }
        private boolean tree_check_add(org.xowl.infra.lang.runtime.Entity elem) {
            if (!simple_check_add(elem)) return false;
            return true;
        }
        private boolean tree_check_remove(org.xowl.infra.lang.runtime.Entity elem) {
            if (!simple_check_remove(elem)) return false;
            return true;
        }
        private boolean tree_check_replace(org.xowl.infra.lang.runtime.Entity oldElem, org.xowl.infra.lang.runtime.Entity  newElem) {
            if (!simple_check_replace(oldElem, newElem)) return false;
            return true;
        }
        private void tree_add(org.xowl.infra.lang.runtime.Entity elem) {
            simple_add(elem);
        }
        private void tree_remove(org.xowl.infra.lang.runtime.Entity elem) {
            simple_remove(elem);
        }
        @Override public boolean user_check_add(org.xowl.infra.lang.runtime.Entity elem) {
            if (!elem.__getImplOfinterpretedAs().inverse_check_add(domain)) return false;
            return tree_check_add(elem);
        }
        @Override public boolean user_check_remove(org.xowl.infra.lang.runtime.Entity elem) {
            if (!elem.__getImplOfinterpretedAs().inverse_check_remove(domain)) return false;
            return tree_check_remove(elem);
        }
        @Override public boolean user_check_replace(org.xowl.infra.lang.runtime.Entity oldElem, org.xowl.infra.lang.runtime.Entity  newElem) {
            if (!oldElem.__getImplOfinterpretedAs().inverse_check_remove(domain)) return false;
            if (!newElem.__getImplOfinterpretedAs().inverse_check_add(domain)) return false;
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void user_add(org.xowl.infra.lang.runtime.Entity elem) {
            elem.__getImplOfinterpretedAs().inverse_add(domain);
            tree_add(elem);
        }
        @Override public void user_remove(org.xowl.infra.lang.runtime.Entity elem) {
            elem.__getImplOfinterpretedAs().inverse_remove(domain);
            tree_remove(elem);
        }
        @Override public boolean inverse_check_add(org.xowl.infra.lang.runtime.Entity elem) {
            return tree_check_add(elem);
        }
        @Override public boolean inverse_check_remove(org.xowl.infra.lang.runtime.Entity elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean inverse_check_replace(org.xowl.infra.lang.runtime.Entity oldElem, org.xowl.infra.lang.runtime.Entity  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void inverse_add(org.xowl.infra.lang.runtime.Entity elem) {
            tree_add(elem);
        }
        @Override public void inverse_remove(org.xowl.infra.lang.runtime.Entity elem) {
            tree_remove(elem);
        }
        public interpretationOf_impl(org.xowl.infra.lang.runtime.Class domain) {
            this.domain = domain;
        }
    }
    private interpretationOf_impl dataInterpretationOf;
    public org.xowl.infra.lang.runtime.Interpretation.interpretationOf __getImplOfinterpretationOf() { return dataInterpretationOf; }
    public boolean setInterpretationOf(org.xowl.infra.lang.runtime.Entity elem) {
        if (dataInterpretationOf.get() != null) {
            if (elem == null) {
                if (!dataInterpretationOf.user_check_remove(dataInterpretationOf.get())) return false;
                dataInterpretationOf.user_remove(dataInterpretationOf.get());
            } else {
                if (!dataInterpretationOf.user_check_replace(dataInterpretationOf.get(), elem)) return false;
                dataInterpretationOf.user_remove(dataInterpretationOf.get());
                dataInterpretationOf.user_add(elem);
            }
        } else {
            if (elem == null) return true;
            if (!dataInterpretationOf.user_check_add(elem)) return false;
            dataInterpretationOf.user_add(elem);
        }
        return true;
    }
    public org.xowl.infra.lang.runtime.Entity getInterpretationOf() { return dataInterpretationOf.get(); }
    // 

    // 
    public static interface superClassOf {
        boolean check_contains(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_add(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem);
        void user_add(org.xowl.infra.lang.runtime.Class elem);
        void user_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_add(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem);
        void inverse_add(org.xowl.infra.lang.runtime.Class elem);
        void inverse_remove(org.xowl.infra.lang.runtime.Class elem);
    }
    private static class superClassOf_impl implements org.xowl.infra.lang.runtime.Class.superClassOf {
        private org.xowl.infra.lang.runtime.Class domain;
        private java.util.List data;
        public java.util.Collection get_raw() { return new java.util.ArrayList(data); }
        public java.util.Collection get() { return new java.util.ArrayList(data); }
        private boolean check_card(int modifier) {
            int card = data.size() + 0 + modifier;
            return (card >= 0 && card <= 2147483647);
        }
        @Override public boolean check_contains(org.xowl.infra.lang.runtime.Class elem) { return (data.contains(elem)); }
        public boolean simple_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (check_contains(elem)) return false;
            if (!check_card(1)) return false;
            return true;
        }
        public boolean simple_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!check_contains(elem)) return false;
            if (!check_card(-1)) return false;
            return true;
        }
        public boolean simple_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (check_contains(newElem)) return false;
            if (!check_contains(oldElem)) return false;
            return true;
        }
        public void simple_add(org.xowl.infra.lang.runtime.Class elem) {
            data.add(elem);
        }
        public void simple_remove(org.xowl.infra.lang.runtime.Class elem) {
            data.remove(elem);
        }
        private boolean tree_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (!simple_check_add(elem)) return false;
            return true;
        }
        private boolean tree_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!simple_check_remove(elem)) return false;
            return true;
        }
        private boolean tree_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (!simple_check_replace(oldElem, newElem)) return false;
            return true;
        }
        private void tree_add(org.xowl.infra.lang.runtime.Class elem) {
            simple_add(elem);
        }
        private void tree_remove(org.xowl.infra.lang.runtime.Class elem) {
            simple_remove(elem);
        }
        @Override public boolean user_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (!elem.__getImplOfsubClassOf().inverse_check_add(domain)) return false;
            return tree_check_add(elem);
        }
        @Override public boolean user_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!elem.__getImplOfsubClassOf().inverse_check_remove(domain)) return false;
            return tree_check_remove(elem);
        }
        @Override public boolean user_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (!oldElem.__getImplOfsubClassOf().inverse_check_remove(domain)) return false;
            if (!newElem.__getImplOfsubClassOf().inverse_check_add(domain)) return false;
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void user_add(org.xowl.infra.lang.runtime.Class elem) {
            elem.__getImplOfsubClassOf().inverse_add(domain);
            tree_add(elem);
        }
        @Override public void user_remove(org.xowl.infra.lang.runtime.Class elem) {
            elem.__getImplOfsubClassOf().inverse_remove(domain);
            tree_remove(elem);
        }
        @Override public boolean inverse_check_add(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_add(elem);
        }
        @Override public boolean inverse_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean inverse_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void inverse_add(org.xowl.infra.lang.runtime.Class elem) {
            tree_add(elem);
        }
        @Override public void inverse_remove(org.xowl.infra.lang.runtime.Class elem) {
            tree_remove(elem);
        }
        public superClassOf_impl(org.xowl.infra.lang.runtime.Class domain) {
            this.domain = domain;
            this.data = new java.util.ArrayList();
        }
    }
    private superClassOf_impl dataSuperClassOf;
    public org.xowl.infra.lang.runtime.Class.superClassOf __getImplOfsuperClassOf() { return dataSuperClassOf; }
    public boolean addSuperClassOf(org.xowl.infra.lang.runtime.Class elem) {
        if (!dataSuperClassOf.user_check_add(elem)) return false;
        dataSuperClassOf.user_add(elem);
        return true;
    }
    public boolean removeSuperClassOf(org.xowl.infra.lang.runtime.Class elem) {
        if (!dataSuperClassOf.user_check_remove(elem)) return false;
        dataSuperClassOf.user_remove(elem);
        return true;
    }
    public java.util.Collection getAllSuperClassOf() { return dataSuperClassOf.get(); }
    // 

    // 
    public static interface classIntersectionOf {
        boolean check_contains(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_add(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem);
        void user_add(org.xowl.infra.lang.runtime.Class elem);
        void user_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_add(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem);
        void inverse_add(org.xowl.infra.lang.runtime.Class elem);
        void inverse_remove(org.xowl.infra.lang.runtime.Class elem);
    }
    private static class classIntersectionOf_impl implements org.xowl.infra.lang.runtime.Class.classIntersectionOf {
        private org.xowl.infra.lang.runtime.Class domain;
        private java.util.List data;
        public java.util.Collection get_raw() { return new java.util.ArrayList(data); }
        public java.util.Collection get() { return new java.util.ArrayList(data); }
        private boolean check_card(int modifier) {
            int card = data.size() + 0 + modifier;
            return (card >= 0 && card <= 2147483647);
        }
        @Override public boolean check_contains(org.xowl.infra.lang.runtime.Class elem) { return (data.contains(elem)); }
        public boolean simple_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (check_contains(elem)) return false;
            if (!check_card(1)) return false;
            return true;
        }
        public boolean simple_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!check_contains(elem)) return false;
            if (!check_card(-1)) return false;
            return true;
        }
        public boolean simple_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (check_contains(newElem)) return false;
            if (!check_contains(oldElem)) return false;
            return true;
        }
        public void simple_add(org.xowl.infra.lang.runtime.Class elem) {
            data.add(elem);
        }
        public void simple_remove(org.xowl.infra.lang.runtime.Class elem) {
            data.remove(elem);
        }
        private boolean tree_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (!simple_check_add(elem)) return false;
            return true;
        }
        private boolean tree_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!simple_check_remove(elem)) return false;
            return true;
        }
        private boolean tree_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (!simple_check_replace(oldElem, newElem)) return false;
            return true;
        }
        private void tree_add(org.xowl.infra.lang.runtime.Class elem) {
            simple_add(elem);
        }
        private void tree_remove(org.xowl.infra.lang.runtime.Class elem) {
            simple_remove(elem);
        }
        @Override public boolean user_check_add(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_add(elem);
        }
        @Override public boolean user_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean user_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void user_add(org.xowl.infra.lang.runtime.Class elem) {
            tree_add(elem);
        }
        @Override public void user_remove(org.xowl.infra.lang.runtime.Class elem) {
            tree_remove(elem);
        }
        @Override public boolean inverse_check_add(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_add(elem);
        }
        @Override public boolean inverse_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean inverse_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void inverse_add(org.xowl.infra.lang.runtime.Class elem) {
            tree_add(elem);
        }
        @Override public void inverse_remove(org.xowl.infra.lang.runtime.Class elem) {
            tree_remove(elem);
        }
        public classIntersectionOf_impl(org.xowl.infra.lang.runtime.Class domain) {
            this.domain = domain;
            this.data = new java.util.ArrayList();
        }
    }
    private classIntersectionOf_impl dataClassIntersectionOf;
    public org.xowl.infra.lang.runtime.Class.classIntersectionOf __getImplOfclassIntersectionOf() { return dataClassIntersectionOf; }
    public boolean addClassIntersectionOf(org.xowl.infra.lang.runtime.Class elem) {
        if (!dataClassIntersectionOf.user_check_add(elem)) return false;
        dataClassIntersectionOf.user_add(elem);
        return true;
    }
    public boolean removeClassIntersectionOf(org.xowl.infra.lang.runtime.Class elem) {
        if (!dataClassIntersectionOf.user_check_remove(elem)) return false;
        dataClassIntersectionOf.user_remove(elem);
        return true;
    }
    public java.util.Collection getAllClassIntersectionOf() { return dataClassIntersectionOf.get(); }
    // 

    // 
    public static interface classComplementOf {
        boolean check_contains(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_add(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem);
        void user_add(org.xowl.infra.lang.runtime.Class elem);
        void user_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_add(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem);
        void inverse_add(org.xowl.infra.lang.runtime.Class elem);
        void inverse_remove(org.xowl.infra.lang.runtime.Class elem);
    }
    private static class classComplementOf_impl implements org.xowl.infra.lang.runtime.Class.classComplementOf {
        private org.xowl.infra.lang.runtime.Class domain;
        private org.xowl.infra.lang.runtime.Class data;
        public org.xowl.infra.lang.runtime.Class get_raw() { return data; }
        public org.xowl.infra.lang.runtime.Class get() { return data; }
        private boolean check_card(int modifier) {
            int card = modifier + 0;
            if (data != null) card++;
            return (card >= 0 && card <= 1);
        }
        @Override public boolean check_contains(org.xowl.infra.lang.runtime.Class elem) { return (data == elem); }
        public boolean simple_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (check_contains(elem)) return false;
            if (!check_card(1)) return false;
            return true;
        }
        public boolean simple_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!check_contains(elem)) return false;
            if (!check_card(-1)) return false;
            return true;
        }
        public boolean simple_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (check_contains(newElem)) return false;
            if (!check_contains(oldElem)) return false;
            return true;
        }
        public void simple_add(org.xowl.infra.lang.runtime.Class elem) {
            data = elem;
        }
        public void simple_remove(org.xowl.infra.lang.runtime.Class elem) {
            data = null;
        }
        private boolean tree_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (!simple_check_add(elem)) return false;
            return true;
        }
        private boolean tree_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!simple_check_remove(elem)) return false;
            return true;
        }
        private boolean tree_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (!simple_check_replace(oldElem, newElem)) return false;
            return true;
        }
        private void tree_add(org.xowl.infra.lang.runtime.Class elem) {
            simple_add(elem);
        }
        private void tree_remove(org.xowl.infra.lang.runtime.Class elem) {
            simple_remove(elem);
        }
        @Override public boolean user_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (!elem.__getImplOfclassComplementOf().inverse_check_add(domain)) return false;
            return tree_check_add(elem);
        }
        @Override public boolean user_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!elem.__getImplOfclassComplementOf().inverse_check_remove(domain)) return false;
            return tree_check_remove(elem);
        }
        @Override public boolean user_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (!oldElem.__getImplOfclassComplementOf().inverse_check_remove(domain)) return false;
            if (!newElem.__getImplOfclassComplementOf().inverse_check_add(domain)) return false;
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void user_add(org.xowl.infra.lang.runtime.Class elem) {
            elem.__getImplOfclassComplementOf().inverse_add(domain);
            tree_add(elem);
        }
        @Override public void user_remove(org.xowl.infra.lang.runtime.Class elem) {
            elem.__getImplOfclassComplementOf().inverse_remove(domain);
            tree_remove(elem);
        }
        @Override public boolean inverse_check_add(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_add(elem);
        }
        @Override public boolean inverse_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean inverse_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void inverse_add(org.xowl.infra.lang.runtime.Class elem) {
            tree_add(elem);
        }
        @Override public void inverse_remove(org.xowl.infra.lang.runtime.Class elem) {
            tree_remove(elem);
        }
        public classComplementOf_impl(org.xowl.infra.lang.runtime.Class domain) {
            this.domain = domain;
        }
    }
    private classComplementOf_impl dataClassComplementOf;
    public org.xowl.infra.lang.runtime.Class.classComplementOf __getImplOfclassComplementOf() { return dataClassComplementOf; }
    public boolean setClassComplementOf(org.xowl.infra.lang.runtime.Class elem) {
        if (dataClassComplementOf.get() != null) {
            if (elem == null) {
                if (!dataClassComplementOf.user_check_remove(dataClassComplementOf.get())) return false;
                dataClassComplementOf.user_remove(dataClassComplementOf.get());
            } else {
                if (!dataClassComplementOf.user_check_replace(dataClassComplementOf.get(), elem)) return false;
                dataClassComplementOf.user_remove(dataClassComplementOf.get());
                dataClassComplementOf.user_add(elem);
            }
        } else {
            if (elem == null) return true;
            if (!dataClassComplementOf.user_check_add(elem)) return false;
            dataClassComplementOf.user_add(elem);
        }
        return true;
    }
    public org.xowl.infra.lang.runtime.Class getClassComplementOf() { return dataClassComplementOf.get(); }
    // 

    // 
    public static interface classUnionOf {
        boolean check_contains(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_add(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem);
        void user_add(org.xowl.infra.lang.runtime.Class elem);
        void user_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_add(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem);
        void inverse_add(org.xowl.infra.lang.runtime.Class elem);
        void inverse_remove(org.xowl.infra.lang.runtime.Class elem);
    }
    private static class classUnionOf_impl implements org.xowl.infra.lang.runtime.Class.classUnionOf {
        private org.xowl.infra.lang.runtime.Class domain;
        private java.util.List data;
        public java.util.Collection get_raw() { return new java.util.ArrayList(data); }
        public java.util.Collection get() { return new java.util.ArrayList(data); }
        private boolean check_card(int modifier) {
            int card = data.size() + 0 + modifier;
            return (card >= 0 && card <= 2147483647);
        }
        @Override public boolean check_contains(org.xowl.infra.lang.runtime.Class elem) { return (data.contains(elem)); }
        public boolean simple_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (check_contains(elem)) return false;
            if (!check_card(1)) return false;
            return true;
        }
        public boolean simple_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!check_contains(elem)) return false;
            if (!check_card(-1)) return false;
            return true;
        }
        public boolean simple_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (check_contains(newElem)) return false;
            if (!check_contains(oldElem)) return false;
            return true;
        }
        public void simple_add(org.xowl.infra.lang.runtime.Class elem) {
            data.add(elem);
        }
        public void simple_remove(org.xowl.infra.lang.runtime.Class elem) {
            data.remove(elem);
        }
        private boolean tree_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (!simple_check_add(elem)) return false;
            return true;
        }
        private boolean tree_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!simple_check_remove(elem)) return false;
            return true;
        }
        private boolean tree_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (!simple_check_replace(oldElem, newElem)) return false;
            return true;
        }
        private void tree_add(org.xowl.infra.lang.runtime.Class elem) {
            simple_add(elem);
        }
        private void tree_remove(org.xowl.infra.lang.runtime.Class elem) {
            simple_remove(elem);
        }
        @Override public boolean user_check_add(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_add(elem);
        }
        @Override public boolean user_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean user_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void user_add(org.xowl.infra.lang.runtime.Class elem) {
            tree_add(elem);
        }
        @Override public void user_remove(org.xowl.infra.lang.runtime.Class elem) {
            tree_remove(elem);
        }
        @Override public boolean inverse_check_add(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_add(elem);
        }
        @Override public boolean inverse_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean inverse_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void inverse_add(org.xowl.infra.lang.runtime.Class elem) {
            tree_add(elem);
        }
        @Override public void inverse_remove(org.xowl.infra.lang.runtime.Class elem) {
            tree_remove(elem);
        }
        public classUnionOf_impl(org.xowl.infra.lang.runtime.Class domain) {
            this.domain = domain;
            this.data = new java.util.ArrayList();
        }
    }
    private classUnionOf_impl dataClassUnionOf;
    public org.xowl.infra.lang.runtime.Class.classUnionOf __getImplOfclassUnionOf() { return dataClassUnionOf; }
    public boolean addClassUnionOf(org.xowl.infra.lang.runtime.Class elem) {
        if (!dataClassUnionOf.user_check_add(elem)) return false;
        dataClassUnionOf.user_add(elem);
        return true;
    }
    public boolean removeClassUnionOf(org.xowl.infra.lang.runtime.Class elem) {
        if (!dataClassUnionOf.user_check_remove(elem)) return false;
        dataClassUnionOf.user_remove(elem);
        return true;
    }
    public java.util.Collection getAllClassUnionOf() { return dataClassUnionOf.get(); }
    // 

    // 
    public static interface subClassOf {
        boolean check_contains(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_add(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem);
        void user_add(org.xowl.infra.lang.runtime.Class elem);
        void user_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_add(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem);
        void inverse_add(org.xowl.infra.lang.runtime.Class elem);
        void inverse_remove(org.xowl.infra.lang.runtime.Class elem);
    }
    private static class subClassOf_impl implements org.xowl.infra.lang.runtime.Class.subClassOf {
        private org.xowl.infra.lang.runtime.Class domain;
        private java.util.List data;
        public java.util.Collection get_raw() { return new java.util.ArrayList(data); }
        public java.util.Collection get() { return new java.util.ArrayList(data); }
        private boolean check_card(int modifier) {
            int card = data.size() + 0 + modifier;
            return (card >= 0 && card <= 2147483647);
        }
        @Override public boolean check_contains(org.xowl.infra.lang.runtime.Class elem) { return (data.contains(elem)); }
        public boolean simple_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (check_contains(elem)) return false;
            if (!check_card(1)) return false;
            return true;
        }
        public boolean simple_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!check_contains(elem)) return false;
            if (!check_card(-1)) return false;
            return true;
        }
        public boolean simple_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (check_contains(newElem)) return false;
            if (!check_contains(oldElem)) return false;
            return true;
        }
        public void simple_add(org.xowl.infra.lang.runtime.Class elem) {
            data.add(elem);
        }
        public void simple_remove(org.xowl.infra.lang.runtime.Class elem) {
            data.remove(elem);
        }
        private boolean tree_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (!simple_check_add(elem)) return false;
            return true;
        }
        private boolean tree_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!simple_check_remove(elem)) return false;
            return true;
        }
        private boolean tree_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (!simple_check_replace(oldElem, newElem)) return false;
            return true;
        }
        private void tree_add(org.xowl.infra.lang.runtime.Class elem) {
            simple_add(elem);
        }
        private void tree_remove(org.xowl.infra.lang.runtime.Class elem) {
            simple_remove(elem);
        }
        @Override public boolean user_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (!elem.__getImplOfsuperClassOf().inverse_check_add(domain)) return false;
            return tree_check_add(elem);
        }
        @Override public boolean user_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!elem.__getImplOfsuperClassOf().inverse_check_remove(domain)) return false;
            return tree_check_remove(elem);
        }
        @Override public boolean user_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (!oldElem.__getImplOfsuperClassOf().inverse_check_remove(domain)) return false;
            if (!newElem.__getImplOfsuperClassOf().inverse_check_add(domain)) return false;
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void user_add(org.xowl.infra.lang.runtime.Class elem) {
            elem.__getImplOfsuperClassOf().inverse_add(domain);
            tree_add(elem);
        }
        @Override public void user_remove(org.xowl.infra.lang.runtime.Class elem) {
            elem.__getImplOfsuperClassOf().inverse_remove(domain);
            tree_remove(elem);
        }
        @Override public boolean inverse_check_add(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_add(elem);
        }
        @Override public boolean inverse_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean inverse_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void inverse_add(org.xowl.infra.lang.runtime.Class elem) {
            tree_add(elem);
        }
        @Override public void inverse_remove(org.xowl.infra.lang.runtime.Class elem) {
            tree_remove(elem);
        }
        public subClassOf_impl(org.xowl.infra.lang.runtime.Class domain) {
            this.domain = domain;
            this.data = new java.util.ArrayList();
        }
    }
    private subClassOf_impl dataSubClassOf;
    public org.xowl.infra.lang.runtime.Class.subClassOf __getImplOfsubClassOf() { return dataSubClassOf; }
    public boolean addSubClassOf(org.xowl.infra.lang.runtime.Class elem) {
        if (!dataSubClassOf.user_check_add(elem)) return false;
        dataSubClassOf.user_add(elem);
        return true;
    }
    public boolean removeSubClassOf(org.xowl.infra.lang.runtime.Class elem) {
        if (!dataSubClassOf.user_check_remove(elem)) return false;
        dataSubClassOf.user_remove(elem);
        return true;
    }
    public java.util.Collection getAllSubClassOf() { return dataSubClassOf.get(); }
    // 

    // 
    public static interface classifies {
        boolean check_contains(org.xowl.infra.lang.runtime.Individual elem);
        boolean user_check_add(org.xowl.infra.lang.runtime.Individual elem);
        boolean user_check_remove(org.xowl.infra.lang.runtime.Individual elem);
        boolean user_check_replace(org.xowl.infra.lang.runtime.Individual oldElem, org.xowl.infra.lang.runtime.Individual  newElem);
        void user_add(org.xowl.infra.lang.runtime.Individual elem);
        void user_remove(org.xowl.infra.lang.runtime.Individual elem);
        boolean inverse_check_add(org.xowl.infra.lang.runtime.Individual elem);
        boolean inverse_check_remove(org.xowl.infra.lang.runtime.Individual elem);
        boolean inverse_check_replace(org.xowl.infra.lang.runtime.Individual oldElem, org.xowl.infra.lang.runtime.Individual  newElem);
        void inverse_add(org.xowl.infra.lang.runtime.Individual elem);
        void inverse_remove(org.xowl.infra.lang.runtime.Individual elem);
    }
    private static class classifies_impl implements org.xowl.infra.lang.runtime.Class.classifies {
        private org.xowl.infra.lang.runtime.Class domain;
        private java.util.List data;
        public java.util.Collection get_raw() { return new java.util.ArrayList(data); }
        public java.util.Collection get() { return new java.util.ArrayList(data); }
        private boolean check_card(int modifier) {
            int card = data.size() + 0 + modifier;
            return (card >= 0 && card <= 2147483647);
        }
        @Override public boolean check_contains(org.xowl.infra.lang.runtime.Individual elem) { return (data.contains(elem)); }
        public boolean simple_check_add(org.xowl.infra.lang.runtime.Individual elem) {
            if (check_contains(elem)) return false;
            if (!check_card(1)) return false;
            return true;
        }
        public boolean simple_check_remove(org.xowl.infra.lang.runtime.Individual elem) {
            if (!check_contains(elem)) return false;
            if (!check_card(-1)) return false;
            return true;
        }
        public boolean simple_check_replace(org.xowl.infra.lang.runtime.Individual oldElem, org.xowl.infra.lang.runtime.Individual  newElem) {
            if (check_contains(newElem)) return false;
            if (!check_contains(oldElem)) return false;
            return true;
        }
        public void simple_add(org.xowl.infra.lang.runtime.Individual elem) {
            data.add(elem);
        }
        public void simple_remove(org.xowl.infra.lang.runtime.Individual elem) {
            data.remove(elem);
        }
        private boolean tree_check_add(org.xowl.infra.lang.runtime.Individual elem) {
            if (!simple_check_add(elem)) return false;
            return true;
        }
        private boolean tree_check_remove(org.xowl.infra.lang.runtime.Individual elem) {
            if (!simple_check_remove(elem)) return false;
            return true;
        }
        private boolean tree_check_replace(org.xowl.infra.lang.runtime.Individual oldElem, org.xowl.infra.lang.runtime.Individual  newElem) {
            if (!simple_check_replace(oldElem, newElem)) return false;
            return true;
        }
        private void tree_add(org.xowl.infra.lang.runtime.Individual elem) {
            simple_add(elem);
        }
        private void tree_remove(org.xowl.infra.lang.runtime.Individual elem) {
            simple_remove(elem);
        }
        @Override public boolean user_check_add(org.xowl.infra.lang.runtime.Individual elem) {
            if (!elem.__getImplOfclassifiedBy().inverse_check_add(domain)) return false;
            return tree_check_add(elem);
        }
        @Override public boolean user_check_remove(org.xowl.infra.lang.runtime.Individual elem) {
            if (!elem.__getImplOfclassifiedBy().inverse_check_remove(domain)) return false;
            return tree_check_remove(elem);
        }
        @Override public boolean user_check_replace(org.xowl.infra.lang.runtime.Individual oldElem, org.xowl.infra.lang.runtime.Individual  newElem) {
            if (!oldElem.__getImplOfclassifiedBy().inverse_check_remove(domain)) return false;
            if (!newElem.__getImplOfclassifiedBy().inverse_check_add(domain)) return false;
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void user_add(org.xowl.infra.lang.runtime.Individual elem) {
            elem.__getImplOfclassifiedBy().inverse_add(domain);
            tree_add(elem);
        }
        @Override public void user_remove(org.xowl.infra.lang.runtime.Individual elem) {
            elem.__getImplOfclassifiedBy().inverse_remove(domain);
            tree_remove(elem);
        }
        @Override public boolean inverse_check_add(org.xowl.infra.lang.runtime.Individual elem) {
            return tree_check_add(elem);
        }
        @Override public boolean inverse_check_remove(org.xowl.infra.lang.runtime.Individual elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean inverse_check_replace(org.xowl.infra.lang.runtime.Individual oldElem, org.xowl.infra.lang.runtime.Individual  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void inverse_add(org.xowl.infra.lang.runtime.Individual elem) {
            tree_add(elem);
        }
        @Override public void inverse_remove(org.xowl.infra.lang.runtime.Individual elem) {
            tree_remove(elem);
        }
        public classifies_impl(org.xowl.infra.lang.runtime.Class domain) {
            this.domain = domain;
            this.data = new java.util.ArrayList();
        }
    }
    private classifies_impl dataClassifies;
    public org.xowl.infra.lang.runtime.Class.classifies __getImplOfclassifies() { return dataClassifies; }
    public boolean addClassifies(org.xowl.infra.lang.runtime.Individual elem) {
        if (!dataClassifies.user_check_add(elem)) return false;
        dataClassifies.user_add(elem);
        return true;
    }
    public boolean removeClassifies(org.xowl.infra.lang.runtime.Individual elem) {
        if (!dataClassifies.user_check_remove(elem)) return false;
        dataClassifies.user_remove(elem);
        return true;
    }
    public java.util.Collection getAllClassifies() { return dataClassifies.get(); }
    // 

    // 
    public static interface classRestrictions {
        boolean check_contains(org.xowl.infra.lang.runtime.ClassRestriction elem);
        boolean user_check_add(org.xowl.infra.lang.runtime.ClassRestriction elem);
        boolean user_check_remove(org.xowl.infra.lang.runtime.ClassRestriction elem);
        boolean user_check_replace(org.xowl.infra.lang.runtime.ClassRestriction oldElem, org.xowl.infra.lang.runtime.ClassRestriction  newElem);
        void user_add(org.xowl.infra.lang.runtime.ClassRestriction elem);
        void user_remove(org.xowl.infra.lang.runtime.ClassRestriction elem);
        boolean inverse_check_add(org.xowl.infra.lang.runtime.ClassRestriction elem);
        boolean inverse_check_remove(org.xowl.infra.lang.runtime.ClassRestriction elem);
        boolean inverse_check_replace(org.xowl.infra.lang.runtime.ClassRestriction oldElem, org.xowl.infra.lang.runtime.ClassRestriction  newElem);
        void inverse_add(org.xowl.infra.lang.runtime.ClassRestriction elem);
        void inverse_remove(org.xowl.infra.lang.runtime.ClassRestriction elem);
    }
    private static class classRestrictions_impl implements org.xowl.infra.lang.runtime.Class.classRestrictions {
        private org.xowl.infra.lang.runtime.Class domain;
        private java.util.List data;
        public java.util.Collection get_raw() { return new java.util.ArrayList(data); }
        public java.util.Collection get() { return new java.util.ArrayList(data); }
        private boolean check_card(int modifier) {
            int card = data.size() + 0 + modifier;
            return (card >= 0 && card <= 2147483647);
        }
        @Override public boolean check_contains(org.xowl.infra.lang.runtime.ClassRestriction elem) { return (data.contains(elem)); }
        public boolean simple_check_add(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            if (check_contains(elem)) return false;
            if (!check_card(1)) return false;
            return true;
        }
        public boolean simple_check_remove(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            if (!check_contains(elem)) return false;
            if (!check_card(-1)) return false;
            return true;
        }
        public boolean simple_check_replace(org.xowl.infra.lang.runtime.ClassRestriction oldElem, org.xowl.infra.lang.runtime.ClassRestriction  newElem) {
            if (check_contains(newElem)) return false;
            if (!check_contains(oldElem)) return false;
            return true;
        }
        public void simple_add(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            data.add(elem);
        }
        public void simple_remove(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            data.remove(elem);
        }
        private boolean tree_check_add(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            if (!simple_check_add(elem)) return false;
            return true;
        }
        private boolean tree_check_remove(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            if (!simple_check_remove(elem)) return false;
            return true;
        }
        private boolean tree_check_replace(org.xowl.infra.lang.runtime.ClassRestriction oldElem, org.xowl.infra.lang.runtime.ClassRestriction  newElem) {
            if (!simple_check_replace(oldElem, newElem)) return false;
            return true;
        }
        private void tree_add(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            simple_add(elem);
        }
        private void tree_remove(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            simple_remove(elem);
        }
        @Override public boolean user_check_add(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            return tree_check_add(elem);
        }
        @Override public boolean user_check_remove(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean user_check_replace(org.xowl.infra.lang.runtime.ClassRestriction oldElem, org.xowl.infra.lang.runtime.ClassRestriction  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void user_add(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            tree_add(elem);
        }
        @Override public void user_remove(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            tree_remove(elem);
        }
        @Override public boolean inverse_check_add(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            return tree_check_add(elem);
        }
        @Override public boolean inverse_check_remove(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean inverse_check_replace(org.xowl.infra.lang.runtime.ClassRestriction oldElem, org.xowl.infra.lang.runtime.ClassRestriction  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void inverse_add(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            tree_add(elem);
        }
        @Override public void inverse_remove(org.xowl.infra.lang.runtime.ClassRestriction elem) {
            tree_remove(elem);
        }
        public classRestrictions_impl(org.xowl.infra.lang.runtime.Class domain) {
            this.domain = domain;
            this.data = new java.util.ArrayList();
        }
    }
    private classRestrictions_impl dataClassRestrictions;
    public org.xowl.infra.lang.runtime.Class.classRestrictions __getImplOfclassRestrictions() { return dataClassRestrictions; }
    public boolean addClassRestrictions(org.xowl.infra.lang.runtime.ClassRestriction elem) {
        if (!dataClassRestrictions.user_check_add(elem)) return false;
        dataClassRestrictions.user_add(elem);
        return true;
    }
    public boolean removeClassRestrictions(org.xowl.infra.lang.runtime.ClassRestriction elem) {
        if (!dataClassRestrictions.user_check_remove(elem)) return false;
        dataClassRestrictions.user_remove(elem);
        return true;
    }
    public java.util.Collection getAllClassRestrictions() { return dataClassRestrictions.get(); }
    // 

    // 
    public static interface classDisjointWith {
        boolean check_contains(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_add(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem);
        void user_add(org.xowl.infra.lang.runtime.Class elem);
        void user_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_add(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem);
        void inverse_add(org.xowl.infra.lang.runtime.Class elem);
        void inverse_remove(org.xowl.infra.lang.runtime.Class elem);
    }
    private static class classDisjointWith_impl implements org.xowl.infra.lang.runtime.Class.classDisjointWith {
        private org.xowl.infra.lang.runtime.Class domain;
        private java.util.List data;
        public java.util.Collection get_raw() { return new java.util.ArrayList(data); }
        public java.util.Collection get() { return new java.util.ArrayList(data); }
        private boolean check_card(int modifier) {
            int card = data.size() + 0 + modifier;
            return (card >= 0 && card <= 2147483647);
        }
        @Override public boolean check_contains(org.xowl.infra.lang.runtime.Class elem) { return (data.contains(elem)); }
        public boolean simple_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (check_contains(elem)) return false;
            if (!check_card(1)) return false;
            return true;
        }
        public boolean simple_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!check_contains(elem)) return false;
            if (!check_card(-1)) return false;
            return true;
        }
        public boolean simple_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (check_contains(newElem)) return false;
            if (!check_contains(oldElem)) return false;
            return true;
        }
        public void simple_add(org.xowl.infra.lang.runtime.Class elem) {
            data.add(elem);
        }
        public void simple_remove(org.xowl.infra.lang.runtime.Class elem) {
            data.remove(elem);
        }
        private boolean tree_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (!simple_check_add(elem)) return false;
            return true;
        }
        private boolean tree_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!simple_check_remove(elem)) return false;
            return true;
        }
        private boolean tree_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (!simple_check_replace(oldElem, newElem)) return false;
            return true;
        }
        private void tree_add(org.xowl.infra.lang.runtime.Class elem) {
            simple_add(elem);
        }
        private void tree_remove(org.xowl.infra.lang.runtime.Class elem) {
            simple_remove(elem);
        }
        @Override public boolean user_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (!elem.__getImplOfclassDisjointWith().inverse_check_add(domain)) return false;
            return tree_check_add(elem);
        }
        @Override public boolean user_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!elem.__getImplOfclassDisjointWith().inverse_check_remove(domain)) return false;
            return tree_check_remove(elem);
        }
        @Override public boolean user_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (!oldElem.__getImplOfclassDisjointWith().inverse_check_remove(domain)) return false;
            if (!newElem.__getImplOfclassDisjointWith().inverse_check_add(domain)) return false;
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void user_add(org.xowl.infra.lang.runtime.Class elem) {
            elem.__getImplOfclassDisjointWith().inverse_add(domain);
            tree_add(elem);
        }
        @Override public void user_remove(org.xowl.infra.lang.runtime.Class elem) {
            elem.__getImplOfclassDisjointWith().inverse_remove(domain);
            tree_remove(elem);
        }
        @Override public boolean inverse_check_add(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_add(elem);
        }
        @Override public boolean inverse_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean inverse_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void inverse_add(org.xowl.infra.lang.runtime.Class elem) {
            tree_add(elem);
        }
        @Override public void inverse_remove(org.xowl.infra.lang.runtime.Class elem) {
            tree_remove(elem);
        }
        public classDisjointWith_impl(org.xowl.infra.lang.runtime.Class domain) {
            this.domain = domain;
            this.data = new java.util.ArrayList();
        }
    }
    private classDisjointWith_impl dataClassDisjointWith;
    public org.xowl.infra.lang.runtime.Class.classDisjointWith __getImplOfclassDisjointWith() { return dataClassDisjointWith; }
    public boolean addClassDisjointWith(org.xowl.infra.lang.runtime.Class elem) {
        if (!dataClassDisjointWith.user_check_add(elem)) return false;
        dataClassDisjointWith.user_add(elem);
        return true;
    }
    public boolean removeClassDisjointWith(org.xowl.infra.lang.runtime.Class elem) {
        if (!dataClassDisjointWith.user_check_remove(elem)) return false;
        dataClassDisjointWith.user_remove(elem);
        return true;
    }
    public java.util.Collection getAllClassDisjointWith() { return dataClassDisjointWith.get(); }
    // 

    // 
    public static interface classEquivalentTo {
        boolean check_contains(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_add(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean user_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem);
        void user_add(org.xowl.infra.lang.runtime.Class elem);
        void user_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_add(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_remove(org.xowl.infra.lang.runtime.Class elem);
        boolean inverse_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem);
        void inverse_add(org.xowl.infra.lang.runtime.Class elem);
        void inverse_remove(org.xowl.infra.lang.runtime.Class elem);
    }
    private static class classEquivalentTo_impl implements org.xowl.infra.lang.runtime.Class.classEquivalentTo {
        private org.xowl.infra.lang.runtime.Class domain;
        private java.util.List data;
        public java.util.Collection get_raw() { return new java.util.ArrayList(data); }
        public java.util.Collection get() { return new java.util.ArrayList(data); }
        private boolean check_card(int modifier) {
            int card = data.size() + 0 + modifier;
            return (card >= 0 && card <= 2147483647);
        }
        @Override public boolean check_contains(org.xowl.infra.lang.runtime.Class elem) { return (data.contains(elem)); }
        public boolean simple_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (check_contains(elem)) return false;
            if (!check_card(1)) return false;
            return true;
        }
        public boolean simple_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!check_contains(elem)) return false;
            if (!check_card(-1)) return false;
            return true;
        }
        public boolean simple_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (check_contains(newElem)) return false;
            if (!check_contains(oldElem)) return false;
            return true;
        }
        public void simple_add(org.xowl.infra.lang.runtime.Class elem) {
            data.add(elem);
        }
        public void simple_remove(org.xowl.infra.lang.runtime.Class elem) {
            data.remove(elem);
        }
        private boolean tree_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (!simple_check_add(elem)) return false;
            return true;
        }
        private boolean tree_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!simple_check_remove(elem)) return false;
            return true;
        }
        private boolean tree_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (!simple_check_replace(oldElem, newElem)) return false;
            return true;
        }
        private void tree_add(org.xowl.infra.lang.runtime.Class elem) {
            simple_add(elem);
        }
        private void tree_remove(org.xowl.infra.lang.runtime.Class elem) {
            simple_remove(elem);
        }
        @Override public boolean user_check_add(org.xowl.infra.lang.runtime.Class elem) {
            if (!elem.__getImplOfclassEquivalentTo().inverse_check_add(domain)) return false;
            return tree_check_add(elem);
        }
        @Override public boolean user_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            if (!elem.__getImplOfclassEquivalentTo().inverse_check_remove(domain)) return false;
            return tree_check_remove(elem);
        }
        @Override public boolean user_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            if (!oldElem.__getImplOfclassEquivalentTo().inverse_check_remove(domain)) return false;
            if (!newElem.__getImplOfclassEquivalentTo().inverse_check_add(domain)) return false;
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void user_add(org.xowl.infra.lang.runtime.Class elem) {
            elem.__getImplOfclassEquivalentTo().inverse_add(domain);
            tree_add(elem);
        }
        @Override public void user_remove(org.xowl.infra.lang.runtime.Class elem) {
            elem.__getImplOfclassEquivalentTo().inverse_remove(domain);
            tree_remove(elem);
        }
        @Override public boolean inverse_check_add(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_add(elem);
        }
        @Override public boolean inverse_check_remove(org.xowl.infra.lang.runtime.Class elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean inverse_check_replace(org.xowl.infra.lang.runtime.Class oldElem, org.xowl.infra.lang.runtime.Class  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void inverse_add(org.xowl.infra.lang.runtime.Class elem) {
            tree_add(elem);
        }
        @Override public void inverse_remove(org.xowl.infra.lang.runtime.Class elem) {
            tree_remove(elem);
        }
        public classEquivalentTo_impl(org.xowl.infra.lang.runtime.Class domain) {
            this.domain = domain;
            this.data = new java.util.ArrayList();
        }
    }
    private classEquivalentTo_impl dataClassEquivalentTo;
    public org.xowl.infra.lang.runtime.Class.classEquivalentTo __getImplOfclassEquivalentTo() { return dataClassEquivalentTo; }
    public boolean addClassEquivalentTo(org.xowl.infra.lang.runtime.Class elem) {
        if (!dataClassEquivalentTo.user_check_add(elem)) return false;
        dataClassEquivalentTo.user_add(elem);
        return true;
    }
    public boolean removeClassEquivalentTo(org.xowl.infra.lang.runtime.Class elem) {
        if (!dataClassEquivalentTo.user_check_remove(elem)) return false;
        dataClassEquivalentTo.user_remove(elem);
        return true;
    }
    public java.util.Collection getAllClassEquivalentTo() { return dataClassEquivalentTo.get(); }
    // 

    // 
    public static interface classOneOf {
        boolean check_contains(org.xowl.infra.lang.runtime.Individual elem);
        boolean user_check_add(org.xowl.infra.lang.runtime.Individual elem);
        boolean user_check_remove(org.xowl.infra.lang.runtime.Individual elem);
        boolean user_check_replace(org.xowl.infra.lang.runtime.Individual oldElem, org.xowl.infra.lang.runtime.Individual  newElem);
        void user_add(org.xowl.infra.lang.runtime.Individual elem);
        void user_remove(org.xowl.infra.lang.runtime.Individual elem);
        boolean inverse_check_add(org.xowl.infra.lang.runtime.Individual elem);
        boolean inverse_check_remove(org.xowl.infra.lang.runtime.Individual elem);
        boolean inverse_check_replace(org.xowl.infra.lang.runtime.Individual oldElem, org.xowl.infra.lang.runtime.Individual  newElem);
        void inverse_add(org.xowl.infra.lang.runtime.Individual elem);
        void inverse_remove(org.xowl.infra.lang.runtime.Individual elem);
    }
    private static class classOneOf_impl implements org.xowl.infra.lang.runtime.Class.classOneOf {
        private org.xowl.infra.lang.runtime.Class domain;
        private java.util.List data;
        public java.util.Collection get_raw() { return new java.util.ArrayList(data); }
        public java.util.Collection get() { return new java.util.ArrayList(data); }
        private boolean check_card(int modifier) {
            int card = data.size() + 0 + modifier;
            return (card >= 0 && card <= 2147483647);
        }
        @Override public boolean check_contains(org.xowl.infra.lang.runtime.Individual elem) { return (data.contains(elem)); }
        public boolean simple_check_add(org.xowl.infra.lang.runtime.Individual elem) {
            if (check_contains(elem)) return false;
            if (!check_card(1)) return false;
            return true;
        }
        public boolean simple_check_remove(org.xowl.infra.lang.runtime.Individual elem) {
            if (!check_contains(elem)) return false;
            if (!check_card(-1)) return false;
            return true;
        }
        public boolean simple_check_replace(org.xowl.infra.lang.runtime.Individual oldElem, org.xowl.infra.lang.runtime.Individual  newElem) {
            if (check_contains(newElem)) return false;
            if (!check_contains(oldElem)) return false;
            return true;
        }
        public void simple_add(org.xowl.infra.lang.runtime.Individual elem) {
            data.add(elem);
        }
        public void simple_remove(org.xowl.infra.lang.runtime.Individual elem) {
            data.remove(elem);
        }
        private boolean tree_check_add(org.xowl.infra.lang.runtime.Individual elem) {
            if (!simple_check_add(elem)) return false;
            return true;
        }
        private boolean tree_check_remove(org.xowl.infra.lang.runtime.Individual elem) {
            if (!simple_check_remove(elem)) return false;
            return true;
        }
        private boolean tree_check_replace(org.xowl.infra.lang.runtime.Individual oldElem, org.xowl.infra.lang.runtime.Individual  newElem) {
            if (!simple_check_replace(oldElem, newElem)) return false;
            return true;
        }
        private void tree_add(org.xowl.infra.lang.runtime.Individual elem) {
            simple_add(elem);
        }
        private void tree_remove(org.xowl.infra.lang.runtime.Individual elem) {
            simple_remove(elem);
        }
        @Override public boolean user_check_add(org.xowl.infra.lang.runtime.Individual elem) {
            return tree_check_add(elem);
        }
        @Override public boolean user_check_remove(org.xowl.infra.lang.runtime.Individual elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean user_check_replace(org.xowl.infra.lang.runtime.Individual oldElem, org.xowl.infra.lang.runtime.Individual  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void user_add(org.xowl.infra.lang.runtime.Individual elem) {
            tree_add(elem);
        }
        @Override public void user_remove(org.xowl.infra.lang.runtime.Individual elem) {
            tree_remove(elem);
        }
        @Override public boolean inverse_check_add(org.xowl.infra.lang.runtime.Individual elem) {
            return tree_check_add(elem);
        }
        @Override public boolean inverse_check_remove(org.xowl.infra.lang.runtime.Individual elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean inverse_check_replace(org.xowl.infra.lang.runtime.Individual oldElem, org.xowl.infra.lang.runtime.Individual  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void inverse_add(org.xowl.infra.lang.runtime.Individual elem) {
            tree_add(elem);
        }
        @Override public void inverse_remove(org.xowl.infra.lang.runtime.Individual elem) {
            tree_remove(elem);
        }
        public classOneOf_impl(org.xowl.infra.lang.runtime.Class domain) {
            this.domain = domain;
            this.data = new java.util.ArrayList();
        }
    }
    private classOneOf_impl dataClassOneOf;
    public org.xowl.infra.lang.runtime.Class.classOneOf __getImplOfclassOneOf() { return dataClassOneOf; }
    public boolean addClassOneOf(org.xowl.infra.lang.runtime.Individual elem) {
        if (!dataClassOneOf.user_check_add(elem)) return false;
        dataClassOneOf.user_add(elem);
        return true;
    }
    public boolean removeClassOneOf(org.xowl.infra.lang.runtime.Individual elem) {
        if (!dataClassOneOf.user_check_remove(elem)) return false;
        dataClassOneOf.user_remove(elem);
        return true;
    }
    public java.util.Collection getAllClassOneOf() { return dataClassOneOf.get(); }
    // 

    // 
    public static interface domainOf {
        boolean check_contains(org.xowl.infra.lang.runtime.Property elem);
        boolean user_check_add(org.xowl.infra.lang.runtime.Property elem);
        boolean user_check_remove(org.xowl.infra.lang.runtime.Property elem);
        boolean user_check_replace(org.xowl.infra.lang.runtime.Property oldElem, org.xowl.infra.lang.runtime.Property  newElem);
        void user_add(org.xowl.infra.lang.runtime.Property elem);
        void user_remove(org.xowl.infra.lang.runtime.Property elem);
        boolean inverse_check_add(org.xowl.infra.lang.runtime.Property elem);
        boolean inverse_check_remove(org.xowl.infra.lang.runtime.Property elem);
        boolean inverse_check_replace(org.xowl.infra.lang.runtime.Property oldElem, org.xowl.infra.lang.runtime.Property  newElem);
        void inverse_add(org.xowl.infra.lang.runtime.Property elem);
        void inverse_remove(org.xowl.infra.lang.runtime.Property elem);
    }
    private static class domainOf_impl implements org.xowl.infra.lang.runtime.Class.domainOf {
        private org.xowl.infra.lang.runtime.Class domain;
        private java.util.List data;
        public java.util.Collection get_raw() { return new java.util.ArrayList(data); }
        public java.util.Collection get() { return new java.util.ArrayList(data); }
        private boolean check_card(int modifier) {
            int card = data.size() + 0 + modifier;
            return (card >= 0 && card <= 2147483647);
        }
        @Override public boolean check_contains(org.xowl.infra.lang.runtime.Property elem) { return (data.contains(elem)); }
        public boolean simple_check_add(org.xowl.infra.lang.runtime.Property elem) {
            if (check_contains(elem)) return false;
            if (!check_card(1)) return false;
            return true;
        }
        public boolean simple_check_remove(org.xowl.infra.lang.runtime.Property elem) {
            if (!check_contains(elem)) return false;
            if (!check_card(-1)) return false;
            return true;
        }
        public boolean simple_check_replace(org.xowl.infra.lang.runtime.Property oldElem, org.xowl.infra.lang.runtime.Property  newElem) {
            if (check_contains(newElem)) return false;
            if (!check_contains(oldElem)) return false;
            return true;
        }
        public void simple_add(org.xowl.infra.lang.runtime.Property elem) {
            data.add(elem);
        }
        public void simple_remove(org.xowl.infra.lang.runtime.Property elem) {
            data.remove(elem);
        }
        private boolean tree_check_add(org.xowl.infra.lang.runtime.Property elem) {
            if (!simple_check_add(elem)) return false;
            return true;
        }
        private boolean tree_check_remove(org.xowl.infra.lang.runtime.Property elem) {
            if (!simple_check_remove(elem)) return false;
            return true;
        }
        private boolean tree_check_replace(org.xowl.infra.lang.runtime.Property oldElem, org.xowl.infra.lang.runtime.Property  newElem) {
            if (!simple_check_replace(oldElem, newElem)) return false;
            return true;
        }
        private void tree_add(org.xowl.infra.lang.runtime.Property elem) {
            simple_add(elem);
        }
        private void tree_remove(org.xowl.infra.lang.runtime.Property elem) {
            simple_remove(elem);
        }
        @Override public boolean user_check_add(org.xowl.infra.lang.runtime.Property elem) {
            if (!elem.__getImplOfdomain().inverse_check_add(domain)) return false;
            return tree_check_add(elem);
        }
        @Override public boolean user_check_remove(org.xowl.infra.lang.runtime.Property elem) {
            if (!elem.__getImplOfdomain().inverse_check_remove(domain)) return false;
            return tree_check_remove(elem);
        }
        @Override public boolean user_check_replace(org.xowl.infra.lang.runtime.Property oldElem, org.xowl.infra.lang.runtime.Property  newElem) {
            if (!oldElem.__getImplOfdomain().inverse_check_remove(domain)) return false;
            if (!newElem.__getImplOfdomain().inverse_check_add(domain)) return false;
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void user_add(org.xowl.infra.lang.runtime.Property elem) {
            elem.__getImplOfdomain().inverse_add(domain);
            tree_add(elem);
        }
        @Override public void user_remove(org.xowl.infra.lang.runtime.Property elem) {
            elem.__getImplOfdomain().inverse_remove(domain);
            tree_remove(elem);
        }
        @Override public boolean inverse_check_add(org.xowl.infra.lang.runtime.Property elem) {
            return tree_check_add(elem);
        }
        @Override public boolean inverse_check_remove(org.xowl.infra.lang.runtime.Property elem) {
            return tree_check_remove(elem);
        }
        @Override public boolean inverse_check_replace(org.xowl.infra.lang.runtime.Property oldElem, org.xowl.infra.lang.runtime.Property  newElem) {
            return tree_check_replace(oldElem, newElem);
        }
        @Override public void inverse_add(org.xowl.infra.lang.runtime.Property elem) {
            tree_add(elem);
        }
        @Override public void inverse_remove(org.xowl.infra.lang.runtime.Property elem) {
            tree_remove(elem);
        }
        public domainOf_impl(org.xowl.infra.lang.runtime.Class domain) {
            this.domain = domain;
            this.data = new java.util.ArrayList();
        }
    }
    private domainOf_impl dataDomainOf;
    public org.xowl.infra.lang.runtime.Class.domainOf __getImplOfdomainOf() { return dataDomainOf; }
    public boolean addDomainOf(org.xowl.infra.lang.runtime.Property elem) {
        if (!dataDomainOf.user_check_add(elem)) return false;
        dataDomainOf.user_add(elem);
        return true;
    }
    public boolean removeDomainOf(org.xowl.infra.lang.runtime.Property elem) {
        if (!dataDomainOf.user_check_remove(elem)) return false;
        dataDomainOf.user_remove(elem);
        return true;
    }
    public java.util.Collection getAllDomainOf() { return dataDomainOf.get(); }
    // 

    public Class() {
        dataInterpretationOf = new interpretationOf_impl(this);
        dataSuperClassOf = new superClassOf_impl(this);
        dataClassIntersectionOf = new classIntersectionOf_impl(this);
        dataClassComplementOf = new classComplementOf_impl(this);
        dataClassUnionOf = new classUnionOf_impl(this);
        dataSubClassOf = new subClassOf_impl(this);
        dataClassifies = new classifies_impl(this);
        dataClassRestrictions = new classRestrictions_impl(this);
        dataClassDisjointWith = new classDisjointWith_impl(this);
        dataClassEquivalentTo = new classEquivalentTo_impl(this);
        dataClassOneOf = new classOneOf_impl(this);
        dataDomainOf = new domainOf_impl(this);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy