Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ECOB30

ECOB30.m

Go to the documentation of this file.
  1. ECOB30 ;BP/CMF - Collect Object
  1. ;;2.0;EVENT CAPTURE;**100**;8 May 96;Build 21
  1. ;@author - Chris Flegel
  1. ;@date - 17 May 2009
  1. ;@version - 1.0
  1. ;;
  1. Q
  1. ;; private methods
  1. EXECUTE(RESULT,HANDLE,PARAMS) ;
  1. N ASLIST,CHILD,CLASS,COLLECT,FOUND,HANDLER,NAME,METH,PROP,SCOPE,X
  1. ;;
  1. CK D METHOD(.CHILD,HANDLE_".GetChild")
  1. I CHILD="" S RESULT="-1^Invalid child" Q
  1. D METHOD(.COLLECT,HANDLE_".GetCollector")
  1. I COLLECT="" S RESULT="-1^Invalid collector" Q
  1. D METHOD(.ASLIST,HANDLE_".GetAsList")
  1. I ASLIST="true" D COLLECT^ECOBUL(.RESULT,COLLECT,CHILD) Q
  1. ;;
  1. D METHOD(.HANDLER,HANDLE_".GetHandler")
  1. I HANDLER="" S RESULT="-1^Invalid handler" Q
  1. D METHOD(.NAME,HANDLE_".GetName")
  1. I NAME="" S RESULT="-1^Invalid name." Q
  1. ;;
  1. PF D METHOD^ECOBU(.FOUND,COLLECT_".Properties.Find."_NAME)
  1. D METHOD^ECOBL(.RESULT,FOUND_".GetCount")
  1. D DESTROY^ECOBL(FOUND)
  1. I +RESULT S RESULT="-1^Property "_NAME_" already exists." Q
  1. ;;
  1. MF D METHOD^ECOBU(.FOUND,COLLECT_".Methods.Find."_NAME)
  1. D METHOD^ECOBL(.RESULT,FOUND_".GetCount")
  1. D DESTROY^ECOBL(FOUND)
  1. I +RESULT S RESULT="-1^Method "_NAME_" already exists." Q
  1. ;;
  1. D METHOD(.SCOPE,HANDLE_".GetScope")
  1. I SCOPE="" S SCOPE="Pu"
  1. D COLLECT^ECOB(COLLECT,CHILD,SCOPE,NAME)
  1. D METHOD^ECOB2(.CLASS,COLLECT_".Get_class")
  1. ;;
  1. MA D METHOD^ECOBU(.METH,COLLECT_".Methods.Add."_NAME)
  1. D METHOD^ECOBM(.X,METH_".SetAddedByClass."_CLASS)
  1. D METHOD^ECOBM(.X,METH_".SetDescription.Handler for object property.")
  1. D METHOD^ECOBM(.X,METH_".SetHandler."_HANDLER)
  1. D METHOD^ECOBM(.X,METH_".SetParams.[method.params]")
  1. D METHOD^ECOBM(.X,METH_".SetReturns.access to object")
  1. ;;
  1. PA D METHOD^ECOBU(.PROP,COLLECT_".Properties.Add."_NAME)
  1. D METHOD^ECOBP(.X,PROP_".SetAddedByClass."_CLASS)
  1. D METHOD^ECOBP(.X,PROP_".SetValue."_CHILD)
  1. D METHOD^ECOBP(.X,PROP_".SetDefaultValue."_CHILD)
  1. ;;
  1. S RESULT=1
  1. Q
  1. ;;
  1. ;; public methods
  1. CREATE(NAME) ;
  1. ; call parent first
  1. N HANDLE,CHILD
  1. S HANDLE=$$CREATE^ECOB2(NAME)
  1. ;;
  1. D SELF^ECOB(.RESULT,HANDLE,"Collect","Collect","METHOD^ECOB30(.RESULT,ARGUMENT)","ECOB2")
  1. ;;
  1. D PROPERTY^ECOB(HANDLE,"Pu","AsList","false")
  1. D PROPERTY^ECOB(HANDLE,"Pu","Child","")
  1. D PROPERTY^ECOB(HANDLE,"Pu","Collector","")
  1. D PROPERTY^ECOB(HANDLE,"Pu","Handler","")
  1. D PROPERTY^ECOB(HANDLE,"Pu","Name","")
  1. D PROPERTY^ECOB(HANDLE,"Pu","Scope","Pu")
  1. ; complex properties last
  1. Q HANDLE
  1. ;;
  1. DESTROY(HANDLE) ;
  1. ; call parent last
  1. Q $$DESTROY^ECOB2(HANDLE)
  1. ;;
  1. METHOD(RESULT,ARGUMENT) ;
  1. ; argument=[handle].[method].[additional.params...]
  1. N HANDLE,METHOD,PARAMS
  1. D PARSE^ECOB2("Handle",ARGUMENT)
  1. D PARSE^ECOB2("Method",ARGUMENT)
  1. D PARSE^ECOB2("Params",ARGUMENT)
  1. I METHOD="Execute" D EXECUTE(.RESULT,HANDLE,PARAMS) Q
  1. D METHOD^ECOB2(.RESULT,ARGUMENT)
  1. Q
  1. ;;