!7 // adapted from https://github.com/eugenp/tutorials/tree/master/algorithms-searching/src/main/java/com/baeldung/algorithms/suffixtree cmodule SuffixTreeSpike > DynPrintLog { // text is by default persistent and can be made non-persistent switchable S text = "hello world what is up in the world"; switchable S testPattern; transient SuffixTree tree; void makeTree { time "makeTree" { print("Text length: " + n2(l(text))); tree = new SuffixTree(text); } print("Estimated tree size: " + nBytes(guessObjectSize(tree))); } start-thread { makeTree(); //print(tree.printTree()); /*print(+text); print(+pattern); pnl(tree.markText(pattern));*/ } // API L search(CharSequence pattern) { ret tree.getAllNodesInTraversePath(pattern, tree.root, false); } void dontPersistText { dontPersist("text"); } void setText(S text) { if (setField(+text)) makeTree(); } void setTransientText(S text) { dontPersistText(); setText(text); } }