Sav.Z
Class Session

java.lang.Object
  |
  +--Sav.Z.Session
All Implemented Interfaces:
Sav.Z.Lexis

public class Session
extends java.lang.Object
implements Sav.Z.Lexis

Is a central object of Sav Z API, provides connection with Z databases, Z multitude variables, Printer and Status objects. Synchronizes analyzing/executing of Z Scripts and keeps Warnings.

Following is a complete simple example of using Z request and Z description. If request has been unsuccessful, program initiates description. Database schema is formed automatically.

  import Sav.Z.*;
  public class SessionDemo extends Session {
    public static void main(String arg[]) {
      SessionDemo ss = new SessionDemo("Users");
      System.out.println("Requesting...");
      String result = ss.request("User:ann1");
      if (result.length() == 0) {
        System.out.println("Describing...");
        ss.describe("User:ann1", "Password:111111");
        result = ss.request("User:ann1");
      }
      System.out.println(result);
    }
    SessionDemo(String dbPath) {
      super();
      z("$base \"" + dbPath + "\"");
    }
    String request(String object) {
      String sQuery = "= " + object + ";";
      z(sQuery);
      String result = report();
      return result;
    }
    public describe(String object, String attributes) {
      String sUpdate = object + "(" + attributes + ");";
      z(sUpdate);
    }
  }
 
One thread usually services one Session. One Session may provide connection with many distinct databases. Database may have just as modifiable so non-modifiable mode.

Following example imports tabular data about users and owners, then selects equal value of "User" and "Owner" class. Example illustrates using of Z multitude variables ("owner", "user") and diverse databases ("Owners", "Users"). Result will be "ann1"

  import Sav.Z.*;
  import java.io.*;
  public class SessionMultiDBDemo {
    public static void main(String arg[]) throws IOException {
      String userData =
        "$base \"Users\";" +
        "$readTable() <" +
          "User  ; Name   ; Resource     \n" +
          "ann1  ; Ann    ; data1, data2 \n" +
          "dan   ; Daniel ; data1, data3 \n" +
        ">;"
      ;
      String ownerData =
        "$base \"Owners\";" +
        "$readTable() <" +
          "Owner  ; Name ; Resource \n" +
          "ann1   ; Ann  ; data1    \n" +
        ">;"
      ;
      Session ss = new Session();
      ss.z(userData); //creates Users database
      ss.z(ownerData); //creates Owners database
      String text =
        "= $base \"Owners\";" +
        "$mul owner ~;" +
        "$owner = =Owner/;" +
        "= $base \"Users\";" +
        "$mul user ~;" +
        "$user = =User/$owner;"
      ;
      ss.z(text); //Forms 'user' multitude variable
      String[] users = ss.get("user");
      System.out.println("OWNER AND USER");
      for (int i = 0; i < users.length; ++i)
        System.out.println(users[i]);
    }
  }
 
When a few Sessions (threads) perform connection with one database file, its will run faster if the databases have non-modifying mode. See example of multi-session execution. A few sessions use one database, "Resource".
  import Sav.Z.*;
  class SessionThreadDemo extends Session implements Runnable {
    public static void main(String arg[]) throws Exception {
      String text1 = "$base \"Resources\"; ...";
      String text2 = "$base \"Resources\"; ...";
      SessionThreadDemo ss1 = new SessionThreadDemo(text1);
      SessionThreadDemo ss2 = new SessionThreadDemo(text2);
      ...
      new Thread(ss1).start();
      new Thread(ss2).start();
      ...
    }
    String text;
    SessionThreadDemo(String text){
      super();
      this.text = text;
    }
    public void run() {
      z(text);
    }
  }
 
The Sav Z API provides support of multi-connection from threads produced only by one JVM.

See Also:
Script, Warning, Printer, Status, LineStatus

Field Summary
static int BASE
           
static int BRACE
           
static int BRACE_TERM
           
static int BRACKET
           
static int BRACKET_TERM
           
static int CATEGORY
           
static int COLON
           
static int COMMA
           
