TemplateElement.REF_TEMPLATE_PARAMETER_PROP, templateParam .getName( ) );
IDesignElementModel.REF_TEMPLATE_PARAMETER_PROP, templateParam.getName( ) );
	public TemplateElement revertToTemplate( DesignElement base, int slotID,			String name ) throws SemanticException	{		assert base != null;		TemplateElement template = TemplateFactory.createTemplate( module,				base, name );		// if content element is not a report		// item or data set, then the operarion is forbidden		if ( template == null )			throw new TemplateException(					base,					TemplateException.DESIGN_EXCEPTION_INVALID_TEMPLATE_ELEMENT_TYPE );		if ( !( module instanceof ReportDesign ) )			throw new TemplateException(					module,					TemplateException.DESIGN_EXCEPTION_TEMPLATE_ELEMENT_NOT_SUPPORTED );		// if the design element has no template definition, it can not be		// reverted.		TemplateParameterDefinition templateParam = base				.getTemplateParameterElement( module );		if ( templateParam == null )			throw new TemplateException(					base,					TemplateException.DESIGN_EXCEPTION_REVERT_TO_TEMPLATE_FORBIDDEN );		try		{			PropertyCommand propertyCmd = new PropertyCommand( module, template );			propertyCmd.setProperty(					TemplateElement.REF_TEMPLATE_PARAMETER_PROP, templateParam							.getName( ) );		}		catch ( SemanticException e )		{			assert false;		}		ContentCommand cmd = new ContentCommand( module, element );		cmd.transformTemplate( base, template, slotID, false );		return template;	}