parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Написал тестовый пример для переменных private

virusav 04.03 22:08

test.p:
@CLASS
test

@OPTIONS
locals

@create[]

@getPrivate[]
	$result[$self.vars.private]

@GET_DEFAULT[sFieldName]
	^if(^self.privateVarNames.contains[$sFieldName]){
		^return[PRIVATE]
	}
	$result[$self.vars.[$sFieldName]]

@GET_vars[]
	^if(^reflection:uid[$self] ne ^reflection:uid[$caller.self]){
		^return[PRIVATE]
	}
	$result[
		$.public[777]
		$.private[666]
	]

@GET_privateVarNames[]
	^if(^reflection:uid[$self] ne ^reflection:uid[$caller.self]){
		^return[PRIVATE]
	}
	$result[
		$.private[]
	]
index.html:
	^use[test.p]
	$oTest[^test::create[]]
	public=$oTest.public<br />
	private=$oTest.private<br />
	private_by_method=^oTest.getPrivate[]<br />
	vars=^json:string[$oTest.vars]<br />
	privateVarNames=^json:string[$oTest.privateVarNames]
На выходе получаем:
public=777
private=PRIVATE
private_by_method=666
vars="PRIVATE"
privateVarNames="PRIVATE"
Наверняка что-то не учел.)
Есть ли смысл копать в этом же направлении?