package gueei.binding.converters; import gueei.binding.Binder; import gueei.binding.Converter; import gueei.binding.IObservable; import gueei.binding.Undetermined; /** * Dynamically evaluate the statement for the with the view_model as Object Context * * @usage view_model statement * * @arg view_model Object the Context to evaluate the statement * @arg statement String * * @return Object evaluated result of the statement */ public class PROP extends Converter<Object> implements Undetermined { public PROP(IObservable<?>[] dependents) { super(Object.class, dependents); } @Override public Object calculateValue(Object... args) throws Exception { if (args.length<2) return null; if (args[0] == null) return null; IObservable<?> childObs = Binder.getSyntaxResolver() .constructObservableFromStatement(this.getContext(), args[1].toString(), args[0]); if (childObs!=null) return childObs.get(); return null; } }