
io.airlift.command.model.CommandMetadata Maven / Gradle / Ivy
package io.airlift.command.model;
import com.google.common.base.Function;
import com.google.common.collect.ImmutableList;
import io.airlift.command.Accessor;
import javax.annotation.Nullable;
import java.util.List;
public class CommandMetadata
{
private final String name;
private final String description;
private final boolean hidden;
private final List globalOptions;
private final List groupOptions;
private final List commandOptions;
private final ArgumentsMetadata arguments;
private final List metadataInjections;
private final Class> type;
public CommandMetadata(String name,
String description,
boolean hidden, Iterable globalOptions,
Iterable groupOptions,
Iterable commandOptions,
ArgumentsMetadata arguments,
Iterable metadataInjections,
Class> type)
{
this.name = name;
this.description = description;
this.hidden = hidden;
this.globalOptions = ImmutableList.copyOf(globalOptions);
this.groupOptions = ImmutableList.copyOf(groupOptions);
this.commandOptions = ImmutableList.copyOf(commandOptions);
this.arguments = arguments;
this.metadataInjections = ImmutableList.copyOf(metadataInjections);
this.type = type;
}
public String getName()
{
return name;
}
public String getDescription()
{
return description;
}
public boolean isHidden()
{
return hidden;
}
public List getAllOptions()
{
return ImmutableList.builder().addAll(globalOptions).addAll(groupOptions).addAll(commandOptions).build();
}
public List getGlobalOptions()
{
return globalOptions;
}
public List getGroupOptions()
{
return groupOptions;
}
public List getCommandOptions()
{
return commandOptions;
}
public ArgumentsMetadata getArguments()
{
return arguments;
}
public List getMetadataInjections()
{
return metadataInjections;
}
public Class> getType()
{
return type;
}
@Override
public String toString()
{
final StringBuilder sb = new StringBuilder();
sb.append("CommandMetadata");
sb.append("{name='").append(name).append('\'');
sb.append(", description='").append(description).append('\'');
sb.append(", globalOptions=").append(globalOptions);
sb.append(", groupOptions=").append(groupOptions);
sb.append(", commandOptions=").append(commandOptions);
sb.append(", arguments=").append(arguments);
sb.append(", metadataInjections=").append(metadataInjections);
sb.append(", type=").append(type);
sb.append('}');
return sb.toString();
}
public static Function nameGetter()
{
return new Function()
{
public String apply(CommandMetadata input)
{
return input.getName();
}
};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy