blob: 2857a113ea35247709cc486a5d1a45f09d58dc5a [file] [log] [blame]
/*=============================================================================#
# Copyright (c) 2012, 2021 Original NatTable authors and others.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# https://www.eclipse.org/legal/epl-2.0.
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# Original NatTable authors and others - initial API and implementation
#=============================================================================*/
package org.eclipse.statet.ecommons.waltable.coordinate;
import org.eclipse.statet.ecommons.waltable.layer.ILayer;
public final class PositionCoordinate {
private final ILayer layer;
public long columnPosition;
public long rowPosition;
public PositionCoordinate(final ILayer layer, final long columnPosition, final long rowPosition) {
this.layer= layer;
this.columnPosition= columnPosition;
this.rowPosition= rowPosition;
}
public PositionCoordinate(final PositionCoordinate coordinate) {
this.layer= coordinate.layer;
this.columnPosition= coordinate.columnPosition;
this.rowPosition= coordinate.rowPosition;
}
public ILayer getLayer() {
return this.layer;
}
public long getColumnPosition() {
return this.columnPosition;
}
public long getRowPosition() {
return this.rowPosition;
}
public void set(final long rowPosition, final long columnPosition) {
this.rowPosition= rowPosition;
this.columnPosition= columnPosition;
}
@Override
public int hashCode() {
int h= (int) (this.columnPosition ^ (this.columnPosition >>> 32));
h= Integer.rotateRight(h, 15);
h ^= (int) (this.rowPosition ^ (this.rowPosition));
return this.layer.hashCode() + (h ^ (h >>> 7));
}
@Override
public boolean equals(final Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof PositionCoordinate)) {
return false;
}
final PositionCoordinate other= (PositionCoordinate) obj;
return (this.layer == other.layer
&& this.columnPosition == other.columnPosition
&& this.rowPosition == other.rowPosition );
}
@Override
public String toString() {
return getClass().getSimpleName() + "[" + this.layer + ":" + this.columnPosition + "," + this.rowPosition + "]";
}
}