All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.jwharm.javagi.base.Enumeration Maven / Gradle / Ivy

/* Java-GI - Java language bindings for GObject-Introspection-based libraries
 * Copyright (C) 2022-2024 Jan-Willem Harmannij
 *
 * SPDX-License-Identifier: LGPL-2.1-or-later
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, see .
 */

package io.github.jwharm.javagi.base;

/**
 * Interface implemented by all enumerations.
 */
public interface Enumeration {

    /**
     * Get the integer value of this enumeration.
     *
     * @return the integer value of this enumeration value
     */
    int getValue();

    /**
     * Compare this enumeration value with an integer.
     *
     * @param  enumeration the integer to compare this enumeration value with
     * @return true when {@code this.value == enumeration}
     */
    default boolean equals(int enumeration) {
        return getValue() == enumeration;
    }

    /**
     * Compare this enumeration value with another enumeration value.
     *
     * @param  enumeration another enumeration value
     * @return true when {@code this.value == enumeration.value}
     */
    default boolean equals(Enumeration enumeration) {
        return enumeration != null
                && this.getValue() == enumeration.getValue();
    }

    /**
     * Convert an array of Enumeration objects into an array of integers.
     *
     * @param  array an array of Enumeration objects
     * @return an array containing the integer values of the provided
     *         Enumeration instances
     */
    static int[] getValues(Enumeration[] array) {
        int[] values = new int[array.length];
        for (int i = 0; i < array.length; i++) {
            values[i] = array[i].getValue();
        }
        return values;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy