Section Header

    + name := ABSTRACT_ENTRY;

    - comment := "Abstract Entry.";

Section Inherit

    - parent_object:OBJECT :=

Section Public

Path.


    + path:STRING_CONSTANT;

    + name:STRING_CONSTANT;

    + link_count:INTEGER;

Date / Time.


    + access_time:TIME;

    + access_date:DATE;

    + update_time:TIME;

    + update_date:DATE;

type.


    + is_directory:BOOLEAN;

    - is_file:BOOLEAN <-

    - this:ENTRY <-

Size.


    + size:UINTEGER_32;

Open / Close


    - is_open:BOOLEAN <-

    - open:ENTRY <-
        Return FILE or DIRECTORY, NULL:error.

    - open_read_only:ENTRY <-
        Return FILE or DIRECTORY, NULL:error.

    - open_bmp:BMP_FILE <-
        Return FILE or DIRECTORY, NULL:error.

    - open_ai:AI_FILE <-
        Return FILE or DIRECTORY, NULL:error.

    - close:ENTRY <-

Manager.


    - remove:BOOLEAN <-
        Remove file or directory (WARNING: delete recursive)

    - rename new_name:ABSTRACT_STRING :BOOLEAN <-

Section ENTRY

    + child:ENTRY;

    - make_entry p:ABSTRACT_STRING :BOOLEAN <-

    - make e:ENTRY :BOOLEAN <-
        Redefine in DIRECTORY and FILE

    - set_path n:ABSTRACT_STRING <-

    - reduce_path st:STRING <-

Section Public

Alias Entry.


    - alias:HASHED_DICTIONARY[ENTRY,ABSTRACT_STRING] :=

    - get_entry p:ABSTRACT_STRING :ENTRY <-

    - get_parent_path p:ABSTRACT_STRING in tmp:STRING <-

    - get_parent_intern p:ABSTRACT_STRING :DIRECTORY <-

Physical implementation.


    - physical_make:BOOLEAN <-

    - physical_remove_directory:BOOLEAN <-

    - physical_remove_file:BOOLEAN <-

    - physical_rename old_path:ABSTRACT_STRING with new_path:ABSTRACT_STRING :BOOLEAN <-

Service routine


    - string_tmp:STRING :=

    - string_tmp2:STRING :=