code: public ValueList getValues(PExp exp, ObjectContext ctxt)
  	{
  		try
  		{
  			return exp.apply(af.getExpressionValueCollector(), ctxt);// FIXME: should we handle exceptions like this
  		} catch (AnalysisException e)
  		{
  			return null; // Most have none
  		}
  	}
docs: Return a list of all the updatable values read by the expression. This is used to add listeners to values that
  affect permission guards, so that the guard may be efficiently re-evaluated when the values change.
  
  @param exp
  @param ctxt
  The context in which to search for values.
  @return A list of values read by the expression.