All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.vx68k.bitbucket.api.client.cli.TeamCommandGroup Maven / Gradle / Ivy

There is a newer version: 5.0.0
Show newest version
/*
 * TeamCommandGroup.java - class TeamCommandGroup
 * Copyright (C) 2018 Kaz Nishimura
 *
 * This program 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.
 *
 * This program 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 this program.  If not, see .
 *
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */

package org.vx68k.bitbucket.api.client.cli;

import java.io.PrintWriter;
import org.vx68k.bitbucket.api.BitbucketAccount;
import org.vx68k.bitbucket.api.client.BitbucketClient;

/**
 * {@code team} command group.
 *
 * @author Kaz Nishimura
 */
public class TeamCommandGroup extends CommandGroup
{
    /**
     * Constructs this object.
     *
     * @param bitbucketClient value for the Bitbucket API client
     */
    public TeamCommandGroup(final BitbucketClient bitbucketClient)
    {
        super(bitbucketClient);

        add("show", new ShowCommand());
        // @todo Add more commands.
    }

    /**
     * {@code show} command.
     */
    final class ShowCommand implements Command
    {
        /**
         * Print format.
         */
        private static final String FORMAT = "%-12s  %s\n";

        /**
         * Prints a team information.
         *
         * @param team team to print
         */
        void print(final BitbucketAccount team)
        {
            PrintWriter out = new PrintWriter(System.out);
            out.format(FORMAT, "Name", team.getName());
            out.format(FORMAT, "UUID", team.getUUID());
            out.format(FORMAT, "Display Name", team.getDisplayName());
            out.format(FORMAT, "Website", team.getWebsite());
            out.format(FORMAT, "Location", team.getLocation());
            out.format(FORMAT, "Created", team.getCreated());
            out.flush();
        }

        /**
         * Runs the {@code show} command.
         *
         * @param commandName actual command name
         * @param args command arguments
         */
        @Override
        public void run(final String commandName, final String[] args)
        {
            if (args.length < 1) {
                throw new CLIException("Missing arguments");
            }

            BitbucketAccount team = getBitbucketClient().getTeam(args[0]);
            if (team != null) {
                print(team);
            }
            else {
                System.err.println(commandName + ": Team not found");
            }
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy