}
@CheckForNull
public ReplicationPackage createPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull ReplicationRequest request)
throws ReplicationPackageBuildingException {
ReplicationPackage replicationPackage;
if (ReplicationActionType.ADD.equals(request.getAction())) {
replicationPackage = createPackageForAdd(resourceResolver, request);
} else if (ReplicationActionType.DELETE.equals(request.getAction())) {
replicationPackage = new VoidReplicationPackage(request, type);
} else if (ReplicationActionType.POLL.equals(request.getAction())) {
replicationPackage = new VoidReplicationPackage(request, type);
} else {
throw new ReplicationPackageBuildingException("unknown action type "
+ request.getAction());
}
if (replicationPackage != null && replicationEventFactory != null) {
Dictionary<String, Object> dictionary = new Hashtable<String, Object>();
dictionary.put("replication.action", replicationPackage.getAction());
dictionary.put("replication.path", replicationPackage.getPaths());
replicationEventFactory.generateEvent(ReplicationEventType.PACKAGE_CREATED, dictionary);
}
return replicationPackage;
}