code: @Override
  	public int compareTo(final DomainSpecificValue other) {
  		int order = other.ordering - this.ordering;
  		if (order == 0) {
  			if (changeSet != null && other.changeSet != null) {
  				int changeSetCompare = other.changeSet.compareTo(changeSet);
  				if (changeSetCompare != 0)
  					return changeSetCompare;
  				else
  					return patternStr.compareTo(other.patternStr);
  			}
  			if (changeSet != null) { // other.changeSet is null here
  				return -1;
  			}
  			if (other.changeSet != null) { // changeSet is null here
  				return 1;
  			}
  			return patternStr.compareTo(other.patternStr);
  		}
  		return order;
  	}
docs: Sort DomainSpecificValue in reverse order as specified by ordering, changeSet and patternStr.
  This ordering defines the order of resolution that Roperty uses when a key is accessed.
  Values with a changeSet are ordered before values without a changeSet.
  Values with a changeSet are ordered alphabetically with other changeSets.
  Values with the same ordering (and changeSet) are ordered by patternStr, just to define a consistent ordering.