OBEROn SDK

com.oberon.ooql.sdk
Class Program

java.lang.Object
  extended by com.oberon.ooql.sdk.OBBase
      extended by com.oberon.ooql.sdk.AdminBase
          extended by com.oberon.ooql.sdk.Program
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
Trigger

public class Program
extends AdminBase
implements java.io.Serializable

Program Admin Object: defines java programs employed as event Triggers or object methods

Version:
5.0
See Also:
Serialized Form

Field Summary
static java.lang.String CLASSNAME
          The "CLASSNAME" keyword used in the program code
static java.lang.String EXTEND
          The "EXTEND" keyword used in the program code
 
Fields inherited from class com.oberon.ooql.sdk.AdminBase
bsOptions, HIDDEN_OPTION
 
Constructor Summary
Program()
           
Program(java.lang.String name)
           
 
Method Summary
 java.lang.String compareSimple(Program refProgram, boolean checkImage)
          Return the template of OOQL command to update this Program object and let it become equals to another reference object.
 java.lang.String compareUpdate(Program refProgram, boolean checkImage, boolean overwrite, boolean force, Framework framework)
          Return/apply the OOQL command to update this Program object and let it become equals to another reference object.
static void compile(AdminQuery adminQuery, Framework framework, boolean force)
          Compile one or more Programs
 void compile(Framework framework, boolean force)
          Compile the Program
 void create(boolean force, Framework framework)
          Create a new Program object on the database
 void create(Framework framework)
          Create a new Program object on the database
 void destroy(Framework framework)
          Remove the Program object from the database.
 Framework execute(Framework framework, java.util.Vector<java.lang.Object> args)
          Execute the Program
 void fromXML(org.jdom.Element rootElement)
          Load the Program object from XML element tree
 java.lang.String getCreateCommand(boolean force)
          Return the OOQL command to create this Program object with the settled properties
 java.lang.String getCreateCommand(boolean force, boolean simple)
          Return the OOQL command to create this Program object with the settled properties
 java.lang.String getJavaClass()
          Get the java class name for this Program
 java.util.Vector<java.lang.String> getOwnSubPrograms(Framework framework)
          Return the list of sub-Programs directly derived from this Program
 java.lang.String getOwnSubProgramsAsString(java.lang.String delim, Framework framework)
          Return the list of sub-Programs directly derived from this Program, as a String
 java.lang.String getProperty(java.lang.String propertyName, java.util.Vector<java.lang.Object> filterArgs, java.lang.String token, Framework framework)
          Get a property for this Program object by its OOQL identifier
 java.lang.String getSaveCommand(boolean force)
          Return the OOQL command to update this Program object with the modified properties.
 java.lang.String getSourceCode()
          Get the Program java source code
 java.util.Vector<java.lang.String> getSubPrograms(Framework framework)
          Return the full list of sub-Programs derived from this Program
 java.lang.String getSubProgramsAsString(java.lang.String delim, Framework framework)
          Return the full list of sub-Programs derived from this Program, as a String
 java.lang.String getSuper()
          Get the Super Program name.
 java.util.Vector<?> getTargetNames(java.lang.String composedName, java.util.Vector<java.lang.Object> filterArgs, Framework framework)
          Return a Vector of administrative object names extracted by using an OOQL selector
 java.lang.Object invoke(java.lang.String methodName, Framework framework, java.util.Vector<?> args)
          Invoke a method defined into the Program java class
 void link(Framework framework, java.util.Hashtable<java.lang.String,java.lang.Integer> counters)
          Open the Program object: connect the memory instance with the database instance
static Program open(java.lang.String name, Framework framework, java.util.Hashtable<java.lang.String,java.lang.Integer> counters)
          Open an administrative object and read properties from the database or retrieve them from memory
