Enahnced link and host stores to extend general store.
diff --git a/core/api/src/main/java/org/onlab/onos/store/AbstractStore.java b/core/api/src/main/java/org/onlab/onos/store/AbstractStore.java
index efd0d03..5d76e0f 100644
--- a/core/api/src/main/java/org/onlab/onos/store/AbstractStore.java
+++ b/core/api/src/main/java/org/onlab/onos/store/AbstractStore.java
@@ -2,6 +2,8 @@
import org.onlab.onos.event.Event;
+import static com.google.common.base.Preconditions.checkState;
+
/**
* Base implementation of a store.
*/
@@ -12,12 +14,21 @@
@Override
public void setDelegate(D delegate) {
+ checkState(this.delegate == null || this.delegate == delegate,
+ "Store delegate already set");
this.delegate = delegate;
}
@Override
- public D getDelegate() {
- return delegate;
+ public void unsetDelegate(D delegate) {
+ if (this.delegate == delegate) {
+ this.delegate = null;
+ }
+ }
+
+ @Override
+ public boolean hasDelegate() {
+ return delegate != null;
}
/**