com.github.andyshao.util.stream.Pair Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of Gear Show documentation
Show all versions of Gear Show documentation
Enhance and formating the coding of JDK
The newest version!
package com.github.andyshao.util.stream;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Supplier;
/**
*
*
* Title:
* Descript:
* Copyright: Copryright(c) May 27, 2019
* Encoding: UNIX UTF-8
*
* @author Andy.Shao
*
* @param first object type
* @param second object type
*/
@Getter
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public final class Pair {
private final F first;
private final S second;
/**
* build {@link Pair}
* @param first first item
* @param second second item
* @return {@link Pair}
* @param first type
* @param second type
*/
public static Pair of(F first, S second) {
return new Pair(first, second);
}
/**
* get first or default
* @param def default value
* @return first or default value
*/
public F getFirstOrDefault(F def) {
return Objects.isNull(this.first) ? def : this.first;
}
/**
* compute first if absence
* @param supplier default value function
* @return first or default value
*/
public F computeFirstIfAbsence(Supplier supplier) {
Optional ops = this.getFirstOps();
if(ops.isPresent()) return ops.get();
return supplier.get();
}
/**
* get second or default
* @param def default value
* @return sencond or default value
*/
public S getSecondOrDefault(S def) {
return Objects.isNull(this.second) ? def : this.second;
}
/**
* compute second if absence
* @param supplier default value function
* @return second value
*/
public S computeSecondIfAbsence(Supplier supplier) {
Optional ops = this.getSecondOps();
if(ops.isPresent()) return ops.get();
return supplier.get();
}
/**
* get first
* @return first value
*/
public Optional getFirstOps() {
return Optional.ofNullable(this.first);
}
/**
* get second
* @return second value
*/
public Optional getSecondOps() {
return Optional.ofNullable(this.second);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy