docs: public <T extends IBase> List<T> getAllPopulatedChildElementsOfType(IBaseResource theResource, final Class<T> theType) {
  		final ArrayList<T> retVal = new ArrayList<T>();
  		BaseRuntimeElementCompositeDefinition<?> def = myContext.getResourceDefinition(theResource);
  		visit(new IdentityHashMap<Object, Object>(), theResource, theResource, null, null, def, new IModelVisitor() {
  			@SuppressWarnings("unchecked")
  			@Override
  			public void acceptElement(IBaseResource theOuterResource, IBase theElement, List<String> thePathToElement, BaseRuntimeChildDefinition theChildDefinition, BaseRuntimeElementDefinition<?> theDefinition) {
  				if (theElement == null || theElement.isEmpty()) {
  					return;
  				}
  
  				if (theType.isAssignableFrom(theElement.getClass())) {
  					retVal.add((T) theElement);
  				}
  			}
  		});
  		return retVal;
  	}