static int CONJUNCTIVE
           
static int DECLARATION
           
static int DECLARED
           
static int DELIVERED
           
static int DESCRIPTIVE
           
static int DIVIDE
           
static int ELLIPSIS
           
static int EQUALITY
           
static int EXTRACTION
           
static int FILE
           
static int INEQUALITY
           
static java.lang.String KEYS
           
static int LEFT_SLASH
           
static int MULTITUDE
           
static int NONE
           
static int NUMBER
           
static int P1
           
static int P2
           
static int PARENTHESIS
           
static int PARENTHESIS_TERM
           
static int PROCEDURE
           
static int RANGE
           
static int RIGHT_SLASH
           
static int SPACE
           
static int SPECIFICATION
           
static int STRING
           
static int TERMINATION
           
static int WORD
           
 
Constructor Summary
Session()
          Constructs a Session.
Session(java.lang.String rootPath)
          Constructs a Session with root directory path that will be concatenated to relative file name.
 
Method Summary
 int accessRight()
          Returns right of access to a current database.
 void analyse(Script scr)
          Analyzes syntax of a Script within a Session context.
 Sav.Processor.Association association(java.lang.String name)
          Returns Sav.Processor.Association, which presents Z multitude.
 Sav.Processor.Association base()
          Returns Sav.Processor.Association that represents Session's current DataBase.
 void clear(java.lang.String name)
          Clears Z multitude variable with the specified name.
 void clearDataBaseStatus()
          Clears Status used to determine a current Session's database.
 void clearDataLineStatus()
          Clears LineStatus used to determine current line of a processed (read or printed) out data text.
 void clearErrors()
          Clears list of Errors in a Session.
 void clearFailures()
          Clears list of Failures in a Session.
 void clearMessagePrinter()
          Clears Printer the Warning messages are prented via.
 void clearProcessStatus()
          Clears process Status used to determine a current Session's process.
 void clearReportPrinter()
          Clears current Printer used for reporting by Z print procedure or Z request statement.
 void clearScriptLine()
          Clears a current Script line number.
 void clearScriptLineStatus()
          Clears LineStatus used to determine a current line of a processed (executed or analyzed) Script.
 void clearWarnings()
          Clears list of Warnings (Errors and Failures) in a Session.
 void close()
          Completes session.
 void closeBase()
          Closes the Session's connection with a current database.
 void closeBase(java.lang.String path)
          Closes the Session's connection with a database.
 void closeBases()
          Closes the Session's connection with all the databases.
 int countErrors()
          Counts Errors of a Session.
 int countFailures()
          Counts Failures of a Session.
 int countWarnings()
          Counts Warnings of a Session.
 Statement curStatement()
          Returns a current executed/analyzed Statement or Statement at that Session makes Exception.
 java.lang.String database()
          Returns database path.
 Error[] errors()
          Returns array of Errors produced by Script analysis.
 void execute(Script scr)
          Executes a Script within a Session context.
 Failure[] failures()
          Returns array of Failures produced by Script execution.
protected  void finalize()
          Cleans up the Session's resources when there are no more references to the Session.
 java.lang.String[] get(java.lang.String name)
          Returns array of string values from Z multitude variable with the specified name.
 Commutator getCommutator()
          Returns Session's Commutator, which permits to interrupt current process.
 java.lang.Object getContext()
          Returns context object.
 Status getDataBaseStatus()
          Returns Status used to determine a current Session's database.
 LineStatus getDataLineStatus()
          Returns LineStatus used to determine a current line of a processed (read or printed) out data text.
 Printer getMessagePrinter()
          Returns Printer the Warning messages are printed via.
 Status getProcessStatus()
          Returns process Status used to determine a current Session's process.
 Printer getReportPrinter()
          Returns Printer used for reporting by Z print procedure or Z request statement.
 int getScriptLine()
          Returns a current Script line number.
 LineStatus getScriptLineStatus()
          Returns LineStatus used to determine a current line of a processed (executed or analyzed) Script.
 boolean hasErrors()
          Tests to see if Session has Errors.
 boolean hasFailures()
          Tests to see if Session has Failures.
 boolean hasWarnings()
          Tests to see if Session has Warnings.
 void hideScriptStatus(boolean yes)
          Hides statuses for z scripts: current process, and current line.
 void initSpec()
          Initiates Z specifications (default names of multitudes, procedures and others).
 void login()
          Sets up requisites of user to work with a current database.
 void login(java.lang.String service)
          Sets up user requisites: service.
 void login(java.lang.String service, java.lang.String password)
          Sets up user requisites: service, user password.
 void login(java.lang.String service, java.lang.String password, java.lang.String user)
          Sets up user requisites: service, user password, and user name.
 void modifyBase()
          Sets up the Session's database as modifiable .
 void modifyBase(java.lang.String path)
          Sets up the Session connection with a modifiable Z database.
 java.lang.String password()
          Returns password.
 java.lang.String report()
          Returns string of the default report WStatus.
 java.lang.String rootPath()
          Returns root directory path for databases with relative name.
 java.lang.String service()
          Returns service name.
 void set(java.lang.String name, java.lang.String value)
          Assumes the specified value to Z multitude variable with the specified name.
 void set(java.lang.String name, java.lang.String[] values)
          Assumes the specified values to Z multitude variable with the specified name.
 void setCommutator(Commutator comm)
          Sets Commutator, which permits to interrupt current process.
 void setContext(java.lang.Object context)
          Sets context object.
 void setDataBaseStatus(Status stDataBase)
          Sets Status used to determine a current Session's database.
 void setDataLineStatus(LineStatus stDataLine)
          Sets LineStatus used to determine a current line of a processed (read or printed) out data text.
 void setMessagePrinter(Printer prtMessage)
          Sets Printer the Warning messages are printed via.
 void setProcessStatus(Status stProcess)
          Sets process Status used to determine a current Session's process.
 void setReportPrinter(Printer prtReport)
          Sets Printer for reporting by Z print procedure or Z request statement.
 void setScriptLine(int number)
          Sets up a current Script line number.
 void setScriptLineStatus(LineStatus stLine)
          Sets LineStatus used to determine a current line of a processed (executed or analyzed) Script.
 int size(java.lang.String name)
          Returns number of Z multitude values with the specified name.
 void useBase()
          Sets up the Session's database as usable .
 void useBase(java.lang.String path)
          Sets up the Session connection with an usable Z database.
 java.lang.String user()
          Returns user name.
 Warning[] warnings()
          Returns array of Warnings, namely Errors or Failures, produced by Script analysis or execution.
 boolean z(java.lang.String text)
          Executes a text within a Session context.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

KEYS

public static final java.lang.String KEYS

NONE

public static final int NONE

CATEGORY

public static final int CATEGORY

PROCEDURE

public static final int PROCEDURE

MULTITUDE

public static final int MULTITUDE

FILE

public static final int FILE

BASE

public static final int BASE

SPECIFICATION

public static final int SPECIFICATION

ELLIPSIS

public static final int ELLIPSIS

NUMBER

public static final int NUMBER

STRING

public static final int STRING

WORD

public static final int WORD

SPACE

public static final int SPACE

BRACE

public static final int BRACE

BRACKET

public static final int BRACKET

PARENTHESIS

public static final int PARENTHESIS

BRACE_TERM

public static final int BRACE_TERM

BRACKET_TERM

public static final int BRACKET_TERM

PARENTHESIS_TERM

public static final int PARENTHESIS_TERM

RANGE

public static final int RANGE

COLON

public static final int COLON

DIVIDE

public static final int DIVIDE

LEFT_SLASH

public static final int LEFT_SLASH

RIGHT_SLASH

public static final int RIGHT_SLASH

EXTRACTION

public static final int EXTRACTION

INEQUALITY

public static final int INEQUALITY

EQUALITY

public static final int EQUALITY

DECLARATION

public static final int DECLARATION

COMMA

public static final int COMMA

TERMINATION

public static final int TERMINATION

P1

public static final int P1

