Package sav.z

Provides "Sav Zigzag" ORDBMS for executing Zigzag (Z) language scripts from Java(tm).

See:
          Description

Interface Summary
Printer Basic set of methods used by Session to log Status, print report or messages.
 

Class Summary
Base Objects of this class help to navigate through the database without execution of Zigzag expressions.
BaseExtension Methods extension to the Base class for advanced developers.
ClassNavigation This Java class contains methods for navigation inside Zigzag classes.
Commutator Permits to interrupt a current Script execution.
ConsoleLineStatus Need for setting connection of Session's LineStatuses with the System.out standard output stream.
ConsolePrinter Need for setting connection of Session's Printers with the System.out standard output stream.
ConsoleStatus Need for setting connection of Session's Statuses with the System.out standard output stream.
Error An object that provides information if Session analysis completes with Errors.
Failure An object that provides information if Session execution completes with failure.
LineStatus A tool for logging a Session's Status namely a current Script line or a out data line.
Name This Name class has static methods to manipulate with strings represanting Zigzag simple objects.
OutTable  
PN The PN (Processor Notation) sets the Sav Processor's notation.
Script Can be executed many times for different Z databases or Zigzag variables of a Session.
Session Is a central class executing Zigzag scripts.
Statement An object that represents a Zigzag statement of Script.
Status A tool for logging a Session's status namely a current process or Z database.
User Optional class for advanced developers to control access right.
Variable The Variable class is main instrument for interface Java with Zigzag.
VariableExtension Methods extension to the Variable class for advanced developers.
Warning An object that provides information if Session process, analysis/execution, completes with Warnings: Errors or Failures.
WLineStatus Prints Session's current scriptline/dataline.
WPrinter Prints Session's report and messages.
WStatus Prints Session's current process/database.
 

Exception Summary
ZException Provides information on exception of a Z Statement analysis or execution.
 

Package sav.z Description

Provides "Sav Zigzag" ORDBMS for executing Zigzag (Z) language scripts from Java(tm). Zigzag algebraic expressions reflect peculiarities of ORDBMS, for example, multi-level hierarchy, many-valued data, class inheritance and manipulation of XML data with dynamic structure. The advantage of Sav Zigzag is displayed in the high speed of the processing complexly structured hierarchy data. Expressions in Zigzag language help to select such data instantly.

The Java/Zigzag program connects with local databases via Session's exploreBase(...) and modifyBase(...) methods. These methods may be used to create own database server working under one JVM in multiuser regime. There are no need for special transaction and rollback. It differs from connection through JDBC drivers. The exploreBase permits to read data for the current and any other parallel threads. The modifyBase permits to write data by only current thread, all other are locked.

The Session is a main class needed to execute Zigzag expressions. Following example demonstrates a case of the data selection in the variable $x via Session's method z(...).

Session ss = new Session();
ss.exploreBase("company");
ss.z("$x = department:(order:(date:2006-07-19))");

To navigate through the objects in a few databases simultaneously, the Variable and Base objects are used. They are very useful for any consistent data processing. Following example is based on the example before. It illustrates iteration over the objects of $x Variable and direct reading their "profile" attribute from the current Base.

Base base = ss.base();
Variable var = ss.var("x");
int maxlength = 0;
for (String dep = var.first(); dep != null; dep = var.next()) {
  String profile = base.attrValue(dep, "profile");
  if (profile.length() > maxlength)
    maxlength = profile.length();
}