code: private boolean observeJavaObject(Object object) {
      // Ignore pure JS objects, this is to avoid impacting pure Vue.js components
      if (object.getClass() == JsObject.class) {
        return false;
      }
  
      // Don't observe Java classes
      if (object instanceof Class) {
        return true;
      }
  
      // Check if we have a custom Java observer
      for (VueGWTObserver observer : observers) {
        if (observer.observe(object)) {
          return true;
        }
      }
  
      makeStaticallyInitializedPropertiesReactive((JsObject) object,
          object.getClass().getCanonicalName());
      return false;
    }
docs: Will be called from JS by the Vue observer. This is called before Vue "walk" the properties of
  the Object to make them reactive. If your object has it's own observation mechanism, or you
  don't want Vue to make your properties reactive (for some reason), you should return true in
  your {@link VueGWTObserver}. You are then responsible to call notifyDep on your object
  {@link VueObserver} and propagate observation to the object property values.
  
  @param object The object to potentially observe
  @return true if we are observing and Vue shouldn't observe, false otherwise