mirror of
https://github.com/apache/poi.git
synced 2026-02-27 20:40:08 +08:00
[github-314] Add equals and hashcode to PaneInformation. Thanks to Daniel Shuy. This closes #314
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1899240 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c5a13f5b3f
commit
dd13adef38
@ -17,6 +17,8 @@
|
||||
|
||||
package org.apache.poi.ss.util;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Holds information regarding a split plane or freeze plane for a sheet.
|
||||
*
|
||||
@ -31,14 +33,14 @@ public class PaneInformation
|
||||
public static final byte PANE_LOWER_LEFT = (byte)2;
|
||||
/** Constant for active pane being the upper left*/
|
||||
public static final byte PANE_UPPER_LEFT = (byte)3;
|
||||
|
||||
|
||||
private final short x;
|
||||
private final short y;
|
||||
private final short topRow;
|
||||
private final short leftColumn;
|
||||
private final byte activePane;
|
||||
private final boolean frozen;
|
||||
|
||||
|
||||
public PaneInformation(short x, short y, short top, short left, byte active, boolean frozen) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
@ -56,9 +58,9 @@ public class PaneInformation
|
||||
* or for a split plane the position of the split in 1/20th of a point.
|
||||
*/
|
||||
public short getVerticalSplitPosition() {
|
||||
return x;
|
||||
return x;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the horizontal position of the split.
|
||||
* @return 0 if there is no horizontal spilt,
|
||||
@ -66,25 +68,25 @@ public class PaneInformation
|
||||
* or for a split plane the position of the split in 1/20th of a point.
|
||||
*/
|
||||
public short getHorizontalSplitPosition() {
|
||||
return y;
|
||||
return y;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* For a horizontal split returns the top row in the BOTTOM pane.
|
||||
* @return 0 if there is no horizontal split, or the top row of the bottom pane.
|
||||
*/
|
||||
public short getHorizontalSplitTopRow() {
|
||||
return topRow;
|
||||
return topRow;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* For a vertical split returns the left column in the RIGHT pane.
|
||||
* @return 0 if there is no vertical split, or the left column in the RIGHT pane.
|
||||
*/
|
||||
public short getVerticalSplitLeftColumn() {
|
||||
return leftColumn;
|
||||
return leftColumn;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the active pane
|
||||
* @see #PANE_LOWER_RIGHT
|
||||
@ -94,12 +96,38 @@ public class PaneInformation
|
||||
* @return the active pane.
|
||||
*/
|
||||
public byte getActivePane() {
|
||||
return activePane;
|
||||
return activePane;
|
||||
}
|
||||
|
||||
|
||||
/** Returns true if this is a Freeze pane, false if it is a split pane.
|
||||
*/
|
||||
public boolean isFreezePane() {
|
||||
return frozen;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (!(o instanceof PaneInformation)) return false;
|
||||
|
||||
PaneInformation that = (PaneInformation) o;
|
||||
|
||||
if (x != that.x) return false;
|
||||
if (y != that.y) return false;
|
||||
if (topRow != that.topRow) return false;
|
||||
if (leftColumn != that.leftColumn) return false;
|
||||
if (activePane != that.activePane) return false;
|
||||
return frozen == that.frozen;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(
|
||||
x,
|
||||
y,
|
||||
topRow,
|
||||
leftColumn,
|
||||
activePane,
|
||||
frozen);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,68 @@
|
||||
/* ====================================================================
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You 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 org.apache.poi.ss.util;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
final class TestPaneInformation {
|
||||
@Test
|
||||
void testEquals() {
|
||||
PaneInformation pi1 = new PaneInformation((short) 1, (short) 2, (short) 3, (short) 4, (byte) 5, true);
|
||||
PaneInformation p12 = new PaneInformation((short) 1, (short) 2, (short) 3, (short) 4, (byte) 5, true);
|
||||
assertEquals(pi1, p12);
|
||||
assertEquals(pi1.hashCode(), p12.hashCode());
|
||||
}
|
||||
|
||||
@Test
|
||||
void testNotEquals() {
|
||||
PaneInformation pi1 = new PaneInformation((short) 1, (short) 1, (short) 1, (short) 1, (byte) 1, true);
|
||||
PaneInformation pi2 = new PaneInformation((short) 1, (short) 1, (short) 1, (short) 1, (byte) 1, false);
|
||||
PaneInformation pi3 = new PaneInformation((short) 1, (short) 1, (short) 1, (short) 1, (byte) 2, true);
|
||||
PaneInformation pi4 = new PaneInformation((short) 1, (short) 1, (short) 1, (short) 2, (byte) 1, true);
|
||||
PaneInformation pi5 = new PaneInformation((short) 1, (short) 1, (short) 1, (short) 2, (byte) 1, false);
|
||||
PaneInformation pi6 = new PaneInformation((short) 1, (short) 1, (short) 2, (short) 1, (byte) 1, true);
|
||||
PaneInformation pi7 = new PaneInformation((short) 1, (short) 1, (short) 2, (short) 1, (byte) 1, false);
|
||||
PaneInformation pi8 = new PaneInformation((short) 1, (short) 2, (short) 1, (short) 1, (byte) 1, true);
|
||||
PaneInformation pi9 = new PaneInformation((short) 1, (short) 2, (short) 1, (short) 1, (byte) 1, false);
|
||||
PaneInformation pi10 = new PaneInformation((short) 2, (short) 1, (short) 1, (short) 1, (byte) 1, true);
|
||||
PaneInformation pi11 = new PaneInformation((short) 2, (short) 1, (short) 1, (short) 1, (byte) 1, false);
|
||||
assertNotEquals(pi1, pi2);
|
||||
assertNotEquals(pi1, pi3);
|
||||
assertNotEquals(pi1, pi4);
|
||||
assertNotEquals(pi1, pi5);
|
||||
assertNotEquals(pi1, pi6);
|
||||
assertNotEquals(pi1, pi7);
|
||||
assertNotEquals(pi1, pi8);
|
||||
assertNotEquals(pi1, pi9);
|
||||
assertNotEquals(pi1, pi10);
|
||||
assertNotEquals(pi1, pi11);
|
||||
assertNotEquals(pi1.hashCode(), pi2.hashCode());
|
||||
assertNotEquals(pi1.hashCode(), pi3.hashCode());
|
||||
assertNotEquals(pi1.hashCode(), pi4.hashCode());
|
||||
assertNotEquals(pi1.hashCode(), pi5.hashCode());
|
||||
assertNotEquals(pi1.hashCode(), pi6.hashCode());
|
||||
assertNotEquals(pi1.hashCode(), pi7.hashCode());
|
||||
assertNotEquals(pi1.hashCode(), pi8.hashCode());
|
||||
assertNotEquals(pi1.hashCode(), pi9.hashCode());
|
||||
assertNotEquals(pi1.hashCode(), pi10.hashCode());
|
||||
assertNotEquals(pi1.hashCode(), pi11.hashCode());
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user