public String toLongString() {
    StringBuilder builder = new StringBuilder();
    builder.append("CompositeSearchResult [containingConcept=");
    builder.append(containingConcept);
    builder.append(", matchingComponentNid_=");
    builder.append(matchingComponentNid_);
    builder.append(", bestScore=");
    builder.append(bestScore);
    builder.append(", getMatchingComponents()=");
    List<String> matchingComponentDescs = new ArrayList<>();
    for (ComponentVersionBI matchingComponent : getMatchingComponents()) {
      matchingComponentDescs.add(
          matchingComponent != null ? matchingComponent.toUserString() : null);
    }
    builder.append(matchingComponentDescs);

    builder.append("]");
    return builder.toString();
  }
  public void setComponent(ComponentVersionBI passedComponentOrConcept) {
    if (componentOrConcept != null) {
      String msg =
          "Cannot reset componentOrConcept from "
              + componentOrConcept.getNid()
              + " to "
              + passedComponentOrConcept.getNid();
      LOG.error(msg);
      throw new RuntimeException(msg);
    }

    componentOrConcept = passedComponentOrConcept;
    if (componentOrConcept instanceof ConceptVersionBI) {
      LOG.debug(
          "Set concept nid="
              + passedComponentOrConcept.getNid()
              + ", uuid="
              + passedComponentOrConcept.getPrimordialUuid()
              + ", desc="
              + passedComponentOrConcept.toUserString());
    } else {
      LOG.debug(
          "Set componentOrConcept nid="
              + passedComponentOrConcept.getNid()
              + ", uuid="
              + passedComponentOrConcept.getPrimordialUuid()
              + ", desc="
              + OTFUtility.getDescription(passedComponentOrConcept.getNid()));
    }

    try {
      loadContents();
    } catch (IOException e) {
      LOG.error("Unexpected", e);
      throw new RuntimeException(e);
    }
  }