public static Object narrow(Object narrowFrom, Class narrowTo)
public static Object narrow(Object object, Class narrowToInstaceOf)
  public static Object narrow(Object narrowFrom, Class narrowTo)    throws ClassCastException  {    if(delegate != null)      return delegate.narrow(narrowFrom, narrowTo);    else      return null;  }