package org.ovirt.engine.core.bll.storage.pool; import java.util.ArrayList; import java.util.List; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.utils.ISingleAsyncOperation; import org.ovirt.engine.core.utils.ISingleAsyncOperationFactory; public abstract class ActivateDeactivateSingleAsyncOperationFactory implements ISingleAsyncOperationFactory { private List<VDS> vdss; private StorageDomain storageDomain; private StoragePool storagePool; protected List<VDS> getVdss() { return vdss; } protected StorageDomain getStorageDomain() { return storageDomain; } protected StoragePool getStoragePool() { return storagePool; } @Override public void initialize(List<?> parameters) { if (!(parameters.get(0) instanceof List)) { throw new IllegalArgumentException(); } List l = new ArrayList((List)parameters.get(0)); if (!l.isEmpty() && !(l.get(0) instanceof VDS)) { throw new IllegalArgumentException(); } vdss = (List<VDS>) l; if (parameters.get(1) != null && !(parameters.get(1) instanceof StorageDomain)) { throw new IllegalArgumentException(); } storageDomain = (StorageDomain) parameters.get(1); if (!(parameters.get(2) instanceof StoragePool)) { throw new IllegalArgumentException(); } storagePool = (StoragePool) parameters.get(2); } @Override public abstract ISingleAsyncOperation createSingleAsyncOperation(); }