code: private Map<String, Object> createObjectPropertyValues(Map<String, Object> defaultPropertyValues, List<Object> attributes) {
          Map<String, Object> propertyValues = new HashMap<String, Object>(defaultPropertyValues);
  
          if(attributes != null) {
              Iterator<Object> iterator = attributes.iterator();
              Map<String, Object> propertyOverrideMap = new HashMap<String, Object>();
  
              while(iterator.hasNext()) {
                  String name = (String)iterator.next();
  
                  // we can only create a map entry if we have both a key and value, so make sure there's a value left
                  if(iterator.hasNext()) {
                      Object object = iterator.next();
                      propertyOverrideMap.put(name, object);
                  }
              }
  
              propertyValues.putAll(propertyOverrideMap);
          }
  
          return propertyValues;
      }
docs: Merge passed attributes with the supplied property values.
  @param defaultPropertyValues
  @param attributes
  @return