Class BaseService

java.lang.Object
com.softwaremining.logic.BaseService
All Implemented Interfaces:
IBaseService, Service, IDisplayable, Runnable
Direct Known Subclasses:
BullBaseService, CAIdealBaseService, DMSBaseService, ESQLBaseService, FileLoaderService, HpBaseService, ShadowBaseService, VaxBaseService, VosBaseService, WangBaseService

public abstract class BaseService extends Object implements Service, IDisplayable, IBaseService
This is the main super class of Business-Logic classes. It provides many COBOL functionalities such as GOTO, Perform, CALLS/CANCELS, resource managements and ...
Business logic classes can also inherit from other classes such as ESQLBaseService or CicsBaseService (or user's own SuperClass). But these classes invariably have to inherit from BaseService.
  • Field Details

    • PARA_NAME_POSTFIX

      public static final String PARA_NAME_POSTFIX
      See Also:
    • log

      protected transient Log log
      used for display of statements from COBOL EXHIBIT statement
    • calledParameters

      protected List<ISMDataType> calledParameters
    • totalRuntime_reflection

      public static long totalRuntime_reflection
      for internal use only ... profiling information
    • totalRuntime_processControlException

      public static long totalRuntime_processControlException
    • profiled_baseService_runtimes

      public static HashMap<String,Long> profiled_baseService_runtimes
      For internal use only - contains profiling/execution-time information for each program ran
  • Constructor Details

    • BaseService

      public BaseService(BaseService parent)
      constructor
      Parameters:
      parent -
    • BaseService

      public BaseService(Long sessionId)
    • BaseService

      public BaseService()
      constructor
  • Method Details

    • optimizeUsingTransfuseByReference

      public static final void optimizeUsingTransfuseByReference(boolean newValue)
      Change whether to optimize transfuse processing or not.
      Parameters:
      newValue - whether or not to optimize
    • getSessionId

      public final Long getSessionId()
      Specified by:
      getSessionId in interface IBaseService
    • setSessionId

      public final void setSessionId(Long sessionId)
      Specified by:
      setSessionId in interface IBaseService
    • enableReuse

      public final void enableReuse()
      Invoking this method allows the "Entry" program (the one without a session id) to be reused. Enabling this will stop the system from freeing all the DAO resources - which means they do not need new memory allocations.
    • getLastDisplayColumn

      public final int getLastDisplayColumn()
      Specified by:
      getLastDisplayColumn in interface IDisplayable
    • setLastDisplayColumn

      public final void setLastDisplayColumn(int lastDisplayColumn)
      Specified by:
      setLastDisplayColumn in interface IDisplayable
    • getLastDisplayRow

      public final int getLastDisplayRow()
      Specified by:
      getLastDisplayRow in interface IDisplayable
    • setLastDisplayRow

      public final void setLastDisplayRow(int lastDisplayRow)
      Specified by:
      setLastDisplayRow in interface IDisplayable
    • registerDataWrapper

      public final void registerDataWrapper(ISMBean wrapper)
      Method Used internally by SoftwareMining framework All Data-Access-Objects / DAO's are registered - to allow the system to release the memory on exit
      Parameters:
      wrapper -
    • registerDataWrappers

      public final void registerDataWrappers(ISMBean[] wrappers)
      Method Used internally by SoftwareMining framework All Data-Access-Objects / DAO's are registered - to allow the system to release the memory on exit
      Parameters:
      wrapper -
    • getDataWrappers

      public final ISMBean[] getDataWrappers()
      return the Array of dataWrappers
      Returns:
    • setUsesAnnotationBasedMethodOrdering

      public final void setUsesAnnotationBasedMethodOrdering(boolean newValue)
    • assignUsesAnnotationBasedMethodOrdering

      public final void assignUsesAnnotationBasedMethodOrdering(boolean newValue)
    • initializeBaseService

      protected void initializeBaseService()
      Initialize method names : When method names contain the "_Mxxx" notation, then the system will go thru the methods and put them in to a list, therefore ensuring the _gotos and _performThru functionality works. The intialize method will get called during calls to "run" method.
    • makeUpClassScreenSourceName

      public String makeUpClassScreenSourceName()
      method used internally by SoftwareMining framework
      Specified by:
      makeUpClassScreenSourceName in interface IDisplayable
      Returns:
      - a string representing the XML screen file for program. For example, for class com.softwaremining.examples.Loan, the following string will be returned: /com/softwaremining/examples/loan/xml/screens/Loan.xml
    • invoke

      public final void invoke(String targetName) throws ControlException
      Specified by:
      invoke in interface IBaseService
      Throws:
      ControlException
    • callJavaMethod

      protected void callJavaMethod(String methodName)
      equivalant of COBOL PERFORM statement
      Parameters:
      targetName -
      Throws:
      ControlException
    • callJavaMethod

      protected void callJavaMethod(String methodName, boolean suppressExceptions)
      when the system does not use GOTO or PERFORM, then use this one
      Parameters:
      methodName -
    • hasReflectionBasedFlowLogic

      protected boolean hasReflectionBasedFlowLogic()
      for internal use only
      Returns:
    • invokeRange

      public final void invokeRange(String firstParagraphName, String lastParagraphName) throws ControlException
      translation of COBOL perform-Thru
      Specified by:
      invokeRange in interface IBaseService
      Parameters:
      firstParagraphName -
      lastParagraphName -
      Throws:
      ControlException
    • _goto

      public final void _goto(String paragraphName) throws ControlException
      representation of COBOL goto statement
      Specified by:
      _goto in interface IBaseService
      Throws:
      ControlException
    • getParagraph

      public final Method getParagraph(String paragraphName)
    • getNextPoint

      protected final String getNextPoint(String nextPointName)
      get next paragraph in chain
      Parameters:
      nextPointName -
      Returns:
    • run

      public void run()
      method is used internally by SoftwareMining framework. Allows the root LAUNCHING programs to be run in a separate thread. This is important for Screen-handling applications.
      Specified by:
      run in interface Runnable
    • processCicsAbendException

      protected void processCicsAbendException(Exception e)
      For internal use only
      Parameters:
      e -
    • setScreenClient

      public final void setScreenClient(IScreenClient screenClient)
      method used internally by SoftwareMining framework
      Specified by:
      setScreenClient in interface Service
    • getScreenClient

      public final IScreenClient getScreenClient()
      method used internally by SoftwareMining framework
      Specified by:
      getScreenClient in interface IDisplayable
    • getWrapperList

      public final List<ISMBean> getWrapperList()
      method used internally by SoftwareMining framework
    • getXMLScreenDefReader

      public final XMLScreenDefReader getXMLScreenDefReader(String filenameAndPath)
      method used internally by SoftwareMining framework
      Specified by:
      getXMLScreenDefReader in interface IDisplayable
    • setCallerWaiting

      public final void setCallerWaiting(boolean callerWaiting)
      method used internally by SoftwareMining framework
    • isCallerWaiting

      public final boolean isCallerWaiting()
      method used internally by SoftwareMining framework
    • popNextRuntimeParameter

      public final String popNextRuntimeParameter()
      return next runtime parameter (if any) and remove it from the stack
    • getServletRunTimeParameterFrom

      public final String getServletRunTimeParameterFrom(String key)
      Parameters:
      key -
      Returns:
    • accept

      public final void accept(AbstractCBLField toAccept)
      Screen handling method representing COBOL's ACCEPT FROM SCREEN methods. The method will first check to see if there is any run-time parameters which will need to be assigned to this field. If so, it will POP the runtime parameters and sets the "toAccept" field to the value of the first one.
    • quit

      public void quit()
      Gracefully Stop the execution of this program
    • goBack

      public final void goBack() throws ControlException
      Translation of COBOL GOBACK statement. Performs house keeping (preparing return code, pass-by-reference data) and then passes control to the calling. In absence of a Calling program (e.g. when launched from command-line) it terminates the execution thread.
      Specified by:
      goBack in interface IBaseService
      Throws:
      ControlException
    • stop

      public final void stop() throws ControlException
      Translation of COBOL STOP statement. Gracefully STOPS the execution of the application (Does not kill the application server).
      Specified by:
      stop in interface IBaseService
      Throws:
      ControlException
    • stop

      public final void stop(long newValue) throws ControlException
      Translation of COBOL STOP RETURNING statement Gracefully STOPS the execution of the application (Does not kill the application server).
      Throws:
      ControlException
    • retrieveField

      public ISMObject retrieveField(String fieldName)
      Return the field identified by fieldName. Used internally by SoftwareMining Framework in Reports/Displays.
      Specified by:
      retrieveField in interface IDisplayable
      Parameters:
      fieldName -
      Returns:
    • getField

      public final ISMObject getField(String className, String fieldName)
      Return the field identified by fieldName. If className is provided, then try to find the className.fieldName Used internally by SoftwareMining Framework in Reports/Displays
      Specified by:
      getField in interface IDisplayable
      Parameters:
      fieldName -
      Returns:
    • getScreenClassName

      public final String getScreenClassName()
      Used internally by SoftwareMining framework
      Specified by:
      getScreenClassName in interface IDisplayable
    • currentDate

      public static String currentDate()
      Representation of COBOL's ACCEPT FROM DATE
      Returns:
      Stringified date
    • countCallParameters

      public int countCallParameters()
      For internal use Returns count of Registered Input Parameters
    • retrieveCalledParameters

      public List<ISMDataType> retrieveCalledParameters()
      For internal use
    • reRegisterExecuteParameters

      protected void reRegisterExecuteParameters()
      used in IMS and CICS Api
    • receiveExecuteParameter

      protected final void receiveExecuteParameter(ISMDataType param1)
    • receiveExecuteParameter

      protected final void receiveExecuteParameter(ISMDataType wrapper, ISMDataType wrapper2)
    • receiveExecuteParameter

      protected final void receiveExecuteParameter(ISMDataType wrapper, ISMDataType wrapper2, ISMDataType wrapper3)
    • receiveExecuteParameter

      protected final void receiveExecuteParameter(ISMDataType wrapper, ISMDataType wrapper2, ISMDataType wrapper3, ISMDataType wrapper4)
    • receiveExecuteParameter

      protected final void receiveExecuteParameter(ISMDataType wrapper, ISMDataType wrapper2, ISMDataType wrapper3, ISMDataType wrapper4, ISMDataType wrapper5)
    • addCallParameter

      public final void addCallParameter(CBLPointer param, boolean byContent)
      caller sets the parameter
      Specified by:
      addCallParameter in interface IBaseService
      Parameters:
      param -
      byContent - : Passing variables by Reference means that any changes to the values will be passed back to the calling class. Passing variables by content means that changes will NOT be passed to the caller.
    • addCallParameter

      public final void addCallParameter(int param, boolean byContent)
      caller sets the parameter
      Specified by:
      addCallParameter in interface IBaseService
      Parameters:
      byContent - : Passing variables by Reference means that any changes to the values will be passed back to the calling class. Passing variables by content means that changes will NOT be passed to the caller.
    • addCallParameter

      public final void addCallParameter(ISMDataType dataObj, boolean byContent)
      caller sets the parameter
      Specified by:
      addCallParameter in interface IBaseService
      Parameters:
      byContent - : Passing variables by Reference means that any changes to the values will be passed back to the calling class. Passing variables by content means that changes will NOT be passed to the caller.
      param -
    • addCallParameter

      public final void addCallParameter(ISMDataType dataObj)
      Passing variables by Reference means that any changes to the values will be passed back to the calling class. Passing variables by content means that changes will NOT be passed to the caller.
      Specified by:
      addCallParameter in interface IBaseService
      Parameters:
      dataObj -
    • addCallParameter

      public final void addCallParameter(ISMNumeric dataObj)
    • addCallParameter

      public final void addCallParameter(int param)
      caller sets the parameter
      Specified by:
      addCallParameter in interface IBaseService
      Parameters:
      param -
    • addCallParameter

      public final void addCallParameter(String param, boolean byContent)
      caller sets the parameter
      Specified by:
      addCallParameter in interface IBaseService
      Parameters:
      param -
    • addCallParameter

      public final void addCallParameter(String param)
      Specified by:
      addCallParameter in interface IBaseService
    • clearCallingParameters

      public final void clearCallingParameters()
    • addRuntimeParameter

      public final void addRuntimeParameter(String param)
      Used by the starting application (SMLauncher) to pass in runtime parameter (if any)
    • addRuntimeParameter

      public final void addRuntimeParameter(String[] params)
      Used by the starting application (SMTextAppLauncher) to pass in runtime parameter (if any)
    • execute

      public Integer execute()
      Run the program - transferring any parameters via method "addCallParameter" to the called program. Note that in some COBOL application a very large number of Parameters will be passed between programs. For example, 20 parameters may be used in a call. This makes it impractical to have a a single "execute" method with 20 parameters to receive the calls. After successful execution of program, the parameters passed by reference will have new values.
      Specified by:
      execute in interface IBaseService
      Returns:
      '0' represents successful completion of called program
    • setCommandLineParameters

      public final void setCommandLineParameters()
      This method is used internally by SoftwareMining framwork. This method is only invoked when the application is started from command line, e.g. when : java -Xms150m -Xmx550m com.softwaremining.SMTextAppLauncher com.mypackage.MyClass paramter-1, parameter-2 It ensures that the parameter-1 and parameter-2 is passed onto the MyClass
      NOTE: The target class must overwrite the method: registerUsingParameters() ... to tell the system which fields should be populated.
    • execute

      public final Integer execute(ISMDataType wrapper1)
      Execute the calling program, using the provided parameters. "addCallParameter" is used to set the parameters.
      Specified by:
      execute in interface IBaseService
      Parameters:
      wrapper1 - - Instance of CBLBean object passed to the called program
      Returns:
      '0' represents successful completion of called program
    • executeWithPointerData

      public final Integer executeWithPointerData(CBLPointer wrapper1)
      this is same as standard "execute" method. The intention is for translator to high light calls where system is explicitly passing pointers
    • executeWithPointerData

      public final Integer executeWithPointerData()
      this is same as standard "execute" method. The intention is for translator to light calls calls where all parameters are pointers
    • execute

      public final Integer execute(ISMDataType wrapper1, ISMDataType wrapper2)
      Execute the calling program, using the provided parameters. "addCallParameter" is used to set the parameters.
      Specified by:
      execute in interface IBaseService
      Parameters:
      wrapper1 - - Instance of CBLBean object passed to the called program
      wrapper2 - - Instance of CBLBean object passed to the called program
      Returns:
      '0' represents successful completion of called program
    • execute

      public final Integer execute(ISMDataType wrapper1, ISMDataType wrapper2, ISMDataType wrapper3)
      Execute the calling program, using the provided parameters. "addCallParameter" is used to set the parameters.
      Specified by:
      execute in interface IBaseService
      Parameters:
      wrapper1 - - Instance of CBLBean object passed to the called program
      wrapper2 - - Instance of CBLBean object passed to the called program
      wrapper3 - - Instance of CBLBean object passed to the called program
      Returns:
      '0' represents successful completion of called program
    • execute

      public final Integer execute(ISMDataType wrapper1, ISMDataType wrapper2, ISMDataType wrapper3, ISMDataType wrapper4)
      Execute the calling program, using the provided parameters. "addCallParameter" is used to set the parameters.
      Specified by:
      execute in interface IBaseService
      Parameters:
      wrapper1 - - Instance of CBLBean object passed to the called program
      wrapper2 - - Instance of CBLBean object passed to the called program
      wrapper3 - - Instance of CBLBean object passed to the called program
      wrapper4 - - Instance of CBLBean object passed to the called program
      Returns:
      '0' represents successful completion of called program
    • execute

      public final Integer execute(ISMDataType wrapper1, ISMDataType wrapper2, ISMDataType wrapper3, ISMDataType wrapper4, ISMDataType wrapper5)
      Execute the calling program, using the provided parameters. "addCallParameter" is used to set the parameters.
      Specified by:
      execute in interface IBaseService
      Parameters:
      wrapper1 - - Instance of CBLBean object passed to the called program
      wrapper2 - - Instance of CBLBean object passed to the called program
      wrapper3 - - Instance of CBLBean object passed to the called program
      wrapper4 - - Instance of CBLBean object passed to the called program
      wrapper5 - - Instance of CBLBean object passed to the called program
      Returns:
      '0' represents successful completion of called program
    • execute

      public final Integer execute(String data)
      Specified by:
      execute in interface IBaseService
    • chain

      public final void chain(BaseService chainedProgram) throws ControlException
      represenatation of COBOL CHAIN statement.
      Parameters:
      chainedProgram -
      Throws:
      ControlException
    • setReturnCode

      public final void setReturnCode(long newReturnCode)
      representation of COBOL RETURN value
      Specified by:
      setReturnCode in interface IBaseService
      Parameters:
      newReturnCode -
    • setReturnCode

      public final void setReturnCode(String newReturnCode)
    • setReturnCode

      public final void setReturnCode(Integer newReturnCode)
      representation of COBOL RETURN value
      Parameters:
      newReturnCode -
    • getReturnCode

      public final int getReturnCode()
      representation of COBOL RETURN value
      Specified by:
      getReturnCode in interface IBaseService
      Parameters:
      newReturnCode -
    • registerExecuteParameters

      protected void registerExecuteParameters()
      The "execute()" method usually passes parameters to this class. This method will receive the incoming data - into the parameters registered here. default method for receiving no parameters from the called program.
    • abort

      protected void abort(Throwable t)
    • isCicsAutoSyncPointEnabled

      public boolean isCicsAutoSyncPointEnabled()
    • getReportProcessorList

      public List<ReportProcessor> getReportProcessorList()
    • destroy

      protected void destroy()
      Automatically called after exiting a program (normal exit, Go-Back).
    • destroyOnFatalError

      protected void destroyOnFatalError()
      Automatically called after fatal error
    • doFinalize

      public void doFinalize()
      Automatically called after CANCELing (ServicesFactory.cancel) running a program - it removes all wrapperLists
    • doFinalize

      public void doFinalize(boolean forceRelease)
      Used primarily for termination of inner-Class calls (0014678)
      Parameters:
      forceRelease -
    • doFinalize

      public void doFinalize(boolean forceRelease, boolean closeConnection)
      virtual method - this is for manual use - it forces release of all wrappers - Only use when it can be known for certain that the programs calling this one, or programs called by this one are not referencing the wrappers.
      Parameters:
      forceRelease -
    • reInitializeBaseService

      public void reInitializeBaseService()
      for internal use only used by CICS subsystem
    • reInitializeAllDAOs

      public void reInitializeAllDAOs(boolean resetDAOInitialValues)
      reinitializes CBLBeans to their default char-array representation, and AbstractCOntainer to their default values This allows system to reuse the Wrapper classes in other programs. This is only used in Cics applications . NOTES: A goBack() and end of the execution will clear all DAO's passed via AddCallParameters (Linkage-Section).
    • transfuse

      protected void transfuse(List<ISMDataType> in, List<ISMDataType> out, boolean back)
    • transfuseByReference

      protected final void transfuseByReference(ISMBean sourceObj, ISMBean targetObj)
      Transfuse source object into target object by reference. This method assumes the transfuse is done in the forward direction and so the targetObject is held by a Field variable of the receiver object. In this case we use introspection to locate the Field and we use that to set the value of the Field in receiver to the source object thus avoiding unnecessary copying of data from source to target object. To avoid doing this introspection work the next time around we cache the Field in an identity map keyed by source object (since that will be the new value of the field after this method is executed). This method collects various metrics to measure performance.
      Parameters:
      sourceObj - the source object
      targetObj - the target object
    • objectsAreOfTheSameClass

      protected final boolean objectsAreOfTheSameClass(Object anObject, Object anotherObject)
      Return true if both objects are of the same class.
      Parameters:
      anObject - the one object
      anotherObject - the other object
      Returns:
      whether objects are of the same class
    • getMethodNumber

      public static final int getMethodNumber(String methodName)
      method used by internal Softwaremining Framework libraries. for screen handling via Servlet engine
      Returns:
    • setHttpRequestParameterMap

      public final void setHttpRequestParameterMap(Map httpRequestParameterMap)
      method used by internal Softwaremining Framework libraries. for screen handling via Servlet engine The is called first time the system is called. It passes the startup parameters to the system. For example: http://www.abcd.com/XMLservlet?LAUNCH_CLASS=com.ttutc.utcid.UTCLauncher1invalid input: '&VARIABLE_1'=foo In this case, there are 2 parameters: LAUNCH_CLASS=com.ttutc.utcid.UTCLauncher1 invalid input: '&' VARIABLE_1=Patms001 The LAUNCH_CLASS is already used to construct/instantiate the target program. The System will attempt to locate VARIABLE_1 and assign the value to foo
      Specified by:
      setHttpRequestParameterMap in interface Service
    • getCallerProgram

      public final BaseService getCallerProgram()
      The program which called this one.
      Returns:
    • commitAndReleaseConnection

      public void commitAndReleaseConnection(boolean doCommit)
    • assignCallerProgram

      public final void assignCallerProgram(IBaseService theCallerProgram)
      tell the system who called it !
    • setExceptionalExitReturnCode

      protected final void setExceptionalExitReturnCode()
      when the system exits with fatal exceptions, then the return code will be set here.
    • startUp

      public void startUp()
      The first method called in the program to start the business logic processing. The Method to be over-ridden only by subclasses of BaseService which do not utilize reflection means of flow logic (by using _M10, _M20 appended to method names)
    • tearDown

      public void tearDown()
      Sometimes it may be desirable to perform some cleanup prior to closing of a program. The tearDown method is called on/after goBack()
    • retrieveLastKeyPressed

      public final int retrieveLastKeyPressed()
      Description copied from interface: IDisplayable
      Originally introduced for handling Tandem Screens. But has potential of usage in CICS screens
      Specified by:
      retrieveLastKeyPressed in interface IDisplayable
      Returns:
      KeyNumber
    • assignLastKeyPressed

      public final void assignLastKeyPressed(int lastKeyPressed)
      Description copied from interface: IDisplayable
      Originally introduced for handling Tandem Screens. But has potential of usage in CICS screens
      Specified by:
      assignLastKeyPressed in interface IDisplayable
      Parameters:
      lastKeyPressed -
    • isTargetXMLScreen

      public final boolean isTargetXMLScreen()
      Used internally by framework to support JSP type screens
      Specified by:
      isTargetXMLScreen in interface IDisplayable
    • assignTargetXMLScreen

      public final void assignTargetXMLScreen(boolean targetIsXML)
      Description copied from interface: IDisplayable
      Used internally by framework to support JSP type screens
      Specified by:
      assignTargetXMLScreen in interface IDisplayable
      Parameters:
      targetIsXML -
    • isGUIScreensEnabled

      public boolean isGUIScreensEnabled()
      Specified by:
      isGUIScreensEnabled in interface IDisplayable
    • disableGUIScreens

      public void disableGUIScreens()
      Specified by:
      disableGUIScreens in interface IDisplayable
    • assignInstanceNumber

      public final void assignInstanceNumber(int procNum)
      For internal use only To do with multi-processing/multi-threaded launch of application (launched from SMLauncher using -numInstances=n parameter)
      Parameters:
      procNum -
    • assignCyclicBarrier

      public final void assignCyclicBarrier(CyclicBarrier barrier)
      for internal use only
      Parameters:
      barrier -
    • retrieveCyclicBarrier

      public final CyclicBarrier retrieveCyclicBarrier()
      For use in batch programs lunched in several instances (multi-threaded) using SMLauncher using -numInstances=n parameter
      Enables multiple tasks to cooperatively work on an algorithm in parallel through multiple phases. To do with multi-processing/multi-threaded launch of application (launched from SMLauncher using -numInstances=n parameter)
    • awaitBarrier

      public final int awaitBarrier()
      Enables multiple tasks to cooperatively work on an algorithm in parallel through multiple phases. This is same as Java CyclicBarrier.await() method - but will only throw the ACMFatalException (a RuntimeException )
    • retrieveInstanceNumber

      public final int retrieveInstanceNumber()
      To do with multi-processing/multi-threaded launch of application by SMLauncher numIntances=n
      E.g. when 3 instances are launched, each one will have an instanceNumber of 1, 2, or 3.
      Returns:
    • isFirstInstance

      public final boolean isFirstInstance()
      To do with multi-processing/multi-threaded launch of application by SMLauncher numIntances=n
      E.g. when 3 instances are launched, this method will return true only for the first instance.
      Return true for applications launched with only 1 instance (default mode).
      Returns:
    • assignLaunchedInstances

      public final void assignLaunchedInstances(List<BaseService> launchedInstances)
      for internal use only
    • retrieveLaunchedInstances

      public final List<BaseService> retrieveLaunchedInstances()
      To do with multi-processing/multi-threaded launch of application by SMLauncher numIntances=n
      E.g. when 3 instances are launched, this method will return a list of all 3 instances.
      Returns:
    • retrieveTotalNumberOfInstancesLaunched

      public final int retrieveTotalNumberOfInstancesLaunched()
      To do with multi-processing/multi-threaded launch of application by SMLauncher numIntances=n
      E.g. when 3 instances are launched, this method will return 3
      Returns:
    • main

      public static void main(Class baseServiceClass, String[] args)
      Allows placing a Main method into each program
         public static void main(String[] args) { 
           main( Prog1.class , args); 
         }
         
      And then instead of using SMTextAppLauncher, we can launch the application by: java com.company.applcation.Prog1
      Parameters:
      baseServiceClass -
      args -
    • populateFromLastSQLMessage

      public void populateFromLastSQLMessage(ISMBean sqlca, ISMDataType messageArea, int length)
      EsqlProcessor and IBaseService needs this method to exist. But please do not use
      Specified by:
      populateFromLastSQLMessage in interface IBaseService
      Parameters:
      sqlca -
      messageArea -
      length -
    • populateFromLastSQLMessage

      public void populateFromLastSQLMessage(ISMDataType _dfheiblk, ISMDataType _dfhcommarea, ISMDataType sqlca, ISMDataType messageArea, long length)
      Specified by:
      populateFromLastSQLMessage in interface IBaseService