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

net.java.dev.vcc.spi.AbstractDatacenterResourceGroup Maven / Gradle / Ivy

Go to download

The API for control of virtual computers running on a virtual computer host

The newest version!
package net.java.dev.vcc.spi;

import net.java.dev.vcc.api.Computer;
import net.java.dev.vcc.api.ComputerTemplate;
import net.java.dev.vcc.api.DatacenterResourceGroup;
import net.java.dev.vcc.api.Host;
import net.java.dev.vcc.api.HostResourceGroup;
import net.java.dev.vcc.api.ManagedObjectId;

import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

/**
 * The base class from which all Service Provider Implementations map a resource group from.
 */
public abstract class AbstractDatacenterResourceGroup
        extends AbstractManagedObject
        implements DatacenterResourceGroup {
    protected AbstractDatacenterResourceGroup(ManagedObjectId resourceGroupManagedObjectId) {
        super(resourceGroupManagedObjectId);
    }

    /**
     * {@inheritDoc}
     */
    public Set getComputerTemplates() {
        return Collections.emptySet();
    }

    /**
     * {@inheritDoc}
     */
    public Set getHosts() {
        return Collections.emptySet();
    }

    /**
     * {@inheritDoc}
     */
    public Set getDatacenterResourceGroups() {
        return Collections.emptySet();
    }

    /**
     * {@inheritDoc}
     */
    public Set getAllComputers() {
        Set result = new HashSet();
        for (DatacenterResourceGroup group : getDatacenterResourceGroups()) {
            result.addAll(group.getAllComputers());
        }
        for (Host host : getHosts()) {
            result.addAll(host.getAllComputers());
        }
        return result;
    }

    /**
     * {@inheritDoc}
     */
    public Set getAllComputerTemplates() {
        Set result = new HashSet(getComputerTemplates());
        for (DatacenterResourceGroup group : getDatacenterResourceGroups()) {
            result.addAll(group.getAllComputerTemplates());
        }
        for (Host host : getHosts()) {
            result.addAll(host.getAllComputerTemplates());
        }
        return result;
    }

    /**
     * {@inheritDoc}
     */
    public Set getAllHosts() {
        Set result = new HashSet(getHosts());
        for (DatacenterResourceGroup group : getDatacenterResourceGroups()) {
            result.addAll(group.getAllHosts());
        }
        return result;
    }

    /**
     * {@inheritDoc}
     */
    public Set getAllHostResourceGroups() {
        Set result = new HashSet();
        for (DatacenterResourceGroup group : getDatacenterResourceGroups()) {
            result.addAll(group.getAllHostResourceGroups());
        }
        for (Host host : getHosts()) {
            result.addAll(host.getAllHostResourceGroups());
        }
        return result;
    }

    /**
     * {@inheritDoc}
     */
    public Set getAllDatacenterResourceGroups() {
        Set result = new HashSet(getDatacenterResourceGroups());
        for (DatacenterResourceGroup group : getDatacenterResourceGroups()) {
            result.addAll(group.getAllDatacenterResourceGroups());
        }
        return result;
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy