@Override
  public ValueSetDefinitionDirectoryEntry transformSummaryDescription(
      org.LexGrid.valueSets.ValueSetDefinition lexEvsVSD) {
    if (lexEvsVSD == null) {
      return null;
    }

    ValueSetDefinitionDirectoryEntry vsdDirEntry = new ValueSetDefinitionDirectoryEntry();

    vsdDirEntry.setAbout(lexEvsVSD.getValueSetDefinitionURI());
    vsdDirEntry.setDocumentURI(lexEvsVSD.getValueSetDefinitionURI());
    vsdDirEntry.setFormalName(lexEvsVSD.getValueSetDefinitionName());

    if (lexEvsVSD.getEntityDescription() != null) {
      String content = lexEvsVSD.getEntityDescription().getContent();
      EntryDescription description = new EntryDescription();
      description.setValue(ModelUtils.toTsAnyType(content));

      vsdDirEntry.setResourceSynopsis(description);
    }

    ValueSetNamePair pair =
        this.valueSetNameTranslator.getDefinitionNameAndVersion(
            lexEvsVSD.getValueSetDefinitionURI());

    vsdDirEntry.setHref(
        this.getUrlConstructor()
            .createValueSetDefinitionUrl(pair.getValueSetName(), pair.getDefinitionLocalId()));

    ValueSetReference vsReference =
        this.getTransformUtils().toValueSetReference(lexEvsVSD.getValueSetDefinitionName());
    vsdDirEntry.setDefinedValueSet(vsReference);

    return vsdDirEntry;
  }
  public ValueSetDefinitionListEntry transformFullDescription(
      org.LexGrid.valueSets.ValueSetDefinition lexEvsVSD) {
    if (lexEvsVSD == null) {
      return null;
    }

    ValueSetDefinition cts2VSD = new ValueSetDefinition();

    cts2VSD.setAbout(lexEvsVSD.getValueSetDefinitionURI());
    cts2VSD.setDocumentURI(lexEvsVSD.getValueSetDefinitionURI());

    cts2VSD.setFormalName(lexEvsVSD.getValueSetDefinitionURI());

    SourceAndNotation sourceAndNotation = new SourceAndNotation();
    sourceAndNotation.setSourceAndNotationDescription("LexEVS");
    cts2VSD.setSourceAndNotation(sourceAndNotation);

    if (lexEvsVSD.getEntityDescription() != null) {
      String content = lexEvsVSD.getEntityDescription().getContent();
      EntryDescription description = new EntryDescription();
      description.setValue(ModelUtils.toTsAnyType(content));

      cts2VSD.setResourceSynopsis(description);
    }

    cts2VSD.setDefinedValueSet(
        this.getTransformUtils().toValueSetReference(lexEvsVSD.getValueSetDefinitionName()));

    for (DefinitionEntry entry : lexEvsVSD.getDefinitionEntry()) {
      ValueSetDefinitionEntry cts2Entry = new ValueSetDefinitionEntry();

      if (entry.getCodingSchemeReference() != null) {
        this.add(entry.getCodingSchemeReference(), cts2Entry, lexEvsVSD);
      }
      if (entry.getEntityReference() != null) {
        this.add(entry.getEntityReference(), cts2Entry, lexEvsVSD);
      }
      if (entry.getPropertyReference() != null) {
        this.add(entry.getPropertyReference(), cts2Entry, lexEvsVSD);
      }
      if (entry.getValueSetDefinitionReference() != null) {
        this.add(entry.getValueSetDefinitionReference(), cts2Entry);
      }

      Long order = entry.getRuleOrder();
      if (order == null || order == 0) {
        order = 1l;
      }
      cts2Entry.setEntryOrder(order);
      cts2Entry.setOperator(this.toSetOperator(entry.getOperator()));

      cts2VSD.addEntry(cts2Entry);
    }

    ValueSetDefinitionListEntry listEntry = new ValueSetDefinitionListEntry();
    listEntry.addEntry(cts2VSD);

    ValueSetNamePair pair =
        this.valueSetNameTranslator.getDefinitionNameAndVersion(
            lexEvsVSD.getValueSetDefinitionURI());

    listEntry.setResourceName(pair.getDefinitionLocalId());

    listEntry.setHref(
        this.getUrlConstructor()
            .createValueSetDefinitionUrl(pair.getValueSetName(), pair.getDefinitionLocalId()));

    return listEntry;
  }