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

com.bebound.plugins.beapp.model.Operation Maven / Gradle / Ivy

The newest version!
package com.bebound.plugins.beapp.model;

import com.bebound.plugins.beapp.model.parameter.ArrayParameter;
import com.bebound.plugins.beapp.model.parameter.FileParameter;
import com.bebound.plugins.beapp.model.parameter.Parameter;

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

public class Operation {

    private String name;
    private String description;
    private int id;
    private ArrayList requestParameters = new ArrayList<>();
    private ArrayList responseParameters = new ArrayList<>();

    public Operation() {
    }

    public int getOperationId() {
        return id;
    }

    public Operation setOperationId(int id) {
        this.id = id;
        return this;
    }

    public String getName() {
        return name;
    }

    public Operation setName(String name) {
        this.name = name;
        return this;
    }

    public ArrayList getRequestParameters() {
        return requestParameters;
    }

    public boolean containFileParameterInRequest() {
        return containFileParameter(requestParameters);
    }

    private boolean containFileParameter(List parameters) {
        for (Parameter parameter : parameters)
            if (parameter instanceof FileParameter)
                return ((FileParameter) parameter).getValue() != null;
            else if (parameter instanceof ArrayParameter)
                return containFileParameter(((ArrayParameter) parameter).getPrototype());
        return false;
    }

    public Parameter getRequestParameterByIndex(int index) {
        return requestParameters.get(index);
    }

    public Operation addRequestParameter(Parameter parameter) {
        requestParameters.add(parameter);
        return this;
    }

    public Operation addAllRequestParameters(ArrayList parameters) {
        requestParameters.addAll(parameters);
        return this;
    }

    public ArrayList getResponseParameters() {
        return responseParameters;
    }

    public Parameter getResponseParameterByIndex(int index) {
        return responseParameters.get(index);
    }

    public Operation addResponseParameter(Parameter parameter) {
        responseParameters.add(parameter);
        return this;
    }

    public Operation addAllResponseParameters(ArrayList parameters) {
        responseParameters.addAll(parameters);
        return this;
    }

    public boolean haveResponse() {
        return responseParameters.size() > 0;
    }

    public int getRequestMandatoryParamterCount() {
        int mandatoryParameterCount = 0;
        for (Parameter param : requestParameters)
            mandatoryParameterCount += param.isOptional() ? 0 : 1;
        return mandatoryParameterCount;
    }

    public int getResponseMandatoryParamterCount() {
        int mandatoryParameterCount = 0;
        for (Parameter param : responseParameters)
            mandatoryParameterCount += param.isOptional() ? 0 : 1;
        return mandatoryParameterCount;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy