@Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }
        final P4TableModel other = (P4TableModel) obj;
        return Objects.equals(this.id, other.id)
                && Objects.equals(this.tableType, other.tableType)
                && Objects.equals(this.actionProfile, other.actionProfile)
                && Objects.equals(this.maxSize, other.maxSize)
                && Objects.equals(this.counters, other.counters)
                && Objects.equals(this.meters, other.meters)
                && Objects.equals(this.supportAging, other.supportAging)
                && Objects.equals(this.matchFields, other.matchFields)
                && Objects.equals(this.actions, other.actions)
                && Objects.equals(this.constDefaultAction, other.constDefaultAction)
                && Objects.equals(this.oneShotOnly, other.oneShotOnly);
    }
@Test
    public void testEquals() {
        new EqualsTester()
                .addEqualityGroup(P4_TABLE_MODEL_1, SAME_AS_P4_TABLE_MODEL_1)
                .addEqualityGroup(P4_TABLE_MODEL_2)
                .addEqualityGroup(P4_TABLE_MODEL_3)
                .testEquals();
    }