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

org.sdmxsource.sdmx.api.model.superbeans.SuperBeans Maven / Gradle / Ivy

/*******************************************************************************
 * Copyright (c) 2013 Metadata Technology Ltd.
 *
 * All rights reserved. This program and the accompanying materials are made 
 * available under the terms of the GNU Lesser General Public License v 3.0 
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/lgpl.html
 *
 * This file is part of the SDMX Component Library.
 *
 * The SDMX Component Library is free software: you can redistribute it and/or 
 * modify it under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation, either version 3 of the License,
 * or (at your option) any later version.
 *
 * The SDMX Component Library 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 Lesser 
 * General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License 
 * along with The SDMX Component Library If not, see 
 * http://www.gnu.org/licenses/lgpl.
 *
 * Contributors:
 * Metadata Technology - initial API and implementation
 ******************************************************************************/
package org.sdmxsource.sdmx.api.model.superbeans;

import org.sdmxsource.sdmx.api.model.superbeans.base.MaintainableSuperBean;
import org.sdmxsource.sdmx.api.model.superbeans.base.SuperBean;
import org.sdmxsource.sdmx.api.model.superbeans.categoryscheme.CategorySchemeSuperBean;
import org.sdmxsource.sdmx.api.model.superbeans.codelist.CodelistSuperBean;
import org.sdmxsource.sdmx.api.model.superbeans.codelist.HierarchicalCodelistSuperBean;
import org.sdmxsource.sdmx.api.model.superbeans.conceptscheme.ConceptSchemeSuperBean;
import org.sdmxsource.sdmx.api.model.superbeans.datastructure.DataStructureSuperBean;
import org.sdmxsource.sdmx.api.model.superbeans.datastructure.DataflowSuperBean;
import org.sdmxsource.sdmx.api.model.superbeans.metadata.MetadataStructureSuperBean;
import org.sdmxsource.sdmx.api.model.superbeans.process.ProcessSuperBean;
import org.sdmxsource.sdmx.api.model.superbeans.registry.ProvisionAgreementSuperBean;
import org.sdmxsource.sdmx.api.model.superbeans.registry.RegistrationSuperBean;

import java.util.Set;


/**
 * SuperBeans is a container for objects of type SuperBean
 *
 * @author Matt Nelson
 * @see SuperBean
 */
public interface SuperBeans {

    /**
     * Merges the super
     *
     * @param superBeans the super beans
     */
    void merge(SuperBeans superBeans);


    /**
     * Add maintainable.
     *
     * @param bean the bean
     */
    void addMaintainable(MaintainableSuperBean bean);

    //ADD

    /**
     * Add a CategorySchemeSuperBean to this container, overwrite if one already exists with the same URN
     *
     * @param bean the bean
     */
    void addCategoryScheme(CategorySchemeSuperBean bean);

    /**
     * Add a CodelistSuperBean to this container, overwrite if one already exists with the same URN
     *
     * @param bean the bean
     */
    void addCodelist(CodelistSuperBean bean);

    /**
     * Add a ConceptSchemeSuperBean to this container, overwrite if one already exists with the same URN
     *
     * @param bean the bean
     */
    void addConceptScheme(ConceptSchemeSuperBean bean);

    /**
     * Add a DataflowSuperBean to this container, overwrite if one already exists with the same URN
     *
     * @param bean the bean
     */
    void addDataflow(DataflowSuperBean bean);

    /**
     * Add a HierarchicalCodelistSuperBean to this container, overwrite if one already exists with the same URN
     *
     * @param bean the bean
     */
    void addHierarchicalCodelist(HierarchicalCodelistSuperBean bean);

    /**
     * Add a HierarchicalCodelistSuperBean to this container, overwrite if one already exists with the same URN
     *
     * @param bean the bean
     */
    void addMetadataStructure(MetadataStructureSuperBean bean);

    /**
     * Add a DataStructureSuperBean to this container, overwrite if one already exists with the same URN
     *
     * @param bean the bean
     */
    void addDataStructure(DataStructureSuperBean bean);

    /**
     * Add a ProvisionAgreementSuperBean to this container, overwrite if one already exists with the same URN
     *
     * @param bean the bean
     */
    void addProvision(ProvisionAgreementSuperBean bean);

    /**
     * Add a ProcessSuperBean to this container, overwrite if one already exists with the same URN
     *
     * @param bean the bean
     */
    void addProcess(ProcessSuperBean bean);

