1 package org.apache.torque.generator.configuration; 2 3 /* 4 * Licensed to the Apache Software Foundation (ASF) under one 5 * or more contributor license agreements. See the NOTICE file 6 * distributed with this work for additional information 7 * regarding copyright ownership. The ASF licenses this file 8 * to you under the Apache License, Version 2.0 (the 9 * "License"); you may not use this file except in compliance 10 * with the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17 * KIND, either express or implied. See the License for the 18 * specific language governing permissions and limitations 19 * under the License. 20 */ 21 22 import org.apache.commons.lang.StringUtils; 23 import org.xml.sax.Attributes; 24 import org.xml.sax.SAXException; 25 26 27 /** 28 * Helper methods for SAX handlers. 29 */ 30 public final class SaxHelper 31 { 32 /** 33 * private constructor for utility class. 34 */ 35 private SaxHelper() 36 { 37 } 38 39 /** 40 * Retrieves an attribute as boolean value. 41 * 42 * @param attributeName the name of the attribute to retrieve, not null. 43 * @param attributes The attributes of the current element. 44 * @param elementDescription the description of the parsed element, 45 * for producing a user-readable error message. E.g 46 * "the optionAction ${nameOfTheAction}" 47 * 48 * @return the value of the attribute, or null if the attribute is not set. 49 * 50 * @throws SAXException if the attribute contains content 51 * other than "true", "1" , "false" or "0". 52 */ 53 public static Boolean getBooleanAttribute( 54 String attributeName, 55 Attributes attributes, 56 String elementDescription) 57 throws SAXException 58 { 59 String attributeAsString = attributes.getValue(attributeName); 60 if (attributeAsString == null) 61 { 62 return null; 63 } 64 if ("false".equals(attributeAsString) 65 || "0".equals(attributeAsString)) 66 { 67 return false; 68 } 69 else if ("true".equals(attributeAsString) 70 || "1".equals(attributeAsString)) 71 { 72 return true; 73 } 74 else 75 { 76 throw new SAXException("The attribute " 77 + attributeName 78 + "of " 79 + elementDescription 80 + " must either be false, 0, true or 1"); 81 } 82 } 83 84 /** 85 * Retrieves the unqualified part of an XML element name name, 86 * regardless whether namespace processing is switched on or off. 87 * 88 * @param localName The local name (without prefix), or the 89 * empty string if namespace processing is not being 90 * performed. 91 * @param qName The qualified name (with prefix), or the 92 * empty string if qualified names are not available. 93 * 94 * @return the unqualified part of the name. 95 */ 96 public static String getUnqualifiedName(String localName, String qName) 97 { 98 if (!StringUtils.isEmpty(localName)) 99 { 100 return localName; 101 } 102 return qName; 103 } 104 }