#macro( quietnull $a)
#if($a)$a#end
#end

## generate getters and setters for Tag Properties
#macro(tagPropertyMethods12 $source)
	// Fields
	#foreach( $prop in $source.properties )
	 #if( !$prop.existintag && !$prop.hidden)
	  #if($prop.classname == "javax.el.MethodExpression" || $prop.classname == "javax.faces.el.MethodBinding")
		#set($type = "MethodExpression")
	  #else
		#if ($prop.el)
			#set($type = "ValueExpression")
	  	#else
			#set($type = ${prop.classname})
	  	#end
	  #end
	  
		/*
		 * $prop.name
		 * ${prop.xmlEncodedDescription}
		 */
		private $type _${prop.name};
		/**
		 * ${prop.xmlEncodedDescription}
		 * Setter for $prop.name
		 * @param $prop.name - new value
		 */
		 public void ${prop.setterName}( $type  __${prop.name} ){
			this._${prop.name} = __${prop.name};
	     }
	  
	 #if( $prop.alias)
		/**
		 * ${prop.xmlEncodedDescription}
		 * Setter for alias of $prop.name as $prop.alias
		 * @param $prop.name - new value
		 */
		 public void set${prop.upperFirstChar($prop.alias)}( $type  __${prop.alias} ){
			this.${prop.setterName}(__${prop.alias});
	     }
	 #end
	 #end	 
	#end

#end

## release Tag Properties
#macro(tagPropertyRelease $source) 
	#foreach( $prop in $source.properties )
	 #if( !$prop.existintag && !$prop.hidden)
		    this._${prop.name} = null;
	 #end
	#end	 
#end



