/******************************************************************************* * Copyright (c) 2007, 2008 Intel Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Intel Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.cdt.internal.ui.help; import java.util.ArrayList; import org.eclipse.help.IHelpResource; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.eclipse.cdt.ui.IFunctionSummary; public class CHelpEntry { private static final String ATTR_KEYWD = "keyword"; //$NON-NLS-1$ private static final String NODE_TOPIC = "topic"; //$NON-NLS-1$ private static final String NODE_FSUMM = "functionSummary"; //$NON-NLS-1$ private String keyword = null; private boolean isValid = true; private CHelpTopic[] hts = null; private CFunctionSummary[] fss = null; public CHelpEntry(Element e) { keyword = e.getAttribute(ATTR_KEYWD).trim(); ArrayList<CFunctionSummary> obs1 = new ArrayList<CFunctionSummary>(); ArrayList<CHelpTopic> obs2 = new ArrayList<CHelpTopic>(); NodeList list = e.getChildNodes(); for(int i = 0; i < list.getLength(); i++){ Node node = list.item(i); if (node.getNodeType() != Node.ELEMENT_NODE) continue; if (NODE_FSUMM.equals(node.getNodeName())){ obs1.add(new CFunctionSummary((Element)node, keyword)); } else if (NODE_TOPIC.equals(node.getNodeName())) { obs2.add(new CHelpTopic((Element)node, keyword)); } } fss = obs1.toArray(new CFunctionSummary[obs1.size()]); hts = obs2.toArray(new CHelpTopic[obs2.size()]); if (fss.length == 0 && hts.length == 0) isValid = false; // nothing to display } /** * Returns true if help entry is correct * Returns false if entry is empty or when * subsequent processing failed somehow. * @return entry state */ public boolean isValid() { return isValid; } public String getKeyword() { return keyword; } public IFunctionSummary[] getFunctionSummary() { return fss; } public IHelpResource[] getHelpResource() { return hts; } @Override public String toString() { return "<entry keyword=\"" + keyword + "\">"; //$NON-NLS-1$ //$NON-NLS-2$ } }