blob: 74b3855e3a351a1ff681c894a650c525abd0ae82 [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.faces.parse;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.lang.Comparable;
/**
* AttributeBean is a Java representation of the faces-config component or
* renderer attribute XML element.
*/
public class AttributeBean extends ObjectBean implements Comparable
{
/**
* Sets the name of this attribute.
*
* @param attributeName the attribute name
*/
public void setAttributeName(
String attributeName)
{
_attributeName = attributeName;
}
/**
* Returns the name of this attribute.
*
* @return the attribute name
*/
public String getAttributeName()
{
return _attributeName;
}
/**
* Sets the attribute class for this attribute.
*
* @param attributeClass the attribute class
*/
public void setAttributeClass(
String attributeClass)
{
Matcher matcher = _GENERIC_TYPE.matcher(attributeClass);
if (matcher.matches())
{
_attributeClass = matcher.group(1);
_attributeClassParameters = matcher.group(2).split(",");
}
else
{
_attributeClass = attributeClass;
_attributeClassParameters = _EMPTY_ARRAY;
}
}
/**
* Returns the array of parameterized types for this attribute
* if it uses generics.
*
* @return the array of parameterized types for this attribute
*/
public String[] getAttributeClassParameters()
{
return _attributeClassParameters;
}
/**
* Returns the attribute class for this attribute.
*
* @return the attribute class
*/
public String getAttributeClass()
{
return _attributeClass;
}
/**
* Sets the description of this attribute.
*
* @param description the attribute description
*/
public void setDescription(
String description)
{
_description = description;
}
/**
* Returns the description of this attribute.
*
* @return the attribute description
*/
public String getDescription()
{
return _description;
}
/**
* Sets the default value of this attribute.
*
* @param defaultValue the attribute default value
*/
public void setDefaultValue(
String defaultValue)
{
_defaultValue = defaultValue;
}
/**
* Returns the default value of this attribute.
*
* @return the attribute default value
*/
public String getDefaultValue()
{
return _defaultValue;
}
/**
* Sets the alternative class for this property.
*
* @param alternateClass the alternative class
*/
public void setAlternateClass(
String alternateClass)
{
_alternateClass = alternateClass;
}
/**
* Returns the alternative class for this property.
*
* @return the alternative class
*/
public String getAlternateClass()
{
return _alternateClass;
}
/**
* Sets the method binding signature of this property.
*
* @param signature the method binding signature of this property
*/
public void setMethodBindingSignature(
MethodSignatureBean signature)
{
_signature = signature;
}
/**
* Returns the method binding signature of this property.
*
* @return the method binding signature of this property
*/
public MethodSignatureBean getMethodBindingSignature()
{
return _signature;
}
/**
* Sets the virtual flag of this property.
*
* @param virtual the property required flag
*/
public void setVirtual(
boolean virtual)
{
_virtual = virtual;
}
/**
* Returns virtual flag of this property.
*
* @return the property virtual flag
*/
public boolean isVirtual()
{
return _virtual;
}
public int compareTo(Object o)
{
if(o instanceof AttributeBean)
{
AttributeBean attr = (AttributeBean)o;
return _attributeName.compareTo(attr._attributeName);
}
else
{
return 1;
}
}
private String _attributeName;
private String _attributeClass;
private String[] _attributeClassParameters;
private String _description;
private String _defaultValue;
// FIXME: Alternate type does not seem to support generic types
private String _alternateClass;
private boolean _virtual;
private MethodSignatureBean _signature;
static private final Pattern _GENERIC_TYPE = Pattern.compile("([^<]+)<(.+)>");
static private final String[] _EMPTY_ARRAY = new String[0];
}