/******************************************************************************* * Copyright (c) 2007-2008 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributor: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.jsf.vpe.richfaces.template; import org.jboss.tools.jsf.vpe.richfaces.ComponentUtil; import org.w3c.dom.Element; /** * A wrapper of DOM Element that can extract its attributes as objects of different types. * The methods of the class never throw any exception. In case if parsing is impossible they * always return a correct value(see methods descriptions). * * @author yradtsevich * @see Element */ public class AttributeMap { private static final String FALSE_VALUE = "false"; //$NON-NLS-1$ private static final String TRUE_VALUE = "true"; //$NON-NLS-1$ private Element element; public AttributeMap(Element element) { this.element = element; } /** * A wrapper of <code>ComponentUtil.getAttribute(sourceElement, attributeName)</code> * * @param attributeName attribute name * @return <code>ComponentUtil.getAttribute(sourceElement, attributeName)</code> * * @see ComponentUtil */ public String getString(String attributeName) { return ComponentUtil.getAttribute(element, attributeName); } /** * Returns Boolean representation of the attribute. * * @param attributeName attribute name * @return attribute value. * <code>Boolean.TRUE</code>, if the attribute equals "true", * <code>Boolean.False</code>, if the attribute equals "false", * <code>null</code> otherwise. */ public Boolean getBoolean(String attributeName) { String attribute = element.getAttribute(attributeName); Boolean ret; if (TRUE_VALUE.equals(attribute)) { ret = Boolean.TRUE; } else if (FALSE_VALUE.equals(attribute)) { ret = Boolean.FALSE; } else { ret = null; } return ret; } public void setAttribute(String name, boolean value) { if (value) { element.setAttribute(name, TRUE_VALUE); } else { element.setAttribute(name, FALSE_VALUE); } } /** * Tests if its parameter is blank string * * @param attributeName * @return <code>true</code> if and only if <code>attributeName</code> is * either <code>null</code>, or blank, or contains non-printable characters only */ public boolean isBlank(String attributeName) { String value = getString(attributeName); return ComponentUtil.isBlank(value); } }