    /**
     * Add a RegistrationSuperBean to this container, overwrite if one already exists with the same URN
     *
     * @param bean the bean
     */
    void addRegistration(RegistrationSuperBean bean);

    //REMOVE

    /**
     * Remove the given CategorySchemeSuperBean from this container, do nothing if it is not in this container
     *
     * @param bean the bean
     */
    void removeCategoryScheme(CategorySchemeSuperBean bean);

    /**
     * Remove the given CategorySchemeSuperBean from this container, do nothing if it is not in this container
     *
     * @param bean the bean
     */
    void removeCodelist(CodelistSuperBean bean);

    /**
     * Remove the given CategorySchemeSuperBean from this container, do nothing if it is not in this container
     *
     * @param bean the bean
     */
    void removeConceptScheme(ConceptSchemeSuperBean bean);

    /**
     * Remove the given DataflowSuperBean from this container, do nothing if it is not in this container
     *
     * @param bean the bean
     */
    void removeDataflow(DataflowSuperBean bean);

    /**
     * Remove the given HierarchicalCodelistSuperBean from this container, do nothing if it is not in this container
     *
     * @param bean the bean
     */
    void removeHierarchicalCodelist(HierarchicalCodelistSuperBean bean);

    /**
     * Remove the given DataStructureSuperBean from this container, do nothing if it is not in this container
     *
     * @param bean the bean
     */
    void removeDataStructure(DataStructureSuperBean bean);

    /**
     * Remove the given MetadataStructureSuperBean from this container, do nothing if it is not in this container
     *
     * @param bean the bean
     */
    void removeMetadataStructure(MetadataStructureSuperBean bean);

    /**
     * Remove the given ProvisionAgreementSuperBean from this container, do nothing if it is not in this container
     *
     * @param bean the bean
     */
    void removeProvision(ProvisionAgreementSuperBean bean);

    /**
     * Remove the given ProcessSuperBean from this container, do nothing if it is not in this container
     *
     * @param bean the bean
     */
    void removeProcess(ProcessSuperBean bean);

    /**
     * Remove the given RegistrationSuperBean from this container, do nothing if it is not in this container
     *
     * @param bean the bean
     */
    void removeRegistration(RegistrationSuperBean bean);

    //GET

    /**
     * Returns a copy of the DataflowSuperBean Set.  Returns an empty set if no DataflowSuperBeans are stored in this container
     *
     * @return dataflows
     */
    Set getDataflows();

    /**
     * Returns a copy of the CategorySchemeSuperBean Set.  Returns an empty set if no CategorySchemeSuperBeans are stored in this container
     *
     * @return category schemes
     */
    Set getCategorySchemes();

    /**
     * Returns a copy of the ConceptSchemeSuperBean Set.  Returns an empty set if no ConceptSchemeSuperBeans are stored in this container
     *
     * @return concept schemes
     */
    Set getConceptSchemes();

    /**
     * Returns a copy of the CodelistSuperBean Set.  Returns an empty set if no CodelistSuperBeans are stored in this container
     *
     * @return codelists
     */
    Set getCodelists();

    /**
     * Returns a copy of the HierarchicalCodelistSuperBean Set.  Returns an empty set if no HierarchicalCodelistSuperBeans are stored in this container
     *
     * @return hierarchical codelists
     */
    Set getHierarchicalCodelists();

    /**
     * Returns a copy of the DataStructureSuperBean Set.  Returns an empty set if no DataStructureSuperBean are stored in this container
     *
     * @return data structures
     */
    Set getDataStructures();

    /**
     * Returns a copy of the MetadataStructureSuperBean Set.  Returns an empty set if no MetadataStructureSuperBean are stored in this container
     *
     * @return metadata structures
     */
    Set getMetadataStructures();

    /**
     * Returns a copy of the ProvisionAgreementSuperBean Set.  Returns an empty set if no ProvisionAgreementSuperBeans are stored in this container
     *
     * @return provisions
     */
    Set getProvisions();

    /**
     * Returns a copy of the MaintainableSuperBean Set.  Returns an empty set if no MaintainableSuperBeans are stored in this container
     *
     * @return all maintainables
     */
    Set getAllMaintainables();

    /**
     * Returns a copy of the ProcessSuperBean Set.  Returns an empty set if no ProcessSuperBeans are stored in this container
     *
     * @return processes
     */
    Set getProcesses();

    /**
     * Returns a copy of the RegistrationSuperBean Set.  Returns an empty set if no RegistrationSuperBeans are stored in this container
     *
     * @return registartions
     */
    Set getRegistartions();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy