question: public Object X ( ExpressionObject < ? > object ) throws ScopeException { if ( object instanceof Dimension ) { return A ( ( Dimension ) object ) ; } else if ( object instanceof Metric ) { return M ( ( Metric ) object ) ; } else { throw new ScopeException ( "invalid object" ) ; } }
target:  generic method that can create both axis or measure depending on the argument type (dimension or metric)