difflib.Chunk Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of java-diff-utils-copy Show documentation
Show all versions of java-diff-utils-copy Show documentation
A temporary copy of java diff utils from http://code.google.com/p/java-diff-utils to allow releasing dybdob
The newest version!
/*
Copyright 2009 Dmitry Naumenko ([email protected])
This file is part of Java Diff Utills Library.
Java Diff Utills Library is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Java Diff Utills Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Java Diff Utills Library. If not, see .
*/
package difflib;
import java.util.*;
/**
* Holds the information about the part of text involved in the diff process
*
*
* Text is represented as Object[]
because the diff engine is
* capable of handling more than plain ascci. In fact, arrays or lists of any
* type that implements {@link java.lang.Object#hashCode hashCode()} and
* {@link java.lang.Object#equals equals()} correctly can be subject to
* differencing using this library.
*
*
* @author target size");
}
for (int i = 0; i < size; i++) {
if (!target.get(position + i).equals(lines.get(i))) {
throw new PatchFailedException(
"Incorrect Chunk: the chunk content doesn't match the target");
}
}
}
/**
* @return the start position of chunk in the text
*/
public int getPosition() {
return position;
}
/**
* @param position
* the start position to set
*/
public void setPosition(int position) {
this.position = position;
}
/**
* @return the size of Chunk (size of affected lines)
*/
public int getSize() {
return size;
}
/**
* @param size
* the size of affected lines to set
*/
public void setSize(int size) {
this.size = size;
}
/**
* @return the affected lines
*/
public List> getLines() {
return lines;
}
/**
* @param lines
* the affected lines to set
*/
public void setLines(List> lines) {
this.lines = lines;
}
/**
* Returns the index of the last line of the chunk.
*/
public int last() {
return getPosition() + getSize() - 1;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((lines == null) ? 0 : lines.hashCode());
result = prime * result + position;
result = prime * result + size;
return result;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Chunk other = (Chunk) obj;
if (lines == null) {
if (other.lines != null)
return false;
} else if (!lines.equals(other.lines))
return false;
if (position != other.position)
return false;
if (size != other.size)
return false;
return true;
}
@Override
public String toString() {
return "[position: " + position + ", size: " + size + ", lines: " + lines + "]";
}
}