Example usage for com.liferay.portal.kernel.xml Element getNamespaceForPrefix

List of usage examples for com.liferay.portal.kernel.xml Element getNamespaceForPrefix

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.xml Element getNamespaceForPrefix.

Prototype

public Namespace getNamespaceForPrefix(String prefix);

Source Link

Usage

From source file:com.liferay.portlet.PortletQNameImpl.java

License:Open Source License

public QName getQName(Element qNameEl, Element nameEl, String defaultNamespace) {

    if ((qNameEl == null) && (nameEl == null)) {
        _log.error("both qname and name elements are null");

        return null;
    }//from ww  w.  j ava  2 s  .  c o  m

    if (qNameEl == null) {
        return SAXReaderUtil.createQName(nameEl.getTextTrim(), SAXReaderUtil.createNamespace(defaultNamespace));
    }

    String localPart = qNameEl.getTextTrim();

    int pos = localPart.indexOf(CharPool.COLON);

    if (pos == -1) {
        if (_log.isDebugEnabled()) {
            _log.debug("qname " + localPart + " does not have a prefix");
        }

        return SAXReaderUtil.createQName(localPart);
    }

    String prefix = localPart.substring(0, pos);

    Namespace namespace = qNameEl.getNamespaceForPrefix(prefix);

    if (namespace == null) {
        if (_log.isWarnEnabled()) {
            _log.warn("qname " + localPart + " does not have a valid namespace");
        }

        return null;
    }

    localPart = localPart.substring(prefix.length() + 1);

    return SAXReaderUtil.createQName(localPart, namespace);
}