code: public static <T extends CObject> T get(Object obj, String path) {
          T result = find(obj, RmPath.valueOf(path).segments());
          if (result == null) {
              throw new AmObjectNotFoundException("Object " + obj + " has no child on path " + path);
          }
          return result;
      }
docs: Gets the object on a path {@code path} relative to {@code obj}
  If not found throws {@link IllegalStateException}.
  The method returns first object found, and does not check if there are more than one matches.
  
  @param obj  Root object from which to search, Must be either an Archetype or CComplexObject
  @param path path identifying the object to return.
  @param <T>  type to remove required casting
  @return The object matching the path relative to obj
  @throws IllegalStateException if no object is found