org.jcryptool.commands.core.api.OptionsBuilder.java Source code

Java tutorial

Introduction

Here is the source code for org.jcryptool.commands.core.api.OptionsBuilder.java

Source

//-----BEGIN DISCLAIMER-----
/*******************************************************************************
 * Copyright (c) 2010 JCrypTool team and contributors
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *******************************************************************************/
//-----END DISCLAIMER-----
package org.jcryptool.commands.core.api;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;

public class OptionsBuilder {
    private List<Option> options = new ArrayList<Option>();
    private List<String[]> goups = new ArrayList<String[]>();

    public OptionsBuilder() {
        super();
    }

    public OptionsBuilder addRequiredOption(String longOption, String shortOption, String description) {
        return this.addOption(longOption, shortOption, true, description, null, false, ',', 0);
    }

    public OptionsBuilder addOptionalOption(String longOption, String shortOption, String description) {
        return this.addOption(longOption, shortOption, false, description, null, false, ',', 0);
    }

    public OptionsBuilder addOptionWithRequiredSingleArg(String longOption, String shortOption, String description,
            boolean required, String argName) {
        return this.addOption(longOption, shortOption, required, description, argName, true, ',', 1);
    }

    public OptionsBuilder addOption(String longOption, String shortOption, boolean required, String description,
            String argName, boolean argRequired, char argValueSeparator, int argsCount) {
        Option option = new Option(shortOption, longOption, true, description);
        option.setArgName(argName);
        option.setRequired(required);
        option.setOptionalArg(argRequired);
        option.setValueSeparator(argValueSeparator);
        option.setArgs(argsCount);
        options.add(option);
        return this;
    }

    public OptionsBuilder group(String... options) {
        this.goups.add(options);
        return this;
    }

    public Options create() {
        return null;
    }
}