package org.ovirt.engine.api.restapi.resource; import javax.ws.rs.core.Response; import org.ovirt.engine.api.model.Network; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; public abstract class AbstractBackendNetworkResource extends AbstractBackendSubResource<Network, org.ovirt.engine.core.common.businessentities.network.Network> { protected AbstractBackendNetworksResource parent; private VdcActionType removeAction; public AbstractBackendNetworkResource( String id, AbstractBackendNetworksResource parent, VdcActionType removeAction) { super(id, Network.class, org.ovirt.engine.core.common.businessentities.network.Network.class); this.parent = parent; this.removeAction = removeAction; } public Network get() { org.ovirt.engine.core.common.businessentities.network.Network entity = parent.lookupNetwork(guid); if (entity == null) { return notFound(); } return addLinks(map(entity)); } AbstractBackendNetworksResource getParent() { return parent; } protected abstract VdcActionParametersBase getRemoveParameters(org.ovirt.engine.core.common.businessentities.network.Network entity); public Response remove() { get(); org.ovirt.engine.core.common.businessentities.network.Network entity = parent.lookupNetwork(asGuidOr404(id)); if (entity == null) { notFound(); return null; } return performAction(removeAction, getRemoveParameters(entity)); } }