    View Javadoc
    1   /*
    2    * Copyright (c) 2003
    3    * Information Desire GmbH
    4    * All rights reserved.
    5    */
    6   package com.infodesire.infobit.render.velocity;
    7
    8   import org.apache.commons.collections.ExtendedProperties;
    9
    10  import org.apache.velocity.exception.ResourceNotFoundException;
    11  import org.apache.velocity.runtime.RuntimeServices;
    12  import org.apache.velocity.runtime.resource.Resource;
    13  import org.apache.velocity.runtime.resource.loader.ResourceLoader;
    14
    15  import com.infodesire.infobit.InfobitManager;
    16  import com.infodesire.infobit.data.Infobit;
    17  import com.infodesire.infobit.data.Version;
    18  import com.infodesire.infobit.data.Content;
    19  import com.infodesire.infobit.data.TextContent;
    20
    21  import org.apache.commons.logging.Log;
    22  import org.apache.commons.logging.LogFactory;
    23
    24  import java.io.InputStream;
    25  /***
    26   * infobit resource loader. loads version by infobit name. delegates back to
    27   * infobit renderer for recursive rendering.
    28   *
    29   * @author    konstantin
    30   * @created   August 21, 2003
    31   * @version   $Revision: 1.3 $
    32   */
    33  public class InfobitTemplateLoader extends ResourceLoader {
    34      private static Log _log = LogFactory.getLog(InfobitTemplateLoader.class);
    35
    36      InfobitManager  _manager = null;
    37      VelocityRenderer _renderer = null;
    38
    39
    40      /***
    41       * Get an InputStream so that the Runtime can build a template with it.
    42       *
    43       * @param name                        name of template to get
    44       * @return                            InputStream containing the template
    45       * @throws ResourceNotFoundException  if template not found in classpath.
    46       */
    47      public synchronized InputStream getResourceStream(String name)
    48           throws ResourceNotFoundException {
    49
    50          if (name == null || name.length() == 0) {
    51              throw new ResourceNotFoundException("No infobit template name provided");
    52          }
    53          try {
    54              if (_log.isDebugEnabled()) {
    55                  _log.debug("retrieving " + name);
    56              }
    57              return _renderer.getTemplate(name);
    58          } catch (Exception ex) {
    59              _log.error("exception occured while loading infobit template:", ex);
    60              throw new ResourceNotFoundException(ex.getMessage());
    61          }
    62      }
    63
    64
    65      /***
    66       * @param resource  Description of Parameter
    67       * @return          The SourceModified value
    68       * @todo            develop checking of last modification date
    69       */
    70      public boolean isSourceModified(Resource resource) {
    71          return false;
    72      }
    73
    74
    75      /***
    76       * @param resource  Description of Parameter
    77       * @return          The LastModified value
    78       * @todo            return real last modification date ( version date )
    79       */
    80      public long getLastModified(Resource resource) {
    81          return 0;
    82      }
    83
    84
    85      /***
    86       * initialize loader
    87       *
    88       * @param configuration  Description of Parameter
    89       */
    90      public void init(ExtendedProperties configuration) {
    91          rsvc.info("InfobitTemplateLoader : initialization starting.");
    92          Object obj = rsvc.getApplicationAttribute(InfobitManager.class.getName());
    93          if (obj instanceof InfobitManager) {
    94              _manager = (InfobitManager) obj;
    95          }
    96          else {
    97              rsvc.error("InfobitTemplateLoader : unable to retrieve Infobit manager");
    98          }
    99          obj = rsvc.getApplicationAttribute(VelocityRenderer.class.getName());
    100         if (obj instanceof VelocityRenderer) {
    101             _renderer = (VelocityRenderer) obj;
    102         }
    103         else {
    104             rsvc.error("InfobitTemplateLoader : unable to retrieve velocity renderer");
    105         }
    106         rsvc.info("InfobitTemplateLoader : initialization complete.");
    107     }
    108 }

This page was automatically generated by Maven