DESCRIPTIVE

public static final int DESCRIPTIVE

CONJUNCTIVE

public static final int CONJUNCTIVE

P2

public static final int P2

DELIVERED

public static final int DELIVERED

DECLARED

public static final int DECLARED
Constructor Detail

Session

public Session(java.lang.String rootPath)
        throws java.io.IOException
Constructs a Session with root directory path that will be concatenated to relative file name.
  Session ss = new Session("/MyDirectory");
  ss.z("$base Users =");   //opens modifiable "/MyDirectory/Users.ass" database
 
See Also:
rootPath(), close()

Session

public Session()
Constructs a Session.
  Session ss = new Session();
  ss.z("= $base Users");   //opens non-modifiable "Users.ass" database
 
See Also:
close()
Method Detail

rootPath

public java.lang.String rootPath()
Returns root directory path for databases with relative name.
See Also:
Session(String)

initSpec

public void initSpec()
              throws java.io.IOException
Initiates Z specifications (default names of multitudes, procedures and others). Last method of example restores "pr" as procedure name by default.
  ss.z("$mul pr");
  ...
  ss.initSpec();
 

z

public boolean z(java.lang.String text)
Executes a text within a Session context. Context is formed by Z specifications ("$mul, $base, $..."), Printers, Statuses. If Warnings (Errors and Failures) are, the Session contents its.
  Session ss;
  String text;
  ...
  if (!ss.z(text)) {
    Warning w[] = ss.warnings();
    ...
  }

 
Returns:
true if text Script dose not have Warnings
See Also:
hasWarnings(), report()

analyse

public void analyse(Script scr)
Analyzes syntax of a Script within a Session context. Context is formed by Z specification names ("$..."), message Printer, Statuses. Script is prepared for efficient execution multiple times. If Warnings (Errors) are, the Session and Script content its.
   Session ss;
   Script scr;
   ...
   ss.analyse(scr);
   if (scr.hasErrors())
   ...
 
See Also:
hasErrors(), execute(Sav.Z.Script)

execute

public void execute(Script scr)
Executes a Script within a Session context. Context is formed by Z specifications ("$mul, $base, $..."), Printers, Statuses. Script will be analyzed if it was not before, so it is prepared for efficient execution multiple times. If Warnings (Failures) are, the Session and Script content its.
   Session ss;
   Script scr;
   ...
   ss.execute(scr);
   if (scr.hasFailures())
   ...
 
See Also:
hasFailures(), analyse(Sav.Z.Script)

report

public java.lang.String report()
Returns string of the default report WStatus. The memory of the WStatus is realized after getting. The following example prints row with two fields, for instance "ann1; Ann". User and Name.
   Session ss;
   ...
   ss.z("$printTableRow(User:ann1, User, Name)");
   String result = ss.report();
 
See Also:
z(java.lang.String)

warnings

public Warning[] warnings()
Returns array of Warnings, namely Errors or Failures, produced by Script analysis or execution.
See Also:
hasWarnings()

errors

public Error[] errors()
Returns array of Errors produced by Script analysis.
See Also:
hasErrors()

failures

public Failure[] failures()
Returns array of Failures produced by Script execution.
See Also:
hasFailures()

hasWarnings

public boolean hasWarnings()
Tests to see if Session has Warnings.
See Also:
z(java.lang.String), warnings()

hasErrors

public boolean hasErrors()
Tests to see if Session has Errors.
See Also:
analyse(Sav.Z.Script), errors()

hasFailures

public boolean hasFailures()
Tests to see if Session has Failures.
See Also:
execute(Sav.Z.Script), failures()

countWarnings

public int countWarnings()
Counts Warnings of a Session.

countErrors

public int countErrors()
Counts Errors of a Session.

countFailures

public int countFailures()
Counts Failures of a Session.

clearWarnings

public void clearWarnings()
Clears list of Warnings (Errors and Failures) in a Session.

clearErrors

public void clearErrors()
Clears list of Errors in a Session.

clearFailures

public void clearFailures()
Clears list of Failures in a Session.

