/**
* This file is licensed under the University of Illinois/NCSA Open Source License. See LICENSE.TXT for details.
*/
package edu.illinois.codingtracker.operations.files;
import org.eclipse.core.resources.IFile;
import edu.illinois.codingtracker.helpers.Configuration;
import edu.illinois.codingtracker.operations.OperationLexer;
import edu.illinois.codingtracker.operations.OperationSymbols;
import edu.illinois.codingtracker.operations.OperationTextChunk;
/**
* Note that code related to fields revision and committedRevision is duplicated from
* CommittedFileOperation to avoid playing with mixes (and Java disallows multiple inheritance).
*
* @author Stas Negara
*
*/
public class UpdatedFileOperation extends FileOperation {
private String revision;
private String committedRevision;
public UpdatedFileOperation() {
super();
}
public UpdatedFileOperation(IFile updatedFile, String revision, String committedRevision) {
super(updatedFile);
this.revision= revision;
this.committedRevision= committedRevision;
}
@Override
protected char getOperationSymbol() {
return OperationSymbols.FILE_UPDATED_SYMBOL;
}
@Override
public String getDescription() {
return "Updated file";
}
@Override
protected void populateTextChunk(OperationTextChunk textChunk) {
super.populateTextChunk(textChunk);
textChunk.append(revision);
textChunk.append(committedRevision);
}
@Override
protected void initializeFrom(OperationLexer operationLexer) {
super.initializeFrom(operationLexer);
if (!Configuration.isOldFormat) {
revision= operationLexer.readString();
committedRevision= operationLexer.readString();
} else {
revision= "";
committedRevision= "";
}
}
@Override
public void replay() {
externallyModifiedResources.add(resourcePath);
}
@Override
public String toString() {
StringBuffer sb= new StringBuffer();
sb.append("Revision " + revision + "\n");
sb.append("Committed revision " + committedRevision + "\n");
sb.append(super.toString());
return sb.toString();
}
}