package gueei.binding; import android.content.Context; public interface ISyntaxResolver { public IObservable<?> constructObservableFromStatement( final Context context, final String bindingStatement, final Object model, final IReferenceObservableProvider refProvider) throws SyntaxResolveException; public IObservable<?> constructObservableFromStatement( final Context context, final String bindingStatement, final Object model) throws SyntaxResolveException; public abstract Object getFieldForModel(String fieldName, Object model) throws SyntaxResolveException; public static class SyntaxResolveException extends Exception{ private static final long serialVersionUID = -5339580312141946507L; public SyntaxResolveException() { super(); } public SyntaxResolveException(String detailMessage, Throwable throwable) { super(detailMessage, throwable); } public SyntaxResolveException(String detailMessage) { super(detailMessage); } public SyntaxResolveException(Throwable throwable) { super(throwable); } } public <T> T tryEvaluateValue(Context context, String statement, Object model, T defaultValue); }