set

public void set(java.lang.String name,
                java.lang.String value)
         throws java.io.IOException
Assumes the specified value to Z multitude variable with the specified name. The old values are removed.
See Also:
get(java.lang.String), clear(java.lang.String)

set

public void set(java.lang.String name,
                java.lang.String[] values)
         throws java.io.IOException
Assumes the specified values to Z multitude variable with the specified name. The old values are removed. The example makes "data1" resource for "ann1" and "dan" users.
   String users[] = { "ann1", "dan" }
   ss.set("x", users);
   ss.z("User:$x = (Resource:data1)");
 
See Also:
get(java.lang.String), clear(java.lang.String)

get

public java.lang.String[] get(java.lang.String name)
                       throws java.io.IOException
Returns array of string values from Z multitude variable with the specified name. See example:
   ss.z("$x ~");
   ss.z("$x = =User/");
   String users[] = ss.get("x");
 
See Also:
set(String, String), set(String, String[])

clear

public void clear(java.lang.String name)
           throws java.io.IOException
Clears Z multitude variable with the specified name.
  ss.clear("x");
  ss.z("$x = =User/");
  ...
 
See Also:
set(String, String), set(String, String[])

size

public int size(java.lang.String name)
         throws java.io.IOException
Returns number of Z multitude values with the specified name.

association

public Sav.Processor.Association association(java.lang.String name)
                                      throws java.io.IOException
Returns Sav.Processor.Association, which presents Z multitude. Note that address is returned, not multitude values. Following fragment is equal to ss.z("$x = test").
   ss.z("$mul x");
   Sav.Processor.Association a = ss.association("x");
   a.set("test");
 
Parameters:
name - denote of Z multitude name

curStatement

public Statement curStatement()
Returns a current executed/analyzed Statement or Statement at that Session makes Exception.

modifyBase

public void modifyBase(java.lang.String path)
                throws java.io.IOException
Sets up the Session connection with a modifiable Z database. It is useful if more than one Z Script is executed.
  Session ss = new Session();
  ss.modifyBase("Users");
  ss.z("User:ann1");
  ss.z("User:dan");
  ...
  ss.closeBase();
 
Note: in case of ss.z("$base Users ="), database is closed at end of each succeeding Script execution, closeBase() need not.
Parameters:
path - pathname of a database
See Also:
closeBase(), closeBase(String), closeBases(), useBase()

modifyBase

public void modifyBase()
                throws java.io.IOException
Sets up the Session's database as modifiable .
See Also:
useBase(String)

useBase

public void useBase(java.lang.String path)
             throws java.io.IOException
Sets up the Session connection with an usable Z database. The database is not modifiable. It is useful if more than one Z Script is executed.
  Session ss = new Session();
  ss.useBase("Users");
  ss.z("= User:ann1");
  ss.z("= User:dan");
  ...
  ss.closeBase();
 
Note: in case of ss.z("= $base Users"), database is closed at end of each succeeding Script execution, closeBase() need not.
Parameters:
path - pathname of a database
See Also:
closeBase(), closeBase(String), closeBases(), modifyBase()

useBase

public void useBase()
             throws java.io.IOException
Sets up the Session's database as usable .
See Also:
modifyBase(String)

closeBase

public void closeBase(java.lang.String path)
               throws java.io.IOException
Closes the Session's connection with a database.
  Session ss = new Session();
  ss.modifyBase("Users");
  ss.useBase("Owners");
  ...
  ss.closeBase("Users");
  ...
 
Note: Closed database may be opened repeatedly.
Parameters:
path - pathname of a database
See Also:
useBase(String), modifyBase(String)

closeBase

public void closeBase()
               throws java.io.IOException
Closes the Session's connection with a current database.
  Session ss = new Session();
  ss.modifyBase("Users");
  ...
  ss.closeBase();
 
Note: Closed database may be opened repeatedly.
See Also:
useBase(String), modifyBase(String)

closeBases

public void closeBases()
                throws java.io.IOException
