001///////////////////////////////////////////////////////////////////////////////////////////////
002// checkstyle: Checks Java source code and other text files for adherence to a set of rules.
003// Copyright (C) 2001-2024 the original author or authors.
004//
005// This library is free software; you can redistribute it and/or
006// modify it under the terms of the GNU Lesser General Public
007// License as published by the Free Software Foundation; either
008// version 2.1 of the License, or (at your option) any later version.
009//
010// This library is distributed in the hope that it will be useful,
011// but WITHOUT ANY WARRANTY; without even the implied warranty of
012// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013// Lesser General Public License for more details.
014//
015// You should have received a copy of the GNU Lesser General Public
016// License along with this library; if not, write to the Free Software
017// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
018///////////////////////////////////////////////////////////////////////////////////////////////
019
020package com.puppycrawl.tools.checkstyle.filters;
021
022/**
023 * This filter element is immutable and accepts a matching Integer.
024 */
025class IntMatchFilterElement implements IntFilterElement {
026
027    /** The matching Integer. */
028    private final int matchValue;
029
030    /**
031     * Constructs a MatchFilter for an int.
032     *
033     * @param matchValue the matching int.
034     */
035    /* package */ IntMatchFilterElement(int matchValue) {
036        this.matchValue = matchValue;
037    }
038
039    @Override
040    public boolean accept(int intValue) {
041        return matchValue == intValue;
042    }
043
044    @Override
045    public String toString() {
046        return "IntMatchFilterElement[" + matchValue + "]";
047    }
048
049    @Override
050    public final int hashCode() {
051        return Integer.valueOf(matchValue).hashCode();
052    }
053
054    @Override
055    public final boolean equals(Object object) {
056        if (object instanceof IntMatchFilterElement) {
057            final IntMatchFilterElement other = (IntMatchFilterElement) object;
058            return matchValue == other.matchValue;
059        }
060        return false;
061    }
062
063}