缓存cassandra三

续二的类
/**
* 从cacheConfig.xml中读取配置文件.
*/
public final class CacheConfigReader
{

    /** 取得Cassandra集群服务器.
     * @return String[] [返回类型说明]
     */
    public String[] getCassandraClient()
    {
        if (null != sServerList)
        {
            return sServerList.clone();
        }
        return null;
    }

    /** 取得默认Keyspace.
     * @return String 默认Keyspace
     */
    public String getDefaultKeyspace()
    {
        return sDefaultKeyspace;
    }

    /** 取得默认ColumnFamily.
     * @return String 默认ColumnFamily
     */
    public String getDefaultColumnFamily()
    {
        return sDefaultColumnFamily;
    }

    /** 根据属性名从绑定中取得属性值.
     * @param aPropertyName 属性名
     * @return 从绑定中取得的属性值
     */
    public String getPropertyFromBinding(String aPropertyName)
    {
        return (String) sDataBindingMap.get(aPropertyName);
    }

    /** 解析缓存服务器列表.
     * @param aXpath Xpath
     * @param aDoc 文档对象
     * @return String[] [返回类型说明]
     * @throws XPathExpressionException XPathExpressionException
     */
    private String[] readServerList(XPath aXpath, Document aDoc)
        throws XPathExpressionException
    {
        XPathExpression pathExpression = aXpath.compile("//servers/list/value");
        NodeList servers = (NodeList) pathExpression.evaluate(aDoc,
                XPathConstants.NODESET);
        String[] serverList = new String[servers.getLength()];
        for (int i = 0; i < servers.getLength(); i++)
        {
            serverList[i] = servers.item(i).getTextContent();
        }
        return serverList;
    }

    /** 解析默认Keyspace.
     * @param aXpath Xpath
     * @param aDoc 文档对象
     * @return String 默认Keyspace
     * @throws XPathExpressionException XPathExpressionException
     */
    private String readDefaultKeyspace(XPath aXpath, Document aDoc)
        throws XPathExpressionException
    {
        XPathExpression pathExpression = aXpath.compile("//defaultKeyspace");
        Node node = (Node) pathExpression.evaluate(aDoc, XPathConstants.NODE);

        return node.getTextContent();
    }

    /** 解析默认ColumnFamily
     * @param aXpath Xpath
     * @param aDoc 文档对象
     * @return String 默认ColumnFamily
     * @throws XPathExpressionException XPathExpressionException
     */
    private String readDefaultColumnFamily(XPath aXpath, Document aDoc)
        throws XPathExpressionException
    {
        XPathExpression pathExpression =
            aXpath.compile("//defaultColumnFamily");
        Node node = (Node) pathExpression.evaluate(aDoc, XPathConstants.NODE);
        return node.getTextContent();
    }

    /** 解析DataBindings.
     * @param aXpath Xpath
     * @param aDoc 文档对象
     * @return Map<String,String> DataBinding Map
     * @throws XPathExpressionException XPathExpressionException
     */
    private Map<String, String> readDataBindingMap(XPath aXpath, Document aDoc)
        throws XPathExpressionException
    {
        Map<String, String> dataBindingMap = new HashMap<String, String>();
        XPathExpression pathExpression =
            aXpath.compile("//dataBindings/property");
        NodeList nodeList = (NodeList) pathExpression.evaluate(aDoc,
                XPathConstants.NODESET);
        String name = null;
        String value = null;
        for (int i = 0; i < nodeList.getLength(); i++)
        {
            name = nodeList.item(i)
                    .getAttributes()
                    .getNamedItem("name")
                    .getNodeValue();
            value = nodeList.item(i)
                    .getAttributes()
                    .getNamedItem("value")
                    .getNodeValue();
            dataBindingMap.put(name, value);
        }
        return dataBindingMap;
    }
}

你可能感兴趣的:(xml,cassandra)