--------------------------------------------------------------------------
INTERFACE DirTree;
IMPORT Time;
IMPORT FileInfo, FindExpr, BoolSeq;
IMPORT APN AS APN, APNSeq AS APNSeq;
--------------------------------------------------------------------------
TYPE
SortCriterion = {
None,
FilesFirst,
DirsFirst
};
LayoutClosure = PublicLayoutClosure;
PublicLayoutClosure = BRANDED "DirTree.PublicLayoutClosure 0.0" OBJECT
METHODS
dir(pn : APN.T;
time : Time.T; size : LONGINT;
level : CARDINAL;
lastPrefix : BoolSeq.T) : TEXT;
file(pn : APN.T;
time : Time.T; size : LONGINT;
level : CARDINAL;
lastPrefix : BoolSeq.T) : TEXT;
sort(list : APNSeq.T) : APNSeq.T;
END;
SimpleTextLayout = LayoutClosure OBJECT
METHODS
fmtDir(pn : APN.T; time : Time.T; size : LONGINT) : TEXT :=
SimpleTextFmtDir;
fmtFile(pn : APN.T; time : Time.T; size : LONGINT) : TEXT :=
SimpleTextFmtFile;
(*
dir(pn : APN.T;
time : Time.T; size : INTEGER;
level : CARDINAL;
lastPrefix : BoolSeq.T) : TEXT := SimpleTextDirLayout;
file(pn : APN.T;
time : Time.T; size : INTEGER;
level : CARDINAL;
lastPrefix : BoolSeq.T) : TEXT := SimpleTextFileLayout;
sort(list : APNSeq.T) : APNSeq.T := SimpleTextNoSort;
*)
OVERRIDES
dir := SimpleTextDirLayout;
file := SimpleTextFileLayout;
sort := SimpleTextNoSort;
END;
--------------------------------------------------------------------------
PROCEDURE SimpleTextDirLayout(self : SimpleTextLayout; pn : APN.T;
time : Time.T; size : LONGINT;
level : CARDINAL;
lastPrefix : BoolSeq.T) : TEXT;
--------------------------------------------------------------------------
PROCEDURE SimpleTextFileLayout(self : SimpleTextLayout; pn : APN.T;
time : Time.T; size : LONGINT;
level : CARDINAL;
lastPrefix : BoolSeq.T) : TEXT;
--------------------------------------------------------------------------
PROCEDURE SimpleTextFmtDir(self : SimpleTextLayout;
pn : APN.T; time : Time.T; size : LONGINT) : TEXT;
--------------------------------------------------------------------------
PROCEDURE SimpleTextFmtFile(self : SimpleTextLayout;
pn : APN.T; time : Time.T; size : LONGINT) : TEXT;
--------------------------------------------------------------------------
PROCEDURE SimpleTextNoSort(self : SimpleTextLayout;
list : APNSeq.T) : APNSeq.T;
--------------------------------------------------------------------------
PROCEDURE Layout(cache : FileInfo.T;
root : APN.T;
lfuns : LayoutClosure := NIL; (* SimpleTextLayout *)
ignDir : FindExpr.T := NIL;
ignFile : FindExpr.T := NIL;
sc := SortCriterion.None;
update := FALSE) : TEXT;
VAR
(* CONST *) simpleTextLayout : SimpleTextLayout;
END DirTree.