public void doSave()

in uimaj-ep-cev/src/main/java/org/apache/uima/cev/editor/CEVViewer.java [178:217]


  public void doSave(IProgressMonitor monitor) {
    CAS newCas = casDocument.getMainCas();
    List<ArtifactModifier> modifiers = new ArrayList<ArtifactModifier>();
    for (Integer eachIndex : casViews.keySet()) {
      for (ICEVArtifactViewer each : casViews.get(eachIndex)) {
        if (each instanceof ArtifactModifier) {
          modifiers.add((ArtifactModifier) each);
        }
      }
    }
    if (!modifiers.isEmpty()) {
      try {
        newCas = casDocument.createCas();
      } catch (ResourceInitializationException e) {
        CEVPlugin.error(e);
      } catch (InvalidXMLException e) {
        CEVPlugin.error(e);
      }

      org.apache.uima.util.CasCopier.copyCas(casDocument.getMainCas(), newCas, false);
      for (Integer eachIndex : casViews.keySet()) {
        for (ICEVArtifactViewer each : casViews.get(eachIndex)) {
          if (each instanceof ArtifactModifier) {
            ArtifactModifier am = (ArtifactModifier) each;
            am.modifyCas(casDocument, newCas, eachIndex);
          }
        }
      }
    }
    try {
      IFile iFile = ((FileEditorInput) getEditorInput()).getFile();
      File file = iFile.getLocation().toFile();
      XmlCasSerializer.serialize(newCas, new FileOutputStream(file));
      iFile.getParent().refreshLocal(Resource.DEPTH_INFINITE, new NullProgressMonitor());
    } catch (Exception e) {
      CEVPlugin.error(e);
    }
    setDirty(false);

  }