You've been checkstyled!
Change-Id: I0425764b2f3b07bc224a387ab7d544c6b360c691
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/UiSharedTopologyModel.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/UiSharedTopologyModel.java
index 1e1374a..b9b5e8c 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/UiSharedTopologyModel.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/UiSharedTopologyModel.java
@@ -16,6 +16,7 @@
package org.onosproject.ui.impl.topo.model;
+import org.onosproject.ui.impl.topo.UiTopoSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -28,20 +29,43 @@
private static final Logger log =
LoggerFactory.getLogger(UiSharedTopologyModel.class);
- private static UiSharedTopologyModel singleton = null;
private UiSharedTopologyModel() {
// TODO: set up core model listeners and build the state of the model
}
- public void register(UiTopoLayout layout) {
- log.info("Registering topology layout {}", layout);
- // TODO: register the view
+ // TODO: Note to Thomas (or others)..
+ // Don't we have a common pattern for adding/removing listeners and
+ // invoking them when things happen?
+
+
+ /**
+ * Registers a UI topology session with the topology model.
+ *
+ * @param session the session to register
+ */
+ public void register(UiTopoSession session) {
+ log.info("Registering topology session {}", session);
+ // TODO: register the session
}
- public void unregister(UiTopoLayout layout) {
- log.info("Unregistering topology layout {}", layout);
- // TODO: unregister the view
+ /**
+ * Unregisters a UI topology session from the topology model.
+ *
+ * @param session the session to unregister
+ */
+ public void unregister(UiTopoSession session) {
+ log.info("Unregistering topology session {}", session);
+ // TODO: unregister the session
+ }
+
+ /**
+ * Bill Pugh Singleton pattern. INSTANCE won't be instantiated until the
+ * LazyHolder class is loaded via a call to the instance() method below.
+ */
+ private static class LazyHolder {
+ private static final UiSharedTopologyModel INSTANCE =
+ new UiSharedTopologyModel();
}
/**
@@ -49,11 +73,7 @@
*
* @return the singleton topology model
*/
- public static synchronized UiSharedTopologyModel instance() {
- if (singleton == null) {
- log.info("Instantiating Singleton.");
- singleton = new UiSharedTopologyModel();
- }
- return singleton;
+ public static UiSharedTopologyModel instance() {
+ return LazyHolder.INSTANCE;
}
}
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/UiTopoLayout.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/UiTopoLayout.java
deleted file mode 100644
index b71b81e..0000000
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/model/UiTopoLayout.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright 2016 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.ui.impl.topo.model;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Base class for modeling the Topology View layout.
- * <p>
- * Note that an instance of this class will be created for each
- * {@link org.onosproject.ui.impl.UiWebSocket} connection, and will contain
- * the state of how the topology is laid out for the logged-in user.
- */
-public class UiTopoLayout {
- private final Logger log = LoggerFactory.getLogger(getClass());
-
- private final String username;
- private final UiSharedTopologyModel sharedModel;
-
- private boolean registered = false;
-
- /**
- * Creates a new topology layout.
- */
- public UiTopoLayout(String username) {
- this.username = username;
- this.sharedModel = UiSharedTopologyModel.instance();
- }
-
- /**
- * Initializes the layout; registering with the shared model.
- */
- public void init() {
- if (!registered) {
- sharedModel.register(this);
- registered = true;
- } else {
- log.warn("already registered");
- }
- }
-
- /**
- * Destroys the layout; unregistering from the shared model.
- */
- public void destroy() {
- if (!registered) {
- sharedModel.unregister(this);
- } else {
- log.warn("already unregistered");
- }
- }
-
- @Override
- public String toString() {
- return String.format("{UiTopoLayout for user <%s>}", username);
- }
-}