code: public Map<Object, Object> getDefaultProperties(ResolverWrapper resolver) {
  		// if no resolver is given or the list of default properties is empty then 
  		// return an empty map
  		if(resolver == null || resolver.properties() == null || resolver.properties().length == 0) {
  			return Collections.emptyMap();
  		}
  		
  		// get properties from the resolver annotation
  		DefaultProperty[] properties = resolver.properties();
  		
  		// copy each property annotation into the map for later use
  		Map<Object, Object> propertyMap = new HashMap<>(properties.length);
  		for(DefaultProperty property : properties) {
  			// nulls and empty keys are bad
  			if(property.key() == null || property.key().isEmpty() || property.value() == null) {
  				continue;
  			}
  			// no dupes
  			if(propertyMap.containsKey(property.key())) {
  				continue;
  			}
  			// put in map
  			propertyMap.put(property.key(), property.value());
  		}		
  		return propertyMap;
  	}
docs: Get the properties that should be used as defaults when no other
  properties are found for that value
  
  @param resolver
  @return