static java.util.Vector<java.lang.String> parseArgs(java.lang.String argString)
          Parse the input arguments from a command line string
 void setJavaClass(java.lang.String javaClass)
          Set the java class name for this Program [INTERNAL USAGE]
 void setName(java.lang.String name)
          Set the Program name
 void setSourceCode(java.lang.String javacode)
          Set the Program java source code.
 void setSourceFile(java.lang.String fileName)
          Load the Program java source code from a local disk file
 java.lang.String toString()
          Return the Program object basic properties as a single String
 java.lang.String toString(Framework framework)
          Return the Program object extended properties as a single String
 org.jdom.Element toXML(boolean getImage, boolean fullDump, Framework framework)
          Return the Program object properties as XML element tree
 org.jdom.Element toXML(Framework framework)
          Return the Program object properties as XML element tree
 void unlink(Framework framework)
          Close the object: disconnect the memory instance from the database instance
 void write(boolean force, Framework framework)
          Update the Program object to the database
 void write(Framework framework)
          Update the Program object to the database
 
Methods inherited from class com.oberon.ooql.sdk.AdminBase
addFeature, changedApplication, checkChangeName, checkCounters, checkCounters, getAdminType, getApplication, getCommonProperty, getCommonTargetNames, getCounters, getCreateBasicCommand, getCreateCommand, getCrtDate, getDescription, getEditBasicCommand, getFeature, getFeatures, getFeaturesAsString, getImage, getImage, getImage, getImageData, getImageFile, getModDate, getModUser, getName, getOldName, getPlainFeatures, getSaveCommand, getSVNRevision, getXMLFeatureList, hasImage, isHidden, setApplication, setCounters, setCrtDate, setDescription, setHidden, setImage, setImageData, setImageFile, setModDate, setModUser, setSVNRevision, show, show, toCommonXML, toXML
 
Methods inherited from class com.oberon.ooql.sdk.OBBase
addChange, addUniqueChange, ChangesFromXML, ChangesToXML, getChanges, getChangesAsString, getId, isLinked, removeChange, resetChanges, setId, setLinked
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CLASSNAME

public static final java.lang.String CLASSNAME
The "CLASSNAME" keyword used in the program code

See Also:
Constant Field Values

EXTEND

public static final java.lang.String EXTEND
The "EXTEND" keyword used in the program code

See Also:
Constant Field Values
Constructor Detail

Program

public Program()

Program

public Program(java.lang.String name)
        throws OberonException
Parameters:
name - the name of the administrative object
Throws:
OberonException - if the name contains invalid characters
Method Detail

open

public static Program open(java.lang.String name,
                           Framework framework,
                           java.util.Hashtable<java.lang.String,java.lang.Integer> counters)
                    throws OberonException
Open an administrative object and read properties from the database or retrieve them from memory

Parameters:
name - the object name
framework - the current framework
counters - administrative object synch counters (if null read them from database)
Throws:
OberonException - usually due to DB SQL exceptions

link

public void link(Framework framework,
                 java.util.Hashtable<java.lang.String,java.lang.Integer> counters)
          throws OberonException
Open the Program object: connect the memory instance with the database instance

Specified by:
link in class AdminBase
Parameters:
framework - the current framework
counters - administrative object synch counters (if null read them from database)
Throws:
OberonException - usually due to DB SQL exceptions

create

public void create(Framework framework)
            throws OberonException
Create a new Program object on the database

Specified by:
create in class AdminBase
Parameters:
framework - the current framework
Throws:
OberonException - usually due to DB SQL exceptions or to limited user access rights

create

public void create(boolean force,
                   Framework framework)
            throws OberonException
Create a new Program object on the database

Parameters:
force - if true ignores optional features
framework - the current framework
Throws:
OberonException - usually due to DB SQL exceptions or to limited user access rights
Since:
1.6

write

public void write(Framework framework)
           throws OberonException
Update the Program object to the database

Specified by:
write in class AdminBase
Parameters:
framework - the current framework
Throws:
OberonException - usually due to DB SQL exceptions or to limited user access rights

write

public void write(boolean force,
                  Framework framework)
           throws OberonException
Update the Program object to the database

Parameters:
force - if true ignores optional features
framework - the current framework
Throws:
OberonException - usually due to DB SQL exceptions or to limited user access rights
Since:
1.6

