63 lines
2.3 KiB
Java
63 lines
2.3 KiB
Java
package org.gcube.data.publishing.gCatFeeder.service.engine.impl;
|
|
|
|
import java.util.Collection;
|
|
|
|
import javax.inject.Inject;
|
|
|
|
import org.gcube.data.publishing.gCatFeeder.service.engine.CatalogueControllersManager;
|
|
import org.gcube.data.publishing.gCatFeeder.service.engine.CollectorsManager;
|
|
import org.gcube.data.publishing.gCatFeeder.service.engine.ExecutionManager;
|
|
import org.gcube.data.publishing.gCatFeeder.service.engine.FeederEngine;
|
|
import org.gcube.data.publishing.gCatFeeder.service.engine.PersistenceManager;
|
|
import org.gcube.data.publishing.gCatFeeder.service.model.ExecutionDescriptor;
|
|
import org.gcube.data.publishing.gCatFeeder.service.model.ExecutionDescriptorFilter;
|
|
import org.gcube.data.publishing.gCatFeeder.service.model.ExecutionRequest;
|
|
import org.gcube.data.publishing.gCatFeeder.service.model.fault.CollectorNotFound;
|
|
import org.gcube.data.publishing.gCatFeeder.service.model.fault.DescriptorNotFound;
|
|
import org.gcube.data.publishing.gCatFeeder.service.model.fault.ElementNotFound;
|
|
import org.gcube.data.publishing.gCatFeeder.service.model.fault.InvalidRequest;
|
|
import org.gcube.data.publishing.gCatFeeder.service.model.fault.PersistenceError;
|
|
|
|
|
|
public class FeederEngineImpl implements FeederEngine {
|
|
|
|
@Inject
|
|
private ExecutionManager executions;
|
|
@Inject
|
|
private CollectorsManager crawlers;
|
|
@Inject
|
|
private CatalogueControllersManager catalogues;
|
|
@Inject
|
|
private PersistenceManager persistence;
|
|
|
|
@Override
|
|
public ExecutionDescriptor submit(ExecutionRequest req) throws InternalError, PersistenceError, InvalidRequest {
|
|
try{
|
|
verifyRequest(req);
|
|
ExecutionDescriptor related=persistence.create(req);
|
|
executions.submit(related);
|
|
return related;
|
|
}catch(CollectorNotFound | DescriptorNotFound e) {
|
|
throw new InvalidRequest(e);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public Collection<ExecutionDescriptor> get(ExecutionDescriptorFilter filter) throws PersistenceError, InvalidRequest {
|
|
return persistence.get(filter);
|
|
}
|
|
|
|
@Override
|
|
public ExecutionDescriptor getById(String id) throws PersistenceError, ElementNotFound, InvalidRequest {
|
|
return persistence.getById(id);
|
|
}
|
|
|
|
|
|
private void verifyRequest(ExecutionRequest request) throws InternalError,CollectorNotFound,DescriptorNotFound{
|
|
// for each requested source check if available
|
|
// for each requested target check if available
|
|
|
|
}
|
|
|
|
}
|