/**
   * Method which writes the cancer study metadata file.
   *
   * @param portalMetadata PortalMetadata
   * @param cancerStudyMetadata CancerStudyMetadata
   * @param numCases int
   * @throws Exception
   */
  @Override
  public void writeCancerStudyMetadataFile(
      PortalMetadata portalMetadata, CancerStudyMetadata cancerStudyMetadata, int numCases)
      throws Exception {

    File metaFile =
        org.apache.commons.io.FileUtils.getFile(
            portalMetadata.getStagingDirectory(),
            cancerStudyMetadata.getStudyPath(),
            cancerStudyMetadata.getCancerStudyMetadataFilename());
    if (LOG.isInfoEnabled()) {
      LOG.info("writeMetadataFile(), meta file: " + metaFile);
    }
    PrintWriter writer =
        new PrintWriter(org.apache.commons.io.FileUtils.openOutputStream(metaFile, false));
    writer.print("type_of_cancer: " + cancerStudyMetadata.getTumorType() + "\n");
    writer.print("cancer_study_identifier: " + cancerStudyMetadata + "\n");
    String name =
        (cancerStudyMetadata.getName().length() > 0)
            ? cancerStudyMetadata.getName()
            : cancerStudyMetadata.getTumorTypeMetadata().getName();
    name =
        name.replaceAll(
            CancerStudyMetadata.TUMOR_TYPE_NAME_TAG,
            cancerStudyMetadata.getTumorTypeMetadata().getName());
    writer.print("name: " + name + "\n");
    String description = cancerStudyMetadata.getDescription();
    description =
        description.replaceAll(CancerStudyMetadata.NUM_CASES_TAG, Integer.toString(numCases));
    description =
        description.replaceAll(
            CancerStudyMetadata.TUMOR_TYPE_TAG,
            cancerStudyMetadata.getTumorTypeMetadata().getType());
    description =
        description.replaceAll(
            CancerStudyMetadata.TUMOR_TYPE_NAME_TAG,
            cancerStudyMetadata.getTumorTypeMetadata().getName());
    writer.print("description: " + description + "\n");
    if (cancerStudyMetadata.getCitation().length() > 0) {
      writer.print("citation: " + cancerStudyMetadata.getCitation() + "\n");
    }
    if (cancerStudyMetadata.getPMID().length() > 0) {
      writer.print("pmid: " + cancerStudyMetadata.getPMID() + "\n");
    }

    writer.flush();
    writer.close();
  }