unlink

public void unlink(Framework framework)
            throws OberonException
Close the object: disconnect the memory instance from the database instance

Specified by:
unlink in class AdminBase
Parameters:
framework - the current framework
Throws:
OberonException - usually due to DB SQL exceptions

destroy

public void destroy(Framework framework)
             throws OberonException
Remove the Program object from the database.

Specified by:
destroy in class AdminBase
Parameters:
framework - the current framework
Throws:
OberonException - usually due to DB SQL exceptions or to limited user access rights

compile

public void compile(Framework framework,
                    boolean force)
             throws OberonException
Compile the Program

Parameters:
framework - the current framework
force - if true re-compile the Program also if already compiled
Throws:
OberonException - due to Java compilation errors

compile

public static void compile(AdminQuery adminQuery,
                           Framework framework,
                           boolean force)
                    throws OberonException
Compile one or more Programs

Parameters:
adminQuery - administrative query to extract the Program list to compile
framework - the current framework
force - if true re-compile the Program(s) also if already compiled
Throws:
OberonException - due to Java compilation errors

execute

public Framework execute(Framework framework,
                         java.util.Vector<java.lang.Object> args)
                  throws OberonException
Execute the Program

Parameters:
framework - the current framework
args - vector of Program input arguments
Throws:
OberonException - due to execution errors or programmatically raised exceptions

invoke

public java.lang.Object invoke(java.lang.String methodName,
                               Framework framework,
                               java.util.Vector<?> args)
                        throws OberonException
Invoke a method defined into the Program java class

Parameters:
methodName - the method name
framework - the current framework
args - vector of Program input arguments
Throws:
OberonException - due to execution errors or programmatically raised exceptions

setName

public void setName(java.lang.String name)
             throws OberonException
Set the Program name

Overrides:
setName in class AdminBase
Parameters:
name - the name of the administrative object
Throws:
OberonException - if the name contains the pipe '|' character

setSourceCode

public void setSourceCode(java.lang.String javacode)
Set the Program java source code. The program class must implement the ProgramCode interface and in particular it has to include the OberonMain method. It must have the following structure:

public class <CLASSNAME> <EXTEND=Super_Program_Name> {
... statements ...
public Framework OberonMain(Vector args , Framework framework) throws OberonException {
... statements ...
}
... statements ...
}

where "Super_Program_Name" can be empty if this Program class doesn't extends any other class


setSourceFile

public void setSourceFile(java.lang.String fileName)
                   throws OberonException
Load the Program java source code from a local disk file

Parameters:
fileName - the path/name of java code file
Throws:
OberonException - due to file IO Exceptions

setJavaClass

public void setJavaClass(java.lang.String javaClass)
Set the java class name for this Program [INTERNAL USAGE]

Parameters:
javaClass - the java class name

getJavaClass

public java.lang.String getJavaClass()
Get the java class name for this Program


getSuper

public java.lang.String getSuper()
Get the Super Program name.

Returns:
empty if this Program doesn't extend another Program

getSourceCode

public java.lang.String getSourceCode()
Get the Program java source code


getSubPrograms

public java.util.Vector<java.lang.String> getSubPrograms(Framework framework)
Return the full list of sub-Programs derived from this Program

Parameters:
framework - the current framework
Returns:
vector of Program names
Since:
2.2_04

getSubProgramsAsString

public java.lang.String getSubProgramsAsString(java.lang.String delim,
                                               Framework framework)
Return the full list of sub-Programs derived from this Program, as a String

Parameters:
delim - the separator item
framework - the current framework
Returns:
list of Program names separated by the delim characters
Since:
2.2_04

getOwnSubPrograms

public java.util.Vector<java.lang.String> getOwnSubPrograms(Framework framework)
Return the list of sub-Programs directly derived from this Program

Parameters:
framework - the current framework
Returns:
vector of Program names
Since:
2.2_04

getOwnSubProgramsAsString

public java.lang.String getOwnSubProgramsAsString(java.lang.String delim,
                                                  Framework framework)
