package $PackageName;

import fr.lteconsulting.hexa.databinding.properties.Properties;
$ExtraImports
/**
 * Observable class generated from {@link $SourceClassFqn}
 * Generated by HexaBinding
 * Made by LTE Consulting
 */
public final class $TargetClassNameParametrized extends $SourceClassName
{
$ClassEntry
	/**
	 * Constructor(s)
	 * Those are just calling the corresponding
	 * constructor(s) on the super class
	 */
	$Constructors
	/**
	 * Setters and getters
	 */
	$FieldsAndMethods
}
------
	public $TargetClassName( $FormalParameters )
	{
		super($Parameters);
	}
------
	public $TargetClassName( $SourceClassName o )
	{
		$MapFields
	}
------
	/**
	 * Getter for the '$Property' property
	 * 
	 * @return the property value
	 */
	public $PropertyClass $MethodName()
	{
		return $Property;
	}
------
	/**
	 * Setter for the '$Property' property.<br/>
	 * 
	 * Note that it just delegates the call to 
	 * the super class and notify the property
	 * system about the change
	 * 
	 * @param $Property the property value to set
	 */
	@Override
	$Modifiers void $MethodName( $PropertyClass $Property )
	{
		super.$MethodName( $Property );
		Properties.notify( this, "$Property" );
	}
------
	/**
	 * Setter for the '$Property' property.<br/>
	 * 
	 * Note that it was generated because no setter
	 * existed for the $Property field. You might
	 * check that it is conform to how you want
	 * the field to be used.
	 * 
	 * @param $Property the property value to set
	 */
	$Modifiers void $MethodName( $PropertyClass $Property )
	{
		this.$Property = $Property;
		Properties.notify( this, "$Property" );
	}
