drv.SortedPair.drv Maven / Gradle / Ivy
Show all versions of fastutil-core Show documentation
/*
* Copyright (C) 2020-2021 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, java.io.Serializable {
#else
public interface SORTED_PAIR > extends PAIR , it.unimi.dsi.fastutil.SortedPair, java.io.Serializable {
#endif
/** Returns a new type-specific immutable {@link it.unimi.dsi.fastutil.SortedPair SortedPair} with given left and right value.
*
* 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 > SORTED_PAIR 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
}