blob: 1744987509c0f283fae13d42608b9626281c054b [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.myfaces.buildtools.maven2.plugin.jdeveloper;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class TldContentHandler
{
/**
* Content Handler.
*/
public TldContentHandler()
{
}
/**
* Parse the .tld file to get the information
* needed for the .jpr
*/
public void parseTld(File file)
throws SAXException,
IOException,
ParserConfigurationException
{
// Create a builder factory
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setValidating(false);
// Create the Builder and parse the file
Document document = factory.newDocumentBuilder().parse(file);
_processTldNodes(document);
}
/*=========================================================================
* Gettors and settors
* ======================================================================*/
public void setVersion(String version)
{
_version = version;
}
public void setName(String name)
{
_name = name;
}
public void setPrefix(String prefix)
{
_prefix = prefix;
}
public void setURI(String uri)
{
_uri = uri;
}
public void setJspVersion(String jspVersion)
{
_jspVersion = jspVersion;
}
public String getVersion()
{
return _version == null? "" : _version;
}
public String getName()
{
return _name == null? "" : _name;
}
public String getPrefix()
{
return _prefix == null? "" : _prefix;
}
public String getURI()
{
return _uri == null? "" : _uri;
}
public String getJspVersion()
{
return _jspVersion == null? "" : _jspVersion;
}
/**
* Find all the TLD nodes we want, get each node's value
* and set the value on the proper class property.
*
* @param document - DOM Document from the TLD file
*/
private void _processTldNodes(Document document)
{
Node node = null;
// Get the Nodes first node. We can be specific here
// because we know we want the first node.
NodeList nodeList = document.getElementsByTagName(_TLIB_VERSION);
if (nodeList != null && nodeList.getLength() != 0)
{
node = nodeList.item(0);
setVersion(node.getFirstChild().getNodeValue());
}
nodeList = document.getElementsByTagName(_JSP_VERSION);
if (nodeList != null && nodeList.getLength() != 0)
{
node = nodeList.item(0);
setJspVersion(node.getFirstChild().getNodeValue());
}
// Must go before _DISPLAY_NAME
nodeList = document.getElementsByTagName(_SHORT_NAME);
if (nodeList != null && nodeList.getLength() != 0)
{
node = nodeList.item(0);
setPrefix(node.getFirstChild().getNodeValue());
}
// Must go after _SHORT_NAME
nodeList = document.getElementsByTagName(_DISPLAY_NAME);
if (nodeList != null && nodeList.getLength() != 0)
{
node = nodeList.item(0);
setName(node.getFirstChild().getNodeValue());
}
else
{
setName(getPrefix());
}
nodeList = document.getElementsByTagName(_URI);
if (nodeList != null && nodeList.getLength() != 0)
{
node = nodeList.item(0);
setURI(node.getFirstChild().getNodeValue());
}
}
//========================================================================
// Private variables
//========================================================================
private String _version = null; // tlib-version
private String _name = null; // display-name
private String _prefix = null; // short-name
private String _jspVersion = null; // jsp-version
private String _uri = null; // uri
private final static String _TLIB_VERSION = "tlib-version"; //version NOTRANS
private final static String _DISPLAY_NAME = "display-name"; //name NOTRANS
private final static String _SHORT_NAME = "short-name"; //prefix NOTRANS
private final static String _JSP_VERSION = "jsp-version"; //NOTRANS
private final static String _URI = "uri";
} // endclass TldContentHandler