private void add(
      PropertyReference propertyReference,
      ValueSetDefinitionEntry cts2Entry,
      org.LexGrid.valueSets.ValueSetDefinition definition) {
    PropertyQueryReference pqr = new PropertyQueryReference();

    String codingScheme = propertyReference.getCodingScheme();
    SupportedCodingScheme supportedCodingScheme = this.findCodingScheme(definition, codingScheme);
    pqr.setCodeSystem(
        this.getTransformUtils()
            .toCodeSystemReference(
                supportedCodingScheme.getLocalId(), supportedCodingScheme.getUri()));

    String propertyName = propertyReference.getPropertyName();
    String matchAlgorithm = propertyReference.getPropertyMatchValue().getMatchAlgorithm();
    String matchValue = propertyReference.getPropertyMatchValue().getContent();

    SupportedProperty supportedProperty = this.findProperty(definition.getMappings(), propertyName);

    String propName;
    String propUri;
    if (StringUtils.isBlank(propertyName)) {
      // TODO: What is the correct behavior here?
      propName = "UNSPECIFIED";
      propUri = "UNSPECIFIED";
    } else {
      propName = supportedProperty.getLocalId();
      propUri = supportedProperty.getUri();
    }

    FilterComponent filter = new FilterComponent();
    filter.setMatchAlgorithm(new MatchAlgorithmReference());
    filter.getMatchAlgorithm().setContent(matchAlgorithm);
    filter.setPropertyReference(new URIAndEntityName());
    filter.getPropertyReference().setName(propName);
    filter.getPropertyReference().setUri(propUri);

    filter.setMatchValue(matchValue);

    pqr.setFilter(filter);
    cts2Entry.setPropertyQuery(pqr);
  }