private Map<String, String> getServerByNodeId(String id) { Map<String, String> map = new LinkedHashMap<String, String>(); INode node = view.getNode(id); if (node == null) return map; if (INode.MONITOR.equals(node.getType())) { return map; } if (INode.ENTITY.equals(node.getType())) { EntityInfo entityinfo = view.getEntityInfo(node); if (entityinfo.getDeviceType() != null) { if ("_win".equals(entityinfo.getDeviceType()) || "_unix".equals(entityinfo.getDeviceType())) { map.put( entityinfo.getSvId(), entityinfo.getName() + "(" + entityinfo.getDeviceType() + ")"); return map; } } } IForkNode f = (IForkNode) node; List<String> ids = f.getSonList(); for (String newid : ids) { map.putAll(this.getServerByNodeId(newid)); } return map; }