package org.ovirt.engine.api.restapi.resource; import org.ovirt.engine.api.model.Nic; import org.ovirt.engine.core.common.businessentities.network.VmNetworkInterface; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; public abstract class AbstractBackendNicsResource extends AbstractBackendCollectionResource<Nic, VmNetworkInterface> { private Guid parentId; private VdcQueryType queryType; public AbstractBackendNicsResource(Guid parentId, VdcQueryType queryType) { super(Nic.class, VmNetworkInterface.class); this.parentId = parentId; this.queryType = queryType; } public VmNetworkInterface lookupEntity(Guid id) { for (VmNetworkInterface entity : getBackendCollection(queryType, new IdQueryParameters(parentId))) { if (matchEntity(entity, id)) { return entity; } } return null; } protected <T> boolean matchEntity(VmNetworkInterface entity, T id) { return id != null && id.equals(entity.getId()); } protected boolean matchEntity(VmNetworkInterface entity, String name) { return name != null && name.equals(entity.getName()); } protected class NicResolver extends EntityIdResolver<Guid> { private String name; NicResolver(String name) { this.name = name; } private VmNetworkInterface lookupEntity(Guid id, String name) { for (VmNetworkInterface entity : getBackendCollection(queryType, new IdQueryParameters(parentId))) { if (matchEntity(entity, id) || matchEntity(entity, name)) { return entity; } } return null; } @Override public VmNetworkInterface lookupEntity(Guid id) throws BackendFailureException { return lookupEntity(id, name); } } }