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

ECOBPC.m

Go to the documentation of this file.
  1. ECOBPC ;BP/CMF - Properties 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 Property object to list
  1. N NAME,CHILD,ITEM,PROP
  1. D METHOD(.NAME,HANDLE_".Get_namespace")
  1. S CHILD=$$CREATE^ECOBP(NAME)
  1. D COLLECT^ECOBL(.ITEM,HANDLE,CHILD)
  1. S PROP("Name")=$P(VALUE,".")
  1. D METHOD^ECOBP(.RESULT,CHILD_".SetName."_PROP("Name"))
  1. ;D METHOD^ECOBP(.RESULT,CHILD_".SetName."_VALUE)
  1. D METHOD(.X,HANDLE_".Criteria.Index."_ITEM)
  1. ;support for property types
  1. S PROP("Type")=$P(VALUE,".",2)
  1. D:PROP("Type")'=""
  1. .S PROP("Build")=$$GET^XPAR("PKG","ECOB PROPERTY TYPE",PROP("Type"),"E")
  1. .Q:PROP("Build")=""
  1. .S PROP("Tag")=$P(PROP("Build"),".")
  1. .S PROP("Routine")=$P(PROP("Build"),".",2)
  1. .S PROP("Execute")=PROP("Tag")_U_PROP("Routine")
  1. .Q:$T(@$P(PROP("Execute"),"("))=""
  1. .Q:$P(PROP("Execute"),"(",2)'="HANDLE,CHILD)"
  1. .D @PROP("Execute")
  1. .Q
  1. S RESULT=CHILD
  1. Q
  1. ;;
  1. INFO(RESULT,HANDLE,PARAMS) ; view property details
  1. N PROPERTY,JUSTIFY,OFFSET
  1. D PARSE("Offset",PARAMS)
  1. D METHOD(.PROPERTY,HANDLE_".First")
  1. F Q:PROPERTY="-1^End of list" D
  1. .D METHOD^ECOBP(.RESULT,PROPERTY_".ShowName."_JUSTIFY)
  1. .D METHOD^ECOBP(.RESULT,PROPERTY_".ShowValue."_OFFSET)
  1. .D METHOD^ECOBP(.RESULT,PROPERTY_".ShowDefaultValue."_OFFSET)
  1. .D METHOD(.PROPERTY,HANDLE_".Next")
  1. .Q
  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(.X,HANDLE,"Properties","Properties","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^ECOBP(CHILD)
  1. .D METHOD(.CHILD,HANDLE_".Next")
  1. .Q
  1. Q $$DESTROY^ECOBL(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="Add" D ADD(.RESULT,HANDLE,PARAMS) Q
  1. I METHOD="Info" D INFO(.RESULT,HANDLE,PARAMS) Q
  1. D METHOD^ECOBL(.RESULT,ARGUMENT)
  1. Q
  1. ;;