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

ECOBMC.m

Go to the documentation of this file.
  1. ECOBMC ;BP/CMF - Methods 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. ADD(RESULT,HANDLE,VALUE) ; add Method object to list
  1. N CREATE,CHILD,ITEM,X
  1. D METHOD(.CREATE,HANDLE_".Get_namespace")
  1. S CHILD=$$CREATE^ECOBM(CREATE)
  1. D COLLECT^ECOBL(.ITEM,HANDLE,CHILD)
  1. D METHOD^ECOBM(.RESULT,CHILD_".SetName."_VALUE)
  1. D METHOD(.X,HANDLE_".Criteria.Index."_ITEM)
  1. S RESULT=CHILD
  1. Q
  1. ;;
  1. INFO(RESULT,HANDLE,PARAMS) ; view method details
  1. N METHOD,JUSTIFY,OFFSET
  1. D PARSE("Offset",PARAMS)
  1. D METHOD(.METHOD,HANDLE_".First")
  1. F Q:METHOD="-1^End of list" D
  1. .D METHOD^ECOBM(.RESULT,METHOD_".ShowName."_JUSTIFY)
  1. .D METHOD^ECOBM(.RESULT,METHOD_".ShowDescription."_OFFSET)
  1. .D METHOD^ECOBM(.RESULT,METHOD_".ShowParams."_OFFSET)
  1. .D METHOD^ECOBM(.RESULT,METHOD_".ShowReturns."_OFFSET)
  1. .D METHOD(.METHOD,HANDLE_".Next")
  1. .Q
  1. Q
  1. OVERRIDE(RESULT,HANDLE,VALUE) ; override established method
  1. N LIST,CHILD
  1. S RESULT="-1^Method does not exist to override"
  1. D METHOD(.LIST,HANDLE_".Find."_VALUE)
  1. D METHOD(.CHILD,LIST_".First")
  1. I CHILD'="-1^End of list" S RESULT=CHILD
  1. D DESTROY^ECOBL(LIST)
  1. Q
  1. ;;
  1. PARSE(PARSE,VALUE) ;
  1. D PARSE^ECOBL(PARSE,VALUE) ; parent method
  1. Q
  1. ;;
  1. PROPERTY(HANDLE,SCOPE,PROPERTY,VALUE) ; parent method
  1. D PROPERTY^ECOBL(HANDLE,SCOPE,PROPERTY,VALUE)
  1. Q
  1. ;;
  1. ;; public methods
  1. CREATE(NAME) ;
  1. ; call parent first
  1. N HANDLE,X
  1. S HANDLE=$$CREATE^ECOBL(NAME)
  1. ;;
  1. D SELF^ECOB(.RESULT,HANDLE,"Methods","Methods","METHOD^ECOBMC(.RESULT,ARGUMENT)","ECOBL")
  1. ;;
  1. D METHOD(.X,HANDLE_".Criteria.SetArgument.GetName")
  1. D METHOD(.X,HANDLE_".Criteria.SetOnReturn.handle")
  1. Q HANDLE
  1. ;;
  1. DESTROY(HANDLE) ;
  1. ; call parent last
  1. N CHILD
  1. D METHOD(.CHILD,HANDLE_".First")
  1. F Q:+CHILD=-1 D
  1. .D DESTROY^ECOBM(CHILD)
  1. .D METHOD(.CHILD,HANDLE_".Next")
  1. .Q
  1. Q $$DESTROY^ECOBL(HANDLE)
  1. ;;
  1. METHOD(RESULT,ARGUMENT) ;
  1. ; argument=(name.count[handle]).method.(additional.params...)
  1. N HANDLE,METHOD,PARAMS
  1. D PARSE("Handle",ARGUMENT)
  1. D PARSE("Method",ARGUMENT)
  1. D PARSE("Params",ARGUMENT)
  1. I METHOD="Add" D ADD(.RESULT,HANDLE,PARAMS) Q
  1. I METHOD="Override" D OVERRIDE(.RESULT,HANDLE,PARAMS) Q
  1. I METHOD="Info" D INFO(.RESULT,HANDLE,PARAMS) Q
  1. D METHOD^ECOBL(.RESULT,ARGUMENT)
  1. Q
  1. ;;