/*
* Licensed Materials - Property of Rogue Wave Software, Inc.
* © Copyright Rogue Wave Software, Inc. 2014, 2017
* © Copyright IBM Corp. 2009, 2014
* © Copyright ILOG 1996, 2009
* All Rights Reserved.
*
* Note to U.S. Government Users Restricted Rights:
* The Software and Documentation were developed at private expense and
* are "Commercial Items" as that term is defined at 48 CFR 2.101,
* consisting of "Commercial Computer Software" and
* "Commercial Computer Software Documentation", as such terms are
* used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4,
* as applicable.
*/
package hitmap;
import java.util.*;
import org.w3c.dom.*;
import ilog.views.chart.data.IlvDataSet;
import ilog.views.chart.data.xml.IlvXMLPropertyReader;
/**
* An <code>IlvXMLPropertyReader</code> implementation that reads the <code>hrefs</code> property.
* The property should be expressed as a sequence of hypertext references (hrefs) separated by a ;.
*/
class HREFPropertyReader implements IlvXMLPropertyReader
{
/** The <code>hrefs</code> property element tag. */
public static String HREFS_TAG = "hrefs";
/**
* Reads the specified property element. This method reads an <code>hrefs</code>
* element associated with a series and stores its contents in a <code>List</code>.
*/
Override
public Object readProperty(Element propertyElt)
{
Node child = propertyElt.getFirstChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE &&
child.getNodeName().equals(HREFS_TAG)) {
Element hrefElt = (Element)child;
StringTokenizer tokenizer =
new StringTokenizer(hrefElt.getFirstChild().getNodeValue(), ";\n\t ");
List<String> hrefs = new LinkedList<String>();
while (tokenizer.hasMoreTokens())
hrefs.add(tokenizer.nextToken());
return hrefs;
}
child = child.getNextSibling();
}
return null;
}
/**
* Sets the property on the specified data set. This method sets the
* <code>href</code>s <code>List</code> as a property of the specified data set.
*/
Override
public void setProperty(IlvDataSet dataSet,
String propertyName,
Object value)
{
dataSet.putProperty(HREFPropertyReader.HREFS_TAG, value, false);
}
}