Skip to content
Snippets Groups Projects
Commit 83296f4b authored by Simon Spinner's avatar Simon Spinner
Browse files

Remove DelegationProvider interface (now obsolete, uses RabbitMQ

instead)
parent 3eb1477a
No related branches found
No related tags found
No related merge requests found
package tools.descartes.prisma.core.agent;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
import org.eclipse.emf.cdo.CDOAdapter;
import org.eclipse.emf.cdo.CDOObject;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.ecore.EObject;
import tools.descartes.prisma.core.MessageBus;
......@@ -28,63 +23,10 @@ import tools.descartes.prisma.core.scopes.AgentScope;
import tools.descartes.prisma.core.scopes.ModelNotification;
import tools.descartes.prisma.core.scopes.SystemGlobalScope;
import tools.descartes.prisma.model.scope.Agent;
import tools.descartes.prisma.model.scope.DelegatedObject;
import tools.descartes.prisma.model.scope.ScopeConfiguration;
import tools.descartes.prisma.model.scope.ScopePackage;
import tools.descartes.prisma.model.skeleton.ModelSkeleton;
public class AgentController {
private class DelegationRepositoryAdapter implements CDOAdapter {
private Agent target;
@Override
public void notifyChanged(Notification msg) {
if (msg.getFeatureID(
ScopeConfiguration.class) == ScopePackage.SCOPE_CONFIGURATION__DELEGATED_OBJECTS) {
if (msg.getEventType() == Notification.ADD) {
DelegatedObject delegatedElement = (DelegatedObject) msg.getNewValue();
notifyAddDelegatedElement(delegatedElement.getObject(),
delegatedElement.getAdditionalProperties().map());
} else if (msg.getEventType() == Notification.ADD_MANY) {
List<?> newValues = (List<?>) msg.getNewValue();
for (Object curValue : newValues) {
DelegatedObject delegatedElement = (DelegatedObject) curValue;
notifyAddDelegatedElement(delegatedElement.getObject(),
delegatedElement.getAdditionalProperties().map());
}
} else if (msg.getEventType() == Notification.REMOVE) {
DelegatedObject delegatedElement = (DelegatedObject) msg.getOldValue();
notifyRemoveDelegatedElement(delegatedElement.getObject(),
delegatedElement.getAdditionalProperties().map());
} else if (msg.getEventType() == Notification.REMOVE_MANY) {
List<?> oldValues = (List<?>) msg.getOldValue();
for (Object curValue : oldValues) {
DelegatedObject delegatedElement = (DelegatedObject) curValue;
notifyRemoveDelegatedElement(delegatedElement.getObject(),
delegatedElement.getAdditionalProperties().map());
}
}
}
}
@Override
public Agent getTarget() {
return target;
}
@Override
public void setTarget(Notifier newTarget) {
target = (Agent) target;
}
@Override
public boolean isAdapterForType(Object type) {
return (type instanceof Agent);
}
}
private static final int MAX_RETRIES = 3;
private Agent agent;
......@@ -98,18 +40,6 @@ public class AgentController {
private ModelSkeletonAdapterFactory adapterFactory;
private RemoveFilter removeFilter;
private DelegationProvider delegationProvider = new DelegationProvider() {
@Override
public boolean needsDelegation(EObject object) {
return false;
}
@Override
public Map<String, String> getAdditionalProperties(EObject object) {
return Collections.emptyMap();
}
};
private volatile boolean running = false;
public AgentController(ModelRepository repository, MessageBus messageBus, String scopePath, String id) {
......@@ -131,10 +61,6 @@ public class AgentController {
return ownership;
}
public void setDelegationProvider(DelegationProvider provider) {
this.delegationProvider = provider;
}
public void setRemoveFilter(RemoveFilter filter) {
this.removeFilter = filter;
}
......@@ -230,14 +156,7 @@ public class AgentController {
// Deliver the notifications for the delegated objects which were
// registered before this agent started.
for (DelegatedObject existingDelegation : this.scope.getScopeConfiguration().getDelegatedObjects()) {
notifyAddDelegatedElement(existingDelegation.getObject(),
existingDelegation.getAdditionalProperties().map());
}
// Listen for changes in the delegated elements list in our scope so
// that we can react to delegation requests we are interested in.
this.scope.getScopeConfiguration().eAdapters().add(new DelegationRepositoryAdapter());
// TODO:
}
protected void stopAsync() {
......@@ -256,12 +175,6 @@ public class AgentController {
public void handleNotification(ModelNotification notification) {
}
protected void notifyAddDelegatedElement(EObject newElement, Map<String, String> additionalProperties) {
}
protected void notifyRemoveDelegatedElement(EObject oldElement, Map<String, String> additionalProperties) {
}
protected void checkRunning() {
if (!running) {
throw new IllegalStateException("The agent is not running.");
......
package tools.descartes.prisma.core.agent;
import java.util.Map;
import org.eclipse.emf.ecore.EObject;
public interface DelegationProvider {
boolean needsDelegation(EObject object);
Map<String, String> getAdditionalProperties(EObject object);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment