org.sejda.cli.command.CliCommands Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sejda-console Show documentation
Show all versions of sejda-console Show documentation
The sejda-console is a shell interface for Sejda to perform pdf manipulation tasks such as merge or split through the command line.
/*
* Created on 14 gen 2017
* Copyright 2015 by Andrea Vacondio ([email protected]).
* This file is part of Sejda.
*
* Sejda is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Sejda is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with Sejda. If not, see .
*/
package org.sejda.cli.command;
import static java.util.stream.Collectors.toList;
import static java.util.stream.StreamSupport.stream;
import java.util.Comparator;
import java.util.List;
import java.util.ServiceLoader;
/**
* Available commands for the command line
*
* @author Andrea Vacondio
*/
public class CliCommands {
/**
* Sorted list of available commands
*/
public static final List COMMANDS;
static {
COMMANDS = stream(ServiceLoader.load(CommandsProvider.class).spliterator(), false)
.flatMap(p -> p.commands().stream()).sorted(Comparator.comparing(c -> c.getDisplayName()))
.collect(toList());
}
public static CliCommand findByDisplayNameSilently(String displayName) {
return COMMANDS.stream().filter(c -> c.getDisplayName().equalsIgnoreCase(displayName)).findFirst().orElse(null);
}
}