1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
/*
* Copyright (C) 2020-2024 Sebastiano Vigna
*
* Licensed 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 PACKAGE;
/** A type-specific immutable {@link it.unimi.dsi.fastutil.SortedPair SortedPair}. */
#if KEYS_PRIMITIVE
public interface SORTED_PAIR extends PAIR, it.unimi.dsi.fastutil.SortedPair<KEY_CLASS>, java.io.Serializable {
#else
public interface SORTED_PAIR <K extends Comparable<K>> extends PAIR <K, K>, it.unimi.dsi.fastutil.SortedPair<K>, java.io.Serializable {
#endif
/** Returns a new type-specific immutable {@link it.unimi.dsi.fastutil.SortedPair SortedPair} with given left and right value.
*
* <p>Note that if {@code left} and {@code right} are in the wrong order, they will be exchanged.
*
* @param left the left value.
* @param right the right value.
*
* @implSpec This factory method delegates to the factory method of the corresponding immutable implementation.
*/
#if KEYS_PRIMITIVE
public static SORTED_PAIR of(final KEY_GENERIC_TYPE left, final KEY_GENERIC_TYPE right) {
return IMMUTABLE_SORTED_PAIR.of(left, right);
#else
public static <K extends Comparable<K>> SORTED_PAIR <K> of(final KEY_GENERIC_TYPE left, final KEY_GENERIC_TYPE right) {
return IMMUTABLE_SORTED_PAIR.of(left, right);
#endif
}
#if KEYS_PRIMITIVE
/**
* Returns true if one of the two elements of this sorted pair is equal to a given element.
*
* @param e an element.
* @return true if one of the two elements of this sorted pair is equal to {@code e}.
* @see it.unimi.dsi.fastutil.SortedPair#contains(Object)
*/
default boolean contains(final KEY_TYPE e) {
return e == PAIR_LEFT() || e == PAIR_RIGHT();
}
/** {@inheritDoc}
* @deprecated Please use the corresponding type-specific method instead.
*/
@Deprecated
@Override
default boolean contains(final Object o) {
if (o == null) return false;
return contains(KEY_OBJ2TYPE(o));
}
#endif
}
|