Return the list of sub-Programs directly derived from this Program, as a String

Parameters:
delim - the separator item
framework - the current framework
Returns:
list of Program names separated by the delim characters
Since:
2.2_04

parseArgs

public static java.util.Vector<java.lang.String> parseArgs(java.lang.String argString)
                                                    throws java.lang.Exception
Parse the input arguments from a command line string

Returns:
a Vector of separated input arguments, without quotes
Throws:
java.lang.Exception

getProperty

public java.lang.String getProperty(java.lang.String propertyName,
                                    java.util.Vector<java.lang.Object> filterArgs,
                                    java.lang.String token,
                                    Framework framework)
Get a property for this Program object by its OOQL identifier

Specified by:
getProperty in class OBBase
Parameters:
propertyName - OOQL property identifier/name (example: source , superprogram ...)
filterArgs - extra arguments used to compute properties
token - separator token for complex properties
framework - the current framework
Returns:
the property value

getTargetNames

public java.util.Vector<?> getTargetNames(java.lang.String composedName,
                                          java.util.Vector<java.lang.Object> filterArgs,
                                          Framework framework)
Return a Vector of administrative object names extracted by using an OOQL selector

Specified by:
getTargetNames in class OBBase
Parameters:
composedName - OOQL property identifier/name (example: super, .. )
filterArgs - extra arguments used to compute properties
framework - the current framework
Returns:
a Vector of target names, used to extract their (sub)properties values

toString

public java.lang.String toString()
Return the Program object basic properties as a single String

Overrides:
toString in class AdminBase

toString

public java.lang.String toString(Framework framework)
Return the Program object extended properties as a single String

Overrides:
toString in class AdminBase
Parameters:
framework - the current framework

toXML

public org.jdom.Element toXML(Framework framework)
Return the Program object properties as XML element tree

Specified by:
toXML in class AdminBase
Parameters:
framework - the current framework

toXML

public org.jdom.Element toXML(boolean getImage,
                              boolean fullDump,
                              Framework framework)
Return the Program object properties as XML element tree

Specified by:
toXML in class AdminBase
Parameters:
getImage - true to include "imagedata" element with the base64 encoded image data
fullDump - true to include detailed information
framework - the current framework

fromXML

public void fromXML(org.jdom.Element rootElement)
Load the Program object from XML element tree

Overrides:
fromXML in class AdminBase

getCreateCommand

public java.lang.String getCreateCommand(boolean force)
Return the OOQL command to create this Program object with the settled properties

Specified by:
getCreateCommand in class AdminBase
Parameters:
force - if true append the "force" options at the end

getCreateCommand

public java.lang.String getCreateCommand(boolean force,
                                         boolean simple)
Return the OOQL command to create this Program object with the settled properties

Parameters:
simple - if true return the command template

getSaveCommand

public java.lang.String getSaveCommand(boolean force)
Return the OOQL command to update this Program object with the modified properties.
If the object is new, it returns the create command.

Specified by:
getSaveCommand in class AdminBase
Parameters:
force - if true append the "force" options at the end

compareUpdate

public java.lang.String compareUpdate(Program refProgram,
                                      boolean checkImage,
                                      boolean overwrite,
                                      boolean force,
                                      Framework framework)
                               throws OberonException
Return/apply the OOQL command to update this Program object and let it become equals to another reference object.
This method is useful to import objects from an XML file.

Parameters:
refProgram - the reference Program object
checkImage - if true compare also the image icon
overwrite - if true update the database object instance
force - if true ignores optional properties
framework - the current framework
Throws:
OberonException
See Also:
fromXML(Element)

compareSimple

public java.lang.String compareSimple(Program refProgram,
                                      boolean checkImage)
                               throws OberonException
Return the template of OOQL command to update this Program object and let it become equals to another reference object.

Parameters:
refProgram - the reference Program object
checkImage - if true compare also the image icon
Throws:
OberonException

OBEROn SDK

Copyright © 2008-2014 Mirko Solazzi. All Rights Reserved.