com.github.difflib.text.DiffRow Maven / Gradle / Ivy
/*
* Copyright 2009-2017 java-diff-utils.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.github.difflib.text;
import java.io.Serializable;
import java.util.Objects;
/**
* Describes the diff row in form [tag, oldLine, newLine) for showing the difference between two texts
*
* @author Dmitry Naumenko
*/
public final class DiffRow implements Serializable {
private Tag tag;
private final String oldLine;
private final String newLine;
public DiffRow(Tag tag, String oldLine, String newLine) {
this.tag = tag;
this.oldLine = oldLine;
this.newLine = newLine;
}
public enum Tag {
INSERT, DELETE, CHANGE, EQUAL
}
/**
* @return the tag
*/
public Tag getTag() {
return tag;
}
/**
* @param tag the tag to set
*/
public void setTag(Tag tag) {
this.tag = tag;
}
/**
* @return the oldLine
*/
public String getOldLine() {
return oldLine;
}
/**
* @return the newLine
*/
public String getNewLine() {
return newLine;
}
@Override
public int hashCode() {
return Objects.hash(newLine, oldLine, tag);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
DiffRow other = (DiffRow) obj;
if (newLine == null) {
if (other.newLine != null) {
return false;
}
} else if (!newLine.equals(other.newLine)) {
return false;
}
if (oldLine == null) {
if (other.oldLine != null) {
return false;
}
} else if (!oldLine.equals(other.oldLine)) {
return false;
}
if (tag == null) {
if (other.tag != null) {
return false;
}
} else if (!tag.equals(other.tag)) {
return false;
}
return true;
}
@Override
public String toString() {
return "[" + this.tag + "," + this.oldLine + "," + this.newLine + "]";
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy