private ValueSet doExpand(ValueSet theSource) {

    validateIncludes("include", theSource.getCompose().getInclude());
    validateIncludes("exclude", theSource.getCompose().getExclude());

    HapiWorkerContext workerContext = new HapiWorkerContext(getContext(), myValidationSupport);

    ValueSetExpansionOutcome outcome = workerContext.expand(theSource);
    ValueSetExpansionComponent expansion = outcome.getValueset().getExpansion();

    ValueSet retVal = new ValueSet();
    retVal.getMeta().setLastUpdated(new Date());
    retVal.setExpansion(expansion);
    return retVal;
  }
 private ValueSetExpansionOutcome loadFromCache(ValueSet vs, String cacheFn)
     throws FileNotFoundException, Exception {
   JsonParser parser = new JsonParser();
   Resource r = parser.parse(new FileInputStream(cacheFn));
   if (r instanceof OperationOutcome)
     return new ValueSetExpansionOutcome(
         ((OperationOutcome) r).getIssue().get(0).getDetails().getText(),
         TerminologyServiceErrorClass.UNKNOWN);
   else {
     vs.setExpansion(
         ((ValueSet) r)
             .getExpansion()); // because what is cached might be from a different value set
     return new ValueSetExpansionOutcome(vs);
   }
 }