Make compound argumnets constructor public and fix code style issue

This commit is contained in:
broccolai 2020-10-06 18:58:21 +01:00 committed by Alexander Söderberg
parent caf1cc5b39
commit c2b1ec8a11
2 changed files with 23 additions and 11 deletions

View file

@ -170,9 +170,9 @@ public class ArgumentTriplet<C, U, V, W, O> extends CompoundArgument<Triplet<U,
* @return Created triplet
*/
public <O> @NonNull ArgumentTriplet<C, U, V, W, O> withMapper(final @NonNull Class<O> clazz,
final @NonNull BiFunction<@NonNull C,
@NonNull Triplet<@NonNull U, @NonNull V,
@NonNull W>, @NonNull O> mapper) {
final @NonNull BiFunction<@NonNull C, @NonNull Triplet<
@NonNull U, @NonNull V, @NonNull W>,
@NonNull O> mapper) {
return new ArgumentTriplet<>(this.required, this.name, this.names, this.types,
this.parserTriplet, mapper, TypeToken.get(clazz));
}

View file

@ -49,14 +49,26 @@ public class CompoundArgument<T extends Tuple, C, O> extends CommandArgument<C,
private final Tuple names;
private final Tuple parserTuple;
CompoundArgument(final boolean required,
final @NonNull String name,
final @NonNull Tuple names,
final @NonNull Tuple parserTuple,
final @NonNull Tuple types,
final @NonNull BiFunction<@NonNull C, @NonNull T, @NonNull O> mapper,
final @NonNull Function<@NonNull Object[], @NonNull T> tupleFactory,
final @NonNull TypeToken<O> valueType) {
/**
* Construct a Compound Argument
*
* @param required Whether or not the argument is required
* @param name The argument name
* @param names Names of the sub-arguments (in order)
* @param parserTuple The sub arguments
* @param types Types of the sub-arguments (in order)
* @param mapper Mapper that maps the sub-arguments to the output type
* @param tupleFactory Function to use when creating tuple
* @param valueType The output type
*/
public CompoundArgument(final boolean required,
final @NonNull String name,
final @NonNull Tuple names,
final @NonNull Tuple parserTuple,
final @NonNull Tuple types,
final @NonNull BiFunction<@NonNull C, @NonNull T, @NonNull O> mapper,
final @NonNull Function<@NonNull Object[], @NonNull T> tupleFactory,
final @NonNull TypeToken<O> valueType) {
super(required,
name,
new CompoundParser<>(parserTuple, mapper, tupleFactory),