📄 viewfactory.java
字号:
Map map = new HashMap(); while (iter.hasNext()) { View view = (View) iter.next(); Membership membership = view.getMembership(); if (membership != null) { Collection memberColl = membership.getMemberCollection(); if (memberColl != null) { Iterator iterMember = (Iterator) memberColl.iterator(); while (iterMember != null && iterMember.hasNext()) { Member member = (Member) iterMember.next(); if (member.getType().equals("user")) { String name = member.getContent(); if (name.equals(oldName)) { member.setContent(newName); } } } } } view.setMembership(membership); map.put(view.getName(), view); } m_views.clear(); Views views = new Views(); views.setViewCollection((Collection) map.values()); saveViews(views); } } /** * When this method is called users name is changed. Also overwrites the * "views.xml" file */ /* * public synchronized void renameGroup(String oldName, String newName) * throws Exception { * // Check if the user exists if(oldName != null || !oldName.equals("")) { // * Rename the group in the view. Enumeration viewKeys = * (Enumeration)m_views.values(); View view; * while(viewKeys.hasMoreElements()) { view = * (View)m_views.get((String)viewKeys.nextElement()); Membership membership = * view.getMembership(); Enumeration enummember = * membership.enumerateMember(); while(enummember.hasMoreElements()) { * Member member = (Member)enummember.nextElement(); * if(member.getContent().equals(oldName)) { * if(member.getType().equals("group")) { membership.removeMember(member); * member.setContent(newName); membership.addMember(member); break; } } } } } * else { throw new Exception("ViewFactory:rename Invalid view name:" + * oldName ); } // Saves into "views.xml" file Collection coll = * (Collection) m_views.values(); Views views = new Views(); * views.setViewCollection(coll); saveViews(views); } */ /** * Removes the group from the list of groups. Then overwrites to the * "views.xml" */ /* * public synchronized void deleteGroup(String name) throws Exception { // * Check if the user exists if(name != null || !name.equals("")) { // Remove * the user in the view. Enumeration viewKeys = * (Enumeration)m_views.values(); View view; * while(viewKeys.hasMoreElements()) { view = * (View)m_views.get((String)viewKeys.nextElement()); Membership membership = * view.getMembership(); Enumeration enummember = * membership.enumerateMember(); while(enummember.hasMoreElements()) { * Member member = (Member)enummember.nextElement(); * if(member.getContent().equals(name)) { * if(member.getType().equals("group")) { membership.removeMember(member); * break; } } } } } else { throw new Exception("ViewFactory:delete Invalid * group name:" + name ); } * // Saves into "views.xml" file Collection coll = (Collection) * m_views.values(); Views views = new Views(); * views.setViewCollection(coll); saveViews(views); } */ /** * When this method is called views name is changed. Also overwrites the * "views.xml" file */ public synchronized void renameView(String oldName, String newName) throws Exception { View view; // Check if the group exists if (oldName != null || !oldName.equals("") || newName != "" || oldName != "") { if (m_views.containsKey(oldName)) { view = (View) m_views.get(oldName); // Remove the view. m_views.remove(oldName); view.setName(newName); m_views.put(newName, view); } else throw new Exception("ViewFactory:rename View doesnt exist:" + oldName); } else { throw new Exception("ViewFactory:rename Invalid view name:" + oldName); } // Saves into "views.xml" file Collection coll = (Collection) m_views.values(); Views views = new Views(); views.setViewCollection(coll); saveViews(views); } /** * When this method is called view is to be deleted. Also overwrites the * "views.xml" file */ public synchronized void deleteView(String name) throws Exception { // Check if the view exists if (name == null || name.equals("")) { throw new Exception("ViewFactory:deleteView " + name); } else if (!m_views.containsKey(name)) { throw new Exception("ViewFactory:deleteView View:" + name + " not found "); } else { m_views.remove(name); } // Saves into "views.xml" file Views views = new Views(); Collection viewList = (Collection) m_views.values(); views.setViewCollection(viewList); saveViews(views); } /** */ public synchronized void saveViews(Views views) throws IOException, MarshalException, ValidationException { // make a backup and save to xml Viewinfo vinfo = new Viewinfo(); Header header = oldHeader; vinfo.setViews(views); header.setCreated(EventConstants.formatToString(new Date())); vinfo.setHeader(header); // Saves into "views.xml" file // File ofile = ConfigFileConstants.getFile(ConfigFileConstants.VIEWS_CONF_FILE_NAME); // marshall to a string first, then write the string to the file. This // way the original config // isn't lost if the xml from the marshall is hosed. StringWriter stringWriter = new StringWriter(); Marshaller.marshal(vinfo, stringWriter); if (stringWriter.toString() != null) { FileWriter fileWriter = new FileWriter(ofile); fileWriter.write(stringWriter.toString()); fileWriter.flush(); fileWriter.close(); } // clear out the internal structure and reload it m_views.clear(); Enumeration en = views.enumerateView(); while (en.hasMoreElements()) { View curView = (View) en.nextElement(); m_views.put(curView.getName(), curView); } } /** */ public String getCategoryComments(String viewName, String categoryName) { View view = (View) m_views.get(viewName); Categories categories = view.getCategories(); Collection category = (Collection) categories.getCategoryCollection(); Iterator iter = category.iterator(); org.opennms.netmgt.config.views.Category cat; while (iter.hasNext()) { cat = (org.opennms.netmgt.config.views.Category) iter.next(); String name = cat.getLabel(); if (name != null && name.equals(categoryName)) { return stripWhiteSpace(cat.getCategoryComment()); } } return null; } private String stripWhiteSpace(String comment) { StringBuffer buffer = new StringBuffer(comment); try { RE whiteSpaceRE = new RE("[:space:]"); for (int i = 0; i < buffer.length(); i++) { int start = i; int end = start + 1; boolean foundWhiteSpace = false; while (end < buffer.length() && whiteSpaceRE.match(buffer.substring(end - 1, end))) { foundWhiteSpace = true; end++; } if (foundWhiteSpace) { buffer.replace(start, end - 1, " "); } } } catch (RESyntaxException e) { return comment; } return buffer.toString(); } /** * Return a <code>Map</code> of usernames to user instances. */ public View getView(String name) { return (View) m_views.get(name); } /** * Return a <code>Map</code> of usernames to user instances. */ public Map getViews() { return m_views; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -