@Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        PiTableEntry that = (PiTableEntry) o;
        return priority == that.priority &&
                cookie == that.cookie &&
                Double.compare(that.timeout, timeout) == 0 &&
                Objects.equal(tableId, that.tableId) &&
                Objects.equal(matchKey, that.matchKey) &&
                Objects.equal(isDefaultAction, that.isDefaultAction) &&
                Objects.equal(tableAction, that.tableAction);
    }
@Test
    public void testEquals() {
        new EqualsTester()
                .addEqualityGroup(piTableEntry1, sameAsPiTableEntry1)
                .addEqualityGroup(piTableEntry2)
                .testEquals();
    }