/*******************************************************************************
* Copyright (c) 2009 Andrey Loskutov.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
* Contributor: Andrey Loskutov - initial API and implementation
*******************************************************************************/
package de.loskutov.anyedit.util;
import java.util.ArrayList;
import java.util.List;
/**
* @author Andrey
*/
public final class TextReplaceResultSet {
private final List<LineReplaceResult> delegate;
private int startLine = -1;
private int stopLine = -1;
private Exception exception;
public TextReplaceResultSet(){
delegate = new ArrayList<LineReplaceResult>();
}
/**
*
* @param o could be null value, if the line is not changed
*/
public boolean add(LineReplaceResult o) {
return delegate.add(o);
}
/**
* @param index line index in the document
* @return null if index is out of range
*/
public LineReplaceResult get(int index) {
if(index >= delegate.size()) {
return null;
}
return delegate.get(index);
}
public boolean areResultsChanged(){
for (int i = 0; i < size(); i++) {
if(get(i) != null){
return true;
}
}
return false;
}
public int size(){
return delegate.size();
}
/**
* @return Returns the startLine.
*/
public int getStartLine() {
return this.startLine;
}
/**
* @param startLine The startLine to set.
*/
public void setStartLine(int startLine) {
this.startLine = startLine;
}
/**
* @return Returns the stopLine - last changed line in result
*/
public int getStopLine() {
return this.stopLine;
}
/**
* @param stopLine The stopLine to set.
*/
public void setStopLine(int stopLine) {
this.stopLine = stopLine;
}
public int getNumberOfLines(){
if(getStartLine()>= 0 && getStopLine() >= 0){
return getStopLine() - getStartLine() + 1;
}
return 0;
}
public void clear(){
delegate.clear();
}
/**
* @return exception which was thrown during writing the document, if any
*/
public Exception getException() {
return exception;
}
/**
* @param exception which was thrown during writing the document, if any
*/
public void setException(Exception exception) {
this.exception = exception;
}
}