package jetbrains.mps.internal.make.runtime.java; /*Generated by MPS */ import jetbrains.mps.generator.generationTypes.StreamHandler; import jetbrains.mps.internal.make.runtime.util.FilesDelta; import jetbrains.mps.vfs.IFile; import org.jdom.Element; public class FileDeltaCollector implements StreamHandler { private final FilesDelta myDelta; private final IFile myOutputDir; private final FileProcessor myProcessor; public FileDeltaCollector(IFile outputDir, FileProcessor fileProcessor) { myDelta = new FilesDelta(outputDir); myOutputDir = outputDir; myProcessor = fileProcessor; } public FilesDelta getDelta() { return myDelta; } @Override public void saveStream(String name, String content) { IFile file = getFile(name); if (myProcessor.saveContent(file, content)) { myDelta.written(file); } else { myDelta.kept(file); } } @Override public void saveStream(String name, Element element) { IFile file = getFile(name); if (myProcessor.saveContent(file, element)) { myDelta.written(file); } else { myDelta.kept(file); } } @Override public void saveStream(String name, byte[] content) { IFile file = getFile(name); if (myProcessor.saveContent(file, content)) { myDelta.written(file); } else { myDelta.kept(file); } } @Override public boolean touch(String name) { IFile file = getFile(name); myDelta.kept(file); return file.exists(); } private IFile getFile(String name) { return myOutputDir.getDescendant(name); } }