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

ECOB2.m

Go to the documentation of this file.
  1. ECOB2 ;BP/CMF - Utility 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. CLASS(RESULT,HANDLE,PARAMS) ;
  1. N JUSTIFY,OFFSET,PROPERTY,NAME,COUNT,CHILD,SCOPE
  1. D PARSE("Handle",HANDLE)
  1. D PARSE("Offset",PARAMS)
  1. D SHOW^ECOB(.X,HANDLE,"Pu","_class",JUSTIFY)
  1. D SHOW^ECOB(.X,HANDLE,"Pu","_routine",JUSTIFY)
  1. D SHOW^ECOB(.X,HANDLE,"Pr","_parent",JUSTIFY)
  1. ; show properties only
  1. F SCOPE="Pr","Pu" D
  1. .S PROPERTY=""
  1. .F S PROPERTY=$O(@HANDLE@(SCOPE,PROPERTY)) Q:PROPERTY="" D
  1. ..D SHOW^ECOB(.CHILD,HANDLE,SCOPE,PROPERTY,JUSTIFY)
  1. ..I $$ISHANDLE^ECOB(HANDLE,CHILD) D
  1. ...W !,$J(">>>----->",JUSTIFY)
  1. ...D METHOD^ECOB(.RESULT,CHILD_".Class."_OFFSET)
  1. ...W !,$J("<----<<<",JUSTIFY)
  1. ...Q
  1. ..Q
  1. .Q
  1. ; tree out methods
  1. S RESULT=1
  1. Q
  1. ;;
  1. GET(RESULT,HANDLE,METHOD,PARAMS) ;
  1. N PROPERTY
  1. D PARSE("Get",METHOD)
  1. D GET^ECOB(.RESULT,HANDLE,"Pu",PROPERTY)
  1. Q
  1. ;;
  1. INFO(RESULT,HANDLE,PARAMS) ;
  1. N JUSTIFY,OFFSET,PROPERTY,NAME,COUNT,CHILD
  1. D PARSE("Handle",HANDLE)
  1. D PARSE("Offset",PARAMS)
  1. S PROPERTY=""
  1. F S PROPERTY=$O(@HANDLE@("Pu",PROPERTY)) Q:PROPERTY="" D
  1. .D SHOW(.CHILD,HANDLE,"Show"_PROPERTY,JUSTIFY)
  1. .I $$ISHANDLE^ECOB(HANDLE,CHILD) D METHOD^ECOB(.RESULT,CHILD_".Info."_OFFSET)
  1. .Q
  1. S RESULT=1
  1. Q
  1. ;;
  1. PARSE(PARSE,VALUE) ;
  1. I PARSE="Get" D Q
  1. .S PROPERTY=$P(VALUE,".",1)
  1. .S PROPERTY=$P(PROPERTY,"Get",2)
  1. .Q
  1. I PARSE="Handle" D Q
  1. .S HANDLE=$P(VALUE,".")
  1. .Q
  1. I PARSE="Handle1" D Q
  1. .S NAME=$P(VALUE,".",1)
  1. .S COUNT=$P(VALUE,".",2)
  1. .Q
  1. I PARSE="Justify" D Q
  1. .S JUSTIFY=$S(+VALUE:+VALUE,1:0)
  1. .Q
  1. I PARSE="Method" D Q
  1. .S METHOD=$P(VALUE,".",2)
  1. .Q
  1. I PARSE="Offset" D Q
  1. .S JUSTIFY=$S(+VALUE:+VALUE,1:0)
  1. .S OFFSET=JUSTIFY+5
  1. .Q
  1. I PARSE="Params" D Q
  1. .S PARAMS=$P(VALUE,".",3,99)
  1. .Q
  1. I PARSE="Set" D Q
  1. .S PROPERTY=$P(VALUE,".",1)
  1. .S PROPERTY=$P(PROPERTY,"Set",2)
  1. .S VALUE=$P(VALUE,".",2)
  1. .Q
  1. I PARSE="Show" D Q
  1. .S PROPERTY=$P(VALUE,".",1)
  1. .S PROPERTY=$P(PROPERTY,"Show",2)
  1. .Q
  1. Q
  1. ;
  1. SET(RESULT,HANDLE,METHOD,PARAMS) ;
  1. N PROPERTY
  1. D PARSE("Set",METHOD)
  1. D SET^ECOB(.RESULT,HANDLE,"Pu",PROPERTY,PARAMS)
  1. Q
  1. ;;
  1. SHOW(RESULT,HANDLE,METHOD,PARAMS) ;
  1. N PROPERTY
  1. D PARSE("Show",METHOD)
  1. D SHOW^ECOB(.RESULT,HANDLE,"Pu",PROPERTY,+PARAMS)
  1. Q
  1. ;;
  1. TREE(RESULT,HANDLE,PARAMS) ;
  1. N JUSTIFY,OFFSET,PROPERTY,NAME,COUNT,CHILD,SCOPE
  1. D PARSE("Handle1",HANDLE)
  1. D PARSE("Offset",PARAMS)
  1. ; tree out properties
  1. F SCOPE="Pr","Pu" D
  1. .S PROPERTY=""
  1. .F S PROPERTY=$O(^TMP($J,"ECHRO",NAME,COUNT,SCOPE,PROPERTY)) Q:PROPERTY="" D
  1. ..D TREE^ECOB(.CHILD,HANDLE,SCOPE,PROPERTY,JUSTIFY)
  1. ..I $$ISHANDLE^ECOB(HANDLE,CHILD) D METHOD^ECOB(.RESULT,CHILD_".Tree."_OFFSET)
  1. ..Q
  1. .Q
  1. ; tree out methods
  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^ECOB(NAME)
  1. D SELF^ECOB(.RESULT,HANDLE,"EC UTILITY","Utility","METHOD^ECOB2(.RESULT,ARGUMENT)","EC BASE")
  1. ;;
  1. ; complex properties last
  1. Q HANDLE
  1. ;;
  1. DESTROY(HANDLE) ;
  1. ; call parent last
  1. Q $$DESTROY^ECOB(HANDLE)
  1. ;;
  1. METHOD(RESULT,ARGUMENT) ;
  1. ; argument=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="Class" D CLASS(.RESULT,HANDLE,PARAMS) Q ;;.Class.[offset] - show class info only
  1. I $E(METHOD,1,3)="Get" D GET(.RESULT,HANDLE,METHOD,PARAMS) Q ;;.Get[aPropertyName] - returns property value
  1. I $E(METHOD,1,3)="Set" D SET(.RESULT,HANDLE,METHOD,PARAMS) Q ;;.Set[aPropertyName].[value] - edits property value
  1. I $E(METHOD,1,4)="Show" D SHOW(.RESULT,HANDLE,METHOD,PARAMS) Q ;;.Show[aPropertyName].[offset] - shows property value justified by offset
  1. I METHOD="Info" D INFO(.RESULT,HANDLE,PARAMS) Q ;;.Info.[offset] - shows public properties with values justified by offset
  1. I METHOD="Tree" D TREE(.RESULT,HANDLE,PARAMS) Q ;;.Tree.[offset] - shows all properties default values and methods justified by offset
  1. S RESULT="0^Invalid argument"
  1. Q
  1. ;;