| /* |
| * 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 static com.motorola.studio.android.common.log.StudioLogger.warn; |
| |
| import com.motorola.studio.android.emulator.core.exception.InstanceNotFoundException; |
| import com.motorola.studio.android.emulator.core.model.IAndroidEmulatorInstance; |
| import com.motorola.studio.android.emulator.core.utils.EmulatorCoreUtils; |
| |
| /** |
| * DESCRIPTION: |
| * This class represents the parent of all nodes in the tree presented in a emulation view |
| * It must have reference to the emulator host, so that the tree is separated in |
| * several emulator sub-trees |
| * |
| * RESPONSIBILITY: |
| * To be the root of the emulator tree and maintain information about which emulator is |
| * owner of the sub-tree that has this node as root |
| * |
| * COLABORATORS: |
| * None. |
| * |
| * USAGE: |
| * A class should construct an instance of this class whenever an emulator information is to be |
| * included at an emulation view |
| */ |
| public class EmuViewerRootNode extends EmuViewerNode |
| { |
| /** |
| * The emulator identifier (serial port number) |
| */ |
| private final String serial; |
| |
| /** |
| * Constructor. |
| * |
| * @param identifier The identifier of the emulator that owns the sub-tree starting at this node |
| */ |
| public EmuViewerRootNode(String identifier) |
| { |
| super(null, "ROOT"); |
| this.serial = identifier; |
| } |
| |
| /** |
| * Gets the host of the emulator that owns the sub-tree starting at this node |
| * |
| * @return The emulator host |
| */ |
| public String getEmulatorIdentifier() |
| { |
| return serial; |
| } |
| |
| /** |
| * @see java.lang.Object#toString() |
| */ |
| @Override |
| public String toString() |
| { |
| String classString; |
| |
| // For emulator root nodes, the toString method should provide the emulator instance |
| // name. If it is not possible to retrieve the instance name, print the host itself |
| String serial = getEmulatorIdentifier(); |
| try |
| { |
| IAndroidEmulatorInstance instance = |
| EmulatorCoreUtils.getAndroidInstanceByIdentifier(serial); |
| classString = instance.getName(); |
| } |
| catch (InstanceNotFoundException e) |
| { |
| warn("The instance could not be found for retrieving its name. Using serial port instead."); |
| classString = serial; |
| } |
| |
| return classString; |
| } |
| } |