package net.codjo.control.server.plugin;
import net.codjo.aspect.AspectManager;
import net.codjo.aspect.util.TransactionalPoint;
import net.codjo.control.common.IntegrationPlan;
import net.codjo.control.common.loader.ApplicationIP;
import net.codjo.control.common.loader.IntegrationDefinition;
import net.codjo.control.common.loader.TransfertData;
import net.codjo.control.common.message.TransferJobRequest;
/**
*
*/
class ControlPreference {
private ApplicationIP applicationIP;
private TransactionalPoint dispatchPoint;
ControlPreference(ApplicationIP applicationIP, AspectManager aspectManager) {
this.applicationIP = applicationIP;
dispatchPoint = new TransactionalPoint(ControlServerPlugin.DISPATCH_ASPECT_POINT_ID, aspectManager);
}
public TransactionalPoint getDispatchPoint() {
return dispatchPoint;
}
public IntegrationPlan getPlan(String quarantineTable) {
return applicationIP.getPlan(quarantineTable);
}
public TransfertData getTransfertData(TransferJobRequest request) {
for (IntegrationDefinition definition : applicationIP.getIntegrationDefinitions()) {
TransfertData transfert = definition.getTransfert();
if (transfert != null
&& transfert.getQuarantine().equals(request.getQuarantine())
&& transfert.getUser().equals(request.getUserQuarantine())) {
return transfert;
}
}
throw new IllegalArgumentException("M�canisme de transfert entre les tables '"
+ request.getQuarantine()
+ "' et '"
+ request.getUserQuarantine()
+ "' est inconnu (absent du fichier META-INF/ApplicationIP.xml)");
}
}