docs: public static List<String> getPropertyNames(Object obj) {
  		List<String> propertyNames = new ArrayList<String>();
  
  		if (obj == null) {
  			return propertyNames;
  		} else {
  			List<Object> cycleDetect = new ArrayList<Object>();
  			performGetPropertyNames(obj, null, propertyNames, cycleDetect);
  			return propertyNames;
  		}
  	}