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

com.abiquo.apiclient.domain.options.EnterpriseListOptions Maven / Gradle / Ivy

The newest version!
/**
 * Copyright (C) 2008 Abiquo Holdings S.L.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.abiquo.apiclient.domain.options;

import java.util.HashMap;
import java.util.Map;

import com.abiquo.apiclient.domain.options.ListOptions.BaseOptionsBuilder;

public class EnterpriseListOptions extends BaseOptions
{
    protected EnterpriseListOptions(final Map queryParams)
    {
        super(queryParams);
    }

    public static Builder builder()
    {
        return new Builder();
    }

    public static class Builder extends BaseOptionsBuilder
    {
        private Integer idPricingTemplate;

        private Integer idScope;

        private Boolean included;

        private final Map properties = new HashMap<>();

        public Builder idPricingTemplate(final int idPricingTemplate)
        {
            this.idPricingTemplate = idPricingTemplate;
            return self();
        }

        public Builder idScope(final int idScope)
        {
            this.idScope = idScope;
            return self();
        }

        public Builder included(final boolean included)
        {
            this.included = included;
            return self();
        }

        public Builder withProperty(final String key, final String value)
        {
            properties.put(key, value);
            return this;
        }

        @Override
        protected Map buildParameters()
        {
            Map params = super.buildParameters();
            putIfPresent("idPricingTemplate", idPricingTemplate, params);
            putIfPresent("idScope", idScope, params);
            putIfPresent("included", included, params);
            properties.entrySet()
                .forEach(e -> putIfPresent("prop." + e.getKey(), e.getValue(), params));
            return params;
        }

        @Override
        public EnterpriseListOptions build()
        {
            return new EnterpriseListOptions(buildParameters());
        }

        @Override
        protected Builder self()
        {
            return this;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy