/** * This file is licensed under the University of Illinois/NCSA Open Source License. See LICENSE.TXT for details. */ package edu.illinois.codingtracker.operations.resources; 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.OperationSymbols; import edu.illinois.codingtracker.operations.OperationTextChunk; /** * * @author Stas Negara * */ public class CreatedResourceOperation extends UpdatedResourceOperation { private boolean isFile= false; private String fileContent= ""; public CreatedResourceOperation() { super(); } public CreatedResourceOperation(IResource resource, int updateFlags, boolean success) { super(resource, updateFlags, success); if (resource instanceof IFile) { isFile= true; if (success) { fileContent= ResourceHelper.readFileContent((IFile)resource); } } } @Override protected char getOperationSymbol() { return OperationSymbols.RESOURCE_CREATED_SYMBOL; } @Override public String getDescription() { return "Created resource"; } @Override protected void populateTextChunk(OperationTextChunk textChunk) { super.populateTextChunk(textChunk); textChunk.append(isFile); textChunk.append(fileContent); } @Override protected void initializeFrom(OperationLexer operationLexer) { super.initializeFrom(operationLexer); isFile= operationLexer.readBoolean(); fileContent= operationLexer.readString(); } @Override public void replayBreakableResourceOperation() throws CoreException { if (isFile) { createCompilationUnit(fileContent); } else { createContainer(); } } @Override public String toString() { StringBuffer sb= new StringBuffer(); sb.append("Is file: " + isFile + "\n"); if (isFile) { sb.append("File content: " + fileContent + "\n"); } sb.append(super.toString()); return sb.toString(); } }