|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--Sav.Z.Session
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.
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.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); } }
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"
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.*; 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]); } }
The Sav Z API provides support of multi-connection from threads produced only by one JVM.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); } }
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 |
public static final java.lang.String KEYS
public static final int NONE
public static final int CATEGORY
public static final int PROCEDURE
public static final int MULTITUDE
public static final int FILE
public static final int BASE
public static final int SPECIFICATION
public static final int ELLIPSIS
public static final int NUMBER
public static final int STRING
public static final int WORD
public static final int SPACE
public static final int BRACE
public static final int BRACKET
public static final int PARENTHESIS
public static final int BRACE_TERM
public static final int BRACKET_TERM
public static final int PARENTHESIS_TERM
public static final int RANGE
public static final int COLON
public static final int DIVIDE
public static final int LEFT_SLASH
public static final int RIGHT_SLASH
public static final int EXTRACTION
public static final int INEQUALITY
public static final int EQUALITY
public static final int DECLARATION
public static final int COMMA
public static final int TERMINATION
public static final int P1
public static final int DESCRIPTIVE
public static final int CONJUNCTIVE
public static final int P2
public static final int DELIVERED
public static final int DECLARED
Constructor Detail |
public Session(java.lang.String rootPath) throws java.io.IOException
Session ss = new Session("/MyDirectory"); ss.z("$base Users ="); //opens modifiable "/MyDirectory/Users.ass" database
rootPath()
,
close()
public Session()
Session ss = new Session(); ss.z("= $base Users"); //opens non-modifiable "Users.ass" database
close()
Method Detail |
public java.lang.String rootPath()
Session(String)
public void initSpec() throws java.io.IOException
ss.z("$mul pr"); ... ss.initSpec();
public boolean z(java.lang.String text)
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(); ... }
hasWarnings()
,
report()
public void analyse(Script scr)
Session ss; Script scr; ... ss.analyse(scr); if (scr.hasErrors()) ...
hasErrors()
,
execute(Sav.Z.Script)
public void execute(Script scr)
Session ss; Script scr; ... ss.execute(scr); if (scr.hasFailures()) ...
hasFailures()
,
analyse(Sav.Z.Script)
public java.lang.String report()
User
and Name
.
Session ss; ... ss.z("$printTableRow(User:ann1, User, Name)"); String result = ss.report();
z(java.lang.String)
public Warning[] warnings()
hasWarnings()
public Error[] errors()
hasErrors()
public Failure[] failures()
hasFailures()
public boolean hasWarnings()
z(java.lang.String)
,
warnings()
public boolean hasErrors()
analyse(Sav.Z.Script)
,
errors()
public boolean hasFailures()
execute(Sav.Z.Script)
,
failures()
public int countWarnings()
public int countErrors()
public int countFailures()
public void clearWarnings()
public void clearErrors()
public void clearFailures()
public void set(java.lang.String name, java.lang.String value) throws java.io.IOException
get(java.lang.String)
,
clear(java.lang.String)
public void set(java.lang.String name, java.lang.String[] values) throws java.io.IOException
String users[] = { "ann1", "dan" } ss.set("x", users); ss.z("User:$x = (Resource:data1)");
get(java.lang.String)
,
clear(java.lang.String)
public java.lang.String[] get(java.lang.String name) throws java.io.IOException
ss.z("$x ~"); ss.z("$x = =User/"); String users[] = ss.get("x");
set(String, String)
,
set(String, String[])
public void clear(java.lang.String name) throws java.io.IOException
ss.clear("x"); ss.z("$x = =User/"); ...
set(String, String)
,
set(String, String[])
public int size(java.lang.String name) throws java.io.IOException
public Sav.Processor.Association association(java.lang.String name) throws java.io.IOException
ss.z("$x = test")
.
ss.z("$mul x"); Sav.Processor.Association a = ss.association("x"); a.set("test");
name
- denote of Z multitude namepublic Statement curStatement()
Exception
.public void modifyBase(java.lang.String path) throws java.io.IOException
Note: in case ofSession ss = new Session(); ss.modifyBase("Users"); ss.z("User:ann1"); ss.z("User:dan"); ... ss.closeBase();
ss.z("$base Users =")
,
database is closed at end of each succeeding Script execution,
closeBase() need not.path
- pathname of a databasecloseBase()
,
closeBase(String)
,
closeBases()
,
useBase()
public void modifyBase() throws java.io.IOException
useBase(String)
public void useBase(java.lang.String path) throws java.io.IOException
Note: in case ofSession ss = new Session(); ss.useBase("Users"); ss.z("= User:ann1"); ss.z("= User:dan"); ... ss.closeBase();
ss.z("= $base Users")
,
database is closed at end of each succeeding Script execution,
closeBase() need not.path
- pathname of a databasecloseBase()
,
closeBase(String)
,
closeBases()
,
modifyBase()
public void useBase() throws java.io.IOException
modifyBase(String)
public void closeBase(java.lang.String path) throws java.io.IOException
Note: Closed database may be opened repeatedly.Session ss = new Session(); ss.modifyBase("Users"); ss.useBase("Owners"); ... ss.closeBase("Users"); ...
path
- pathname of a databaseuseBase(String)
,
modifyBase(String)
public void closeBase() throws java.io.IOException
Note: Closed database may be opened repeatedly.Session ss = new Session(); ss.modifyBase("Users"); ... ss.closeBase();
useBase(String)
,
modifyBase(String)
public void closeBases() throws java.io.IOException
Note: Closed databases may be opened repeatedly.Session ss = new Session(); ss.modifyBase("Users"); ss.useBase("Owners"); ... ss.closeBases();
modifyBase(String)
,
useBase(String)
,
close()
public void setReportPrinter(Printer prtReport)
PrintWriter pw; ... Printer prt = new WPrinter(pw); ss.setReportPrinter(prt); ss.z("= User:"); pw.close();
public Printer getReportPrinter()
Printer prt = ss.getReportPrinter(); prt.println("Report has been finished"); prt.flush();
public void clearReportPrinter()
... ss.clearReportPrinter(); ss.z("= User:"); String result = ss.report();
public void setMessagePrinter(Printer prtMessage)
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");
public Printer getMessagePrinter()
public void clearMessagePrinter()
public void setProcessStatus(Status stProcess)
public Status getProcessStatus()
public void clearProcessStatus()
public void setScriptLineStatus(LineStatus stLine)
LineStatus ls = new ConsoleLineStatus(10); ss.setScriptLineStatus(ls); String text = "User:ann1 (Name:Ann);\n" + "User:dan (Name:Daniel);\n" + ... ; ss.z(text);
public LineStatus getScriptLineStatus()
public void clearScriptLineStatus()
public void setDataLineStatus(LineStatus stDataLine)
LineStatus ls = new ConsoleLineStatus(1000); ss.setDataLineStatus(ls); String text = "User; Name \n" + "ann1; Ann \n" + "dan ; Daniel\n" + ... ; ss.z("$readTable()<\n" + text + ">");
public LineStatus getDataLineStatus()
public void clearDataLineStatus()
public void setDataBaseStatus(Status stDataBase)
public Status getDataBaseStatus()
public void clearDataBaseStatus()
public void setScriptLine(int number)
public int getScriptLine()
public void clearScriptLine()
public void setCommutator(Commutator comm)
public Commutator getCommutator()
public Sav.Processor.Association base()
public java.lang.String database()
ss.z("$base \"Users\""); String database = ss.database();
public java.lang.String service()
ss.z("$login(\"navigate\", \"111111\", \"ann1\""); String service = ss.service();
public java.lang.String password()
ss.z("$login(\"navigate\", \"111111\", \"ann1\""); String password = ss.password();
public java.lang.String user()
ss.z("$login(\"navigate\", \"111111\", \"ann1\""); String user = ss.user();
public void close() throws java.io.IOException
Note: A Session resources are automatically released in the course of garbage collection.Session ss = new Session(); ss.useBase("Users"); ss.z("$x = a"); ss.z("$x = b**"); if (ss.hasErrors()) { ss.close(); ss.z("$x = c"); }
Session()
,
Session(String)
,
closeBases()
protected void finalize() throws java.io.IOException
finalize
in class java.lang.Object
public void setContext(java.lang.Object context)
getContext()
public java.lang.Object getContext()
setContext(java.lang.Object)
public int accessRight()
login()
,
login(String)
,
login(String, String)
,
login(String, String, String)
public void login(java.lang.String service, java.lang.String password, java.lang.String user) throws java.io.IOException
ss.modifyBase("Data"); ss.login("navigate", "111111", "ann1"); if (ss.accessRight() < 0) ...
accessRight()
public void login(java.lang.String service, java.lang.String password) throws java.io.IOException
ss.modifyBase("Data1"); ss.login("navigate", "111111", "ann1"); ... ss.modifyBase("Data2"); ss.login("navigate", "123456");
accessRight()
public void login(java.lang.String service) throws java.io.IOException
ss.modifyBase("Data1"); ss.login("navigate", "111111", "ann1"); ... ss.modifyBase("Data2"); ss.login("navigate");
accessRight()
public void login() throws java.io.IOException
ss.modifyBase("Data1"); ss.login("navigate", "111111", "ann1"); ... ss.modifyBase("Data2"); ss.login();
accessRight()
public void hideScriptStatus(boolean yes)
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |