All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.javagimmicks.collections.diff.DefaultDifference Maven / Gradle / Ivy

package net.sf.javagimmicks.collections.diff;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class DefaultDifference implements Difference
{
	protected int _deleteStartIndex;
	protected int _deleteEndIndex;
	protected List _fromList;

	protected int _addStartIndex;
	protected int _addEndIndex;
	protected List _toList;
	
	public DefaultDifference(
		int deleteStartIndex, int deleteEndIndex,
		int addStartIndex, int addEndIndex,
		List deleteList, List addlist)
	{
		_deleteStartIndex = deleteStartIndex;
		_deleteEndIndex = deleteEndIndex;

		_addStartIndex = addStartIndex;
		_addEndIndex = addEndIndex;

		_fromList = deleteList;
		_toList = addlist;
	}
	
	public DefaultDifference()
	{
		this(0, NONE, 0, NONE, new ArrayList(), new ArrayList());
	}

	public int getAddStartIndex()
	{
		return _addStartIndex;
	}

	public int getAddEndIndex()
	{
		return _addEndIndex;
	}

	@SuppressWarnings("unchecked")
	public List getAddList()
	{
		return isAdd() ?
			Collections.unmodifiableList(_toList.subList(_addStartIndex, _addEndIndex + 1)) :
			Collections.EMPTY_LIST;
	}
	
	public boolean isAdd()
	{
		return getAddEndIndex() != NONE;
	}

	public int getDeleteStartIndex()
	{
		return _deleteStartIndex;
	}

	public int getDeleteEndIndex()
	{
		return _deleteEndIndex;
	}

	@SuppressWarnings("unchecked")
	public List getDeleteList()
	{
		return isDelete() ?
			Collections.unmodifiableList(_fromList.subList(_deleteStartIndex, _deleteEndIndex + 1)) :
			Collections.EMPTY_LIST;
	}
	
	public boolean isDelete()
	{
		return getDeleteEndIndex() != NONE;
	}

	public Difference invert()
	{
		return DifferenceUtils.getInvertedDifference(this);
	}

	public String toString()
	{
		return DifferenceUtils.toString(this);
	}
	
	public void setDeleteStartIndex(int startIndex)
	{
		_deleteStartIndex = startIndex;
	}

	public void setDeleteEndIndex(int endIndex)
	{
		_deleteEndIndex = endIndex;
	}
	
	public void setAddStartIndex(int startIndex)
	{
		_addStartIndex = startIndex;
	}

	public void setAddEndIndex(int endIndex)
	{
		_addEndIndex = endIndex;
	}

	public void setFromList(List list)
	{
		_fromList = list;
	}

	public void setToList(List list)
	{
		_toList = list;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy