/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* 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
*
* Contributors:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.ide.api.editor.text;
/** Oriented range of text. */
public class TextRange {
/** The start position of the range. */
private final TextPosition from;
/** The end position of the range. */
private final TextPosition to;
/**
* TextRange constructor.
* @param from the start of the range
* @param to the end of the range
*/
public TextRange(final TextPosition from, final TextPosition to) {
this.from = from;
this.to = to;
}
/**
* Return the start of the range (line-character position).
* @return the start of the range
*/
public TextPosition getFrom() {
return this.from;
}
/**
* Return the end of the range (line-character position).
* @return the end of the range
*/
public TextPosition getTo() {
return this.to;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((from == null) ? 0 : from.hashCode());
result = prime * result + ((to == null) ? 0 : to.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof TextRange)) {
return false;
}
final TextRange other = (TextRange)obj;
if (from == null) {
if (other.from != null) {
return false;
}
} else if (!from.equals(other.from)) {
return false;
}
if (to == null) {
if (other.to != null) {
return false;
}
} else if (!to.equals(other.to)) {
return false;
}
return true;
}
@Override
public String toString() {
return "TextRange [from=" + from + ", to=" + to + "]";
}
}