/** * This file is licensed under the University of Illinois/NCSA Open Source License. See LICENSE.TXT for details. */ package edu.illinois.codingtracker.operations.files.snapshoted; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import edu.illinois.codingtracker.helpers.ResourceHelper; import edu.illinois.codingtracker.operations.OperationLexer; import edu.illinois.codingtracker.operations.OperationTextChunk; import edu.illinois.codingtracker.operations.files.FileOperation; /** * * @author Stas Negara * */ public abstract class SnapshotedFileOperation extends FileOperation { protected String fileContent; public SnapshotedFileOperation() { super(); } public SnapshotedFileOperation(IFile snapshotedFile) { super(snapshotedFile); fileContent= ResourceHelper.readFileContent(snapshotedFile); } public SnapshotedFileOperation(IFile snapshotedFile, String charsetName) { super(snapshotedFile); fileContent= ResourceHelper.readFileContent(snapshotedFile, charsetName); } @Override protected void populateTextChunk(OperationTextChunk textChunk) { super.populateTextChunk(textChunk); textChunk.append(fileContent); } @Override protected void initializeFrom(OperationLexer operationLexer) { super.initializeFrom(operationLexer); fileContent= operationLexer.readString(); } @Override public void replay() throws CoreException { createCompilationUnit(fileContent); externallyModifiedResources.remove(resourcePath); } @Override public String toString() { StringBuffer sb= new StringBuffer(); sb.append("File content: " + fileContent + "\n"); sb.append(super.toString()); return sb.toString(); } }