summaryrefslogtreecommitdiff
path: root/src/plugins/emulator/src/com/motorola/studio/android/emulator/core/emulationui/EmuViewerNode.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/emulator/src/com/motorola/studio/android/emulator/core/emulationui/EmuViewerNode.java')
-rw-r--r--src/plugins/emulator/src/com/motorola/studio/android/emulator/core/emulationui/EmuViewerNode.java152
1 files changed, 152 insertions, 0 deletions
diff --git a/src/plugins/emulator/src/com/motorola/studio/android/emulator/core/emulationui/EmuViewerNode.java b/src/plugins/emulator/src/com/motorola/studio/android/emulator/core/emulationui/EmuViewerNode.java
new file mode 100644
index 0000000..f452760
--- /dev/null
+++ b/src/plugins/emulator/src/com/motorola/studio/android/emulator/core/emulationui/EmuViewerNode.java
@@ -0,0 +1,152 @@
+/*
+* Copyright (C) 2012 The Android Open Source Project
+*
+* 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 com.motorola.studio.android.emulator.core.emulationui;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * DESCRIPTION:
+ * This class represents a node in the tree presented in a emulation view
+ *
+ * RESPONSIBILITY:
+ * Guarantee the tree structure by maintaining the parent/child relationship
+ *
+ * COLABORATORS:
+ * None.
+ *
+ * USAGE:
+ * A class should construct an instance of this class whenever it wishes
+ * to add a node to an emulation view tree
+ */
+public class EmuViewerNode
+{
+ /**
+ * The parent node of this node
+ */
+ private final EmuViewerNode parent;
+
+ /**
+ * An id that identifies the node type.
+ * The id meaning is defined by the user
+ */
+ private final String nodeId;
+
+ /**
+ * The error message to use as the node label
+ * If <code>null</code>, use regular label resolution
+ */
+ private String errorMessage = null;
+
+ /**
+ * A set containing all children of this node
+ */
+ private final Set<EmuViewerNode> children = new HashSet<EmuViewerNode>();
+
+ /**
+ * Constructor.
+ *
+ * @param parent The parent node of this node
+ * @param nodeId An id that identifies the node type
+ */
+ public EmuViewerNode(EmuViewerNode parent, String nodeId)
+ {
+ this.parent = parent;
+ this.nodeId = nodeId;
+ }
+
+ /**
+ * Retrieves the node's parent
+ *
+ * @return The parent node
+ */
+ public EmuViewerNode getParent()
+ {
+ return parent;
+ }
+
+ /**
+ * Retrieves the id of this node. The id meaning is defined by the class user
+ *
+ * @return The id of this node
+ */
+ public String getNodeId()
+ {
+ return nodeId;
+ }
+
+ /**
+ * Adds a new child to this node
+ *
+ * @param child The child to be added to the node
+ */
+ public void addChild(EmuViewerNode child)
+ {
+ children.add(child);
+ }
+
+ /**
+ * Retrieves all this node's children
+ *
+ * @return A set containing all children of this node
+ */
+ public Set<EmuViewerNode> getChildren()
+ {
+ return children;
+ }
+
+ /**
+ * Sets an error message to display as the node label.
+ * If <code>null</code>, the regular label resolution is used
+ *
+ * @param errorMessage An error message to display or <code>null</code> if it is
+ * desired to have regular label resolution for this node
+ */
+ public void setErrorMessage(String errorMessage)
+ {
+ this.errorMessage = errorMessage;
+ }
+
+ /**
+ * Tests if this node has an error message assigned
+ *
+ * @return True if an error message was assigned; false otherwise
+ */
+ public boolean hasErrorMessage()
+ {
+ return errorMessage != null;
+ }
+
+ /**
+ * Retrieves the error message assigned to this node
+ *
+ * @return The error message, or <code>null</code> if no error message was assigned
+ */
+ public String getErrorMessage()
+ {
+ return errorMessage;
+ }
+
+ /**
+ * @see java.lang.Object#toString()
+ */
+ @Override
+ public String toString()
+ {
+ // For generic/intermediate nodes use the node id itself
+ return getNodeId();
+ }
+}