Package rife.template

Class AbstractBeanHandler

java.lang.Object
rife.template.AbstractBeanHandler
All Implemented Interfaces:
BeanHandler
Direct Known Subclasses:
BeanHandlerHtml, BeanHandlerPlain, BeanHandlerXml

public abstract class AbstractBeanHandler extends Object implements BeanHandler
  • Constructor Details

    • AbstractBeanHandler

      public AbstractBeanHandler()
  • Method Details

    • getMimeType

      protected abstract MimeType getMimeType()
    • getPropertyValues

      protected abstract Map<String,Object> getPropertyValues(Template template, Object bean, String prefix) throws BeanUtilsException
      Throws:
      BeanUtilsException
    • setBean

      public void setBean(Template template, Object bean, String prefix, boolean encode) throws TemplateException
      Description copied from interface: BeanHandler
      Sets all values in the given template whose names match names of properties in the given bean, preceded by the given prefix, if present. If the given prefix is null, it is ignored.

      For example, given a class:

      class Person {
          private String first;
          private String last;
      
          public String getFirstName() { return first; }
          public void setFirstName(String name) { this.first = name; }
      
          public String getLastName() { return last; }
          public void setLastName(String name) { this.last = name; }
       }

      And given a template:

      Hello <!--V 'NAME:firstName'/--> <!--V 'NAME:lastName'/-->.

      Calling this method with an instance of Person where first was "Jim" and last was "James", and the prefix "NAME:", would produce:

      Hello Jim James.

      Calling this method is equivalent to calling setValue individually for each property of the bean prefixed with the given prefix.

      If encode is true, this method will use the template's encoder to encode the bean properties before setting the values.

      Only bean properties will be considered for insertion in the template. This means only properties with a getter and a setter will be considered.

      Specified by:
      setBean in interface BeanHandler
      Parameters:
      template - the template whose values will be filled
      bean - a bean whose properties will be used to fill in values in the template
      prefix - the prefix of values which will be filled with the given bean's property values
      Throws:
      TemplateException - if this template has no bean handling capability; or

      an error occurred during the introspection of the bean

    • removeBean

      public void removeBean(Template template, Object bean, String prefix) throws TemplateException
      Description copied from interface: BeanHandler
      Reverts all values to their defaults when the identifiers match properties of the given bean preceded by the given prefix, whether those values were set with a previous call to Template.setBean(Object). The values of the bean's properties are ignored.

      Calling this method is equivalent to calling Template.removeValue(java.lang.String) once for the name of each property of the given bean, prefixed with the given prefix.

      Specified by:
      removeBean in interface BeanHandler
      bean - a bean whose property names will be used to determine whether
      prefix - a prefix
      Throws:
      TemplateException - if this template has no bean handling capability; or

      an error occurred during the introspection of the bean