docs: public static <T extends IElement> List<T> allPopulatedChildElements(Class<T> theType, Object... theElements) {
  		ArrayList<T> retVal = new ArrayList<T>();
  		for (Object next : theElements) {
  			if (next == null) {
  				continue;
  			}else if (next instanceof IElement) {
  				addElement(retVal, (IElement) next, theType);
  			} else if (next instanceof List) {
  				for (Object nextElement : ((List<?>)next)) {
  					if (!(nextElement instanceof IBase)) {
  						throw new IllegalArgumentException("Found element of "+nextElement.getClass());
  					}
  					addElement(retVal, (IElement) nextElement, theType);
  				}
  			} else {
  				throw new IllegalArgumentException("Found element of "+next.getClass());
  			}
  			
  		}
  		return retVal;
  	}