forked from Speiger/Primitive-Collections
59 lines
1.6 KiB
Plaintext
59 lines
1.6 KiB
Plaintext
package speiger.src.collections.PACKAGE.functions.function;
|
|
|
|
#if JDK_FUNCTION && VALUE_BOOLEAN
|
|
import java.util.Objects;
|
|
#endif
|
|
|
|
@FunctionalInterface
|
|
#if JDK_FUNCTION
|
|
public interface FUNCTION KEY_VALUE_GENERIC_TYPE extends JAVA_FUNCTION KEY_VALUE_GENERIC_TYPE
|
|
#else
|
|
public interface FUNCTION KEY_VALUE_GENERIC_TYPE
|
|
#endif
|
|
{
|
|
public VALUE_TYPE GET_VALUE(KEY_TYPE k);
|
|
#if JDK_FUNCTION
|
|
#if VALUE_BOOLEAN
|
|
|
|
@Override
|
|
public default VALUE_TYPE test(KEY_TYPE k) { return GET_VALUE(k); }
|
|
|
|
public default FUNCTION KEY_VALUE_GENERIC_TYPE andType(FUNCTION KEY_VALUE_GENERIC_TYPE other) {
|
|
Objects.requireNonNull(other);
|
|
return T -> GET_VALUE(T) && other.GET_VALUE(T);
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public default FUNCTION KEY_VALUE_GENERIC_TYPE and(JAVA_FUNCTION KEY_VALUE_SUPER_GENERIC_TYPE other) {
|
|
Objects.requireNonNull(other);
|
|
return T -> GET_VALUE(T) && other.test(T);
|
|
}
|
|
|
|
@Override
|
|
public default FUNCTION KEY_VALUE_GENERIC_TYPE negate() {
|
|
return T -> !GET_VALUE(T);
|
|
}
|
|
|
|
public default FUNCTION KEY_VALUE_GENERIC_TYPE orType(FUNCTION KEY_VALUE_GENERIC_TYPE other) {
|
|
Objects.requireNonNull(other);
|
|
return T -> GET_VALUE(T) || other.GET_VALUE(T);
|
|
}
|
|
|
|
@Override
|
|
@Deprecated
|
|
public default FUNCTION KEY_VALUE_GENERIC_TYPE or(JAVA_FUNCTION KEY_VALUE_SUPER_GENERIC_TYPE other) {
|
|
Objects.requireNonNull(other);
|
|
return T -> GET_VALUE(T) || other.test(T);
|
|
}
|
|
#else if VALUE_OBJECT
|
|
|
|
@Override
|
|
public default VALUE_TYPE apply(KEY_TYPE k) { return GET_VALUE(k); }
|
|
#else
|
|
|
|
@Override
|
|
public default VALUE_TYPE APPLY_VALUE(KEY_TYPE k) { return GET_VALUE(k); }
|
|
#endif
|
|
#endif
|
|
} |