Package Name: java.util.observable

Return to: Package List


with java.lang; use java.lang;
with java.util.Observer; use java.util.Observer;

package java.util.Observable is
    type Observable_Obj is new Object with null record;

    type Observable_Ptr is access all Observable_Obj'Class;
    procedure addObserver(Obj : access Observable_Obj;

        o : Observer_Ptr);
    procedure deleteObserver(Obj : access Observable_Obj;

        o : Observer_Ptr);

    procedure notifyObservers(Obj : access Observable_Obj);
    procedure notifyObservers(Obj : access Observable_Obj;

        arg : Object_Ptr);

    procedure deleteObservers(Obj : access Observable_Obj);

    function hasChanged(Obj : access Observable_Obj) return Boolean;

    function countObservers(Obj : access Observable_Obj) return Integer;
    procedure init_Observable(Obj : access Observable_Obj'Class);

    function new_Observable(Obj : Observable_Ptr := null) return Observable_Ptr;
    -- This is an operation of the Observer class, here to avoid circularity
    procedure update(Obj : access Observer_Obj'Class;
        P1 : Observable_Ptr;

        P2 : Object_Ptr);
    pragma Import(Java, notifyObservers);
    pragma Import(Java, countObservers);
    pragma Import(Java, deleteObservers);
    pragma Import(Java, deleteObserver);
    pragma Import(Java, hasChanged);

    pragma Import(Java, addObserver);
    pragma Import(Java_Constructor, init_Observable);

    pragma Import(Java_Constructor, new_Observable);

    pragma Import(Java, update, "java/util/Observer.update");
end java.util.Observable;