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

de.placeblock.commandapi.core.parser.ParsedCommandBranch Maven / Gradle / Ivy

package de.placeblock.commandapi.core.parser;

import de.placeblock.commandapi.core.exception.CommandParseException;
import de.placeblock.commandapi.core.tree.ParameterTreeCommand;
import de.placeblock.commandapi.core.tree.TreeCommand;
import lombok.Getter;

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

/**
 * Author: Placeblock
 */
@SuppressWarnings("unused")
@Getter
public class ParsedCommandBranch extends ParameterHolder {
    private final StringReader reader;
    private final List> branch;
    private CommandParseException exception;

    public ParsedCommandBranch(StringReader reader) {
        super();
        this.reader = reader;
        this.branch = new ArrayList<>();
    }

    public ParsedCommandBranch(ParsedCommandBranch parsedCommandBranch) {
        super(new HashMap<>(parsedCommandBranch.getParsedParameters()));
        this.reader = new StringReader(parsedCommandBranch.getReader());
        this.branch = new ArrayList<>(parsedCommandBranch.getBranch());
        this.exception = parsedCommandBranch.getException();
    }

    public TreeCommand getLastParsedTreeCommand() {
        if (this.branch.size() == 0) return null;
        return this.branch.get(this.branch.size() - 1);
    }

    public void addParsedParameter(ParameterTreeCommand command, Object parameter) {
        this.parsedParameters.put(command, parameter);
    }


    public void setException(TreeCommand command, CommandParseException exception) {
        this.exception = exception;
    }

}