Closes the Session's connection with all the databases.
  Session ss = new Session();
  ss.modifyBase("Users");
  ss.useBase("Owners");
  ...
  ss.closeBases();
 
Note: Closed databases may be opened repeatedly.
See Also:
modifyBase(String), useBase(String), close()

setReportPrinter

public void setReportPrinter(Printer prtReport)
Sets Printer for reporting by Z print procedure or Z request statement.
  PrintWriter pw;
  ...
  Printer prt = new WPrinter(pw);
  ss.setReportPrinter(prt);
  ss.z("= User:");
  pw.close();
 

getReportPrinter

public Printer getReportPrinter()
Returns Printer used for reporting by Z print procedure or Z request statement.
  Printer prt = ss.getReportPrinter();
  prt.println("Report has been finished");
  prt.flush();
 

clearReportPrinter

public void clearReportPrinter()
Clears current Printer used for reporting by Z print procedure or Z request statement. So it sets up default string Printer for that we can use report().
   ...
   ss.clearReportPrinter();
   ss.z("= User:");
   String result = ss.report();
 

setMessagePrinter

public void setMessagePrinter(Printer prtMessage)
Sets Printer the Warning messages are printed via.
   PrintWriter pw = new PrintWriter(new FileWriter("Messages.log"));
   Printer prt = new WPrinter(pw);
   ss.setMessagePrinter(prt);
   ...
   pw.close();
   if (ss.hasErrors())
     System.out("See errors in Messages.log file");
 

getMessagePrinter

public Printer getMessagePrinter()
Returns Printer the Warning messages are printed via.

clearMessagePrinter

public void clearMessagePrinter()
Clears Printer the Warning messages are prented via.

setProcessStatus

public void setProcessStatus(Status stProcess)
Sets process Status used to determine a current Session's process.

getProcessStatus

public Status getProcessStatus()
Returns process Status used to determine a current Session's process.

clearProcessStatus

public void clearProcessStatus()
Clears process Status used to determine a current Session's process.

setScriptLineStatus

public void setScriptLineStatus(LineStatus stLine)
Sets LineStatus used to determine a current line of a processed (executed or analyzed) Script. Example prints executed text lines over 10 (only 1 number from 10).
  LineStatus ls = new ConsoleLineStatus(10);
  ss.setScriptLineStatus(ls);
  String text = 
    "User:ann1 (Name:Ann);\n" +
    "User:dan  (Name:Daniel);\n" +
    ...
  ;
  ss.z(text);
 

getScriptLineStatus

public LineStatus getScriptLineStatus()
Returns LineStatus used to determine a current line of a processed (executed or analyzed) Script.

clearScriptLineStatus

public void clearScriptLineStatus()
Clears LineStatus used to determine a current line of a processed (executed or analyzed) Script.

setDataLineStatus

public void setDataLineStatus(LineStatus stDataLine)
Sets LineStatus used to determine a current line of a processed (read or printed) out data text. Example prints table line numbers over 1000 (with 1000 interval). Out data is in the "<", ">" brackets.
  LineStatus ls = new ConsoleLineStatus(1000);
  ss.setDataLineStatus(ls);
  String text = 
    "User; Name  \n" +
    "ann1; Ann   \n" +
    "dan ; Daniel\n" +
     ...
  ;
  ss.z("$readTable()<\n" + text + ">");
 

getDataLineStatus

public LineStatus getDataLineStatus()
Returns LineStatus used to determine a current line of a processed (read or printed) out data text.

clearDataLineStatus

public void clearDataLineStatus()
Clears LineStatus used to determine current line of a processed (read or printed) out data text.

setDataBaseStatus

public void setDataBaseStatus(Status stDataBase)
Sets Status used to determine a current Session's database.

getDataBaseStatus

public Status getDataBaseStatus()
Returns Status used to determine a current Session's database.

clearDataBaseStatus

public void clearDataBaseStatus()
Clears Status used to determine a current Session's database.

setScriptLine

public void setScriptLine(int number)
Sets up a current Script line number.

getScriptLine

public int getScriptLine()
Returns a current Script line number.

clearScriptLine

public void clearScriptLine()
Clears a current Script line number.

setCommutator

public void setCommutator(Commutator comm)
Sets Commutator, which permits to interrupt current process.

getCommutator

public Commutator getCommutator()
Returns Session's Commutator, which permits to interrupt current process.

base

public Sav.Processor.Association base()
Returns Sav.Processor.Association that represents Session's current DataBase.

database

public java.lang.String database()
Returns database path. Below database is "Users.ass".
  ss.z("$base \"Users\"");
  String database = ss.database();
 

service

public java.lang.String service()
Returns service name. Below service is "navigate".
  ss.z("$login(\"navigate\", \"111111\", \"ann1\"");
  String service = ss.service();
 

password

public java.lang.String password()
Returns password. Below password is "111111".
  ss.z("$login(\"navigate\", \"111111\", \"ann1\"");
  String password = ss.password();
 

user

public java.lang.String user()
Returns user name. Below user name is "ann1".
  ss.z("$login(\"navigate\", \"111111\", \"ann1\"");
  String user = ss.user();
 

close

public void close()
           throws java.io.IOException
Completes session. Namely, it closes a Session's databases, clears Warnings, stores Z multitudes and Z specifications (names of multitudes, procedures and others). Below, after close() all the databases are closed, error warnings are cleared. The x multitude is not stored, because of error. Therefor $x may be equal only c.
  Session ss = new Session();
  ss.useBase("Users");
  ss.z("$x = a");
  ss.z("$x = b**");
  if (ss.hasErrors()) {
    ss.close();
    ss.z("$x = c");
  }
 
Note: A Session resources are automatically released in the course of garbage collection.
See Also:
Session(), Session(String), closeBases()

finalize

protected void finalize()
                 throws java.io.IOException
Cleans up the Session's resources when there are no more references to the Session. It is invoked by garbage collector.
Overrides:
finalize in class java.lang.Object

setContext

public void setContext(java.lang.Object context)
Sets context object. Context may be useful for keeping informative parameters.
See Also:
getContext()

getContext

public java.lang.Object getContext()
Returns context object. Context may be useful for keeping informative parameters.
See Also:
setContext(java.lang.Object)

accessRight

public int accessRight()
Returns right of access to a current database.
Returns:
1 if user has right, 0 if right is not defined, < 0 if right is not (-1 if service is wrong, -2 if password is wrong, -3 if user name is wrong)
See Also:
login(), login(String), login(String, String), login(String, String, String)

login

public void login(java.lang.String service,
                  java.lang.String password,
                  java.lang.String user)
           throws java.io.IOException
Sets up user requisites: service, user password, and user name.
  ss.modifyBase("Data");
  ss.login("navigate", "111111", "ann1");
  if (ss.accessRight() < 0)
  ...
 
See Also:
accessRight()

login

public void login(java.lang.String service,
                  java.lang.String password)
           throws java.io.IOException
Sets up user requisites: service, user password. User name is retained from preceding login or equals "".
  ss.modifyBase("Data1");
  ss.login("navigate", "111111", "ann1");
  ...
  ss.modifyBase("Data2");
  ss.login("navigate", "123456");
 
See Also:
accessRight()

login

public void login(java.lang.String service)
           throws java.io.IOException
Sets up user requisites: service. User password and name are retained from preceding login or equal "".
  ss.modifyBase("Data1");
  ss.login("navigate", "111111", "ann1");
  ...
  ss.modifyBase("Data2");
  ss.login("navigate");
 
See Also:
accessRight()

login

public void login()
           throws java.io.IOException
Sets up requisites of user to work with a current database. Service, user password and name are retained from preceding login or equal "".
  ss.modifyBase("Data1");
  ss.login("navigate", "111111", "ann1");
  ...
  ss.modifyBase("Data2");
  ss.login();
 
See Also:
accessRight()

hideScriptStatus

public void hideScriptStatus(boolean yes)
Hides statuses for z scripts: current process, and current line. May be useful for right system or auxiliary scripts.