Section Header
  
  
    + name    := ABSTRACT_DIRECTORY;
  
  
    - comment := "Basic Directory management";
  
Section Inherit
  
  
    + parent_entry:ENTRY := 
  
Section ENTRY 
  
  
    + list:LINKED_LIST[ENTRY];
  
Section Public
  
  
  
 Update.
  
  
  
    - refresh:BOOLEAN <-
    
  
  
 Indexing.
  
  
  
    - lower:INTEGER := 
  
         Minimum index.
  
  
    - upper:INTEGER <-  
  
         Maximum index.
  
  
    - valid_index index:INTEGER :BOOLEAN <- 
  
         True when `index' is valid (ie. inside actual
  
         bounds of the collection).
    
  
  
 Counting.
  
  
  
    - count:INTEGER <- 
  
         Number of available indices.
  
  
    - is_empty:BOOLEAN <- 
  
         Is collection empty ?
  
  
  
 Accessing.
  
    
  
    - item i:INTEGER :ENTRY <-
  
         Item at the corresponding index `i'. 
    
  
    - first:ENTRY <- 
  
         The very `first' item.  
    
  
    - last:ENTRY <-
  
         The `last' item.
    
  
    - has e:ENTRY :BOOLEAN <-
    
  
    - index_of e:ENTRY :INTEGER <-
  
  
    + parent:ENTRY;
  
  
    - this:ENTRY <- 
  
  
  
 Writing:
  
  
  
    - make_directory n:ABSTRACT_STRING :ENTRY <-
    
  
    - make_file n:ABSTRACT_STRING :ENTRY <-
    
  
  
 Get new Entry.
  
  
  
    - get new_path:ABSTRACT_STRING :ENTRY <-
    
  
  
 Rename
  
  
  
    - no_error:INTEGER          := 
  
    - error_source:INTEGER      := 
  
    - error_destination:INTEGER := 
  
    - error_extern:INTEGER      := 
  
  
    - move src:ABSTRACT_STRING with dst:ABSTRACT_STRING :INTEGER <-
    
  
    - print <-
    
Section ENTRY
  
  
    - make e:ENTRY :BOOLEAN <-