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

org.arquillian.cube.impl.client.CubeLifecycleController Maven / Gradle / Ivy

package org.arquillian.cube.impl.client;

import org.arquillian.cube.spi.Cube;
import org.arquillian.cube.spi.CubeRegistry;
import org.arquillian.cube.spi.event.CreateCube;
import org.arquillian.cube.spi.event.DestroyCube;
import org.arquillian.cube.spi.event.PreRunningCube;
import org.arquillian.cube.spi.event.StartCube;
import org.arquillian.cube.spi.event.StopCube;
import org.jboss.arquillian.core.api.annotation.Observes;

public class CubeLifecycleController {

    public void create(@Observes CreateCube event, CubeRegistry registry) {
        validateAndGet(registry, event.getCubeId()).create();
    }

    public void start(@Observes StartCube event, CubeRegistry registry) {
        validateAndGet(registry, event.getCubeId()).start();
    }

    public void stop(@Observes StopCube event, CubeRegistry registry) {
        validateAndGet(registry, event.getCubeId()).stop();
    }

    public void destroy(@Observes DestroyCube event, CubeRegistry registry) {
        validateAndGet(registry, event.getCubeId()).destroy();
    }

    public void changeToPreRunning(@Observes PreRunningCube event, CubeRegistry registry) {
        validateAndGet(registry, event.getCubeId()).changeToPreRunning();
    }

    private Cube validateAndGet(CubeRegistry registry, String cubeId) {
        Cube cube = registry.getCube(cubeId);
        if(cube == null) {
            throw new IllegalArgumentException("No cube with id " + cubeId + " found in registry");
        }
        return cube;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy