001: package org.tigris.scarab.services.email;
002:
003: /* ====================================================================
004: * The Apache Software License, Version 1.1
005: *
006: * Copyright (c) 2001 The Apache Software Foundation. All rights
007: * reserved.
008: *
009: * Redistribution and use in source and binary forms, with or without
010: * modification, are permitted provided that the following conditions
011: * are met:
012: *
013: * 1. Redistributions of source code must retain the above copyright
014: * notice, this list of conditions and the following disclaimer.
015: *
016: * 2. Redistributions in binary form must reproduce the above copyright
017: * notice, this list of conditions and the following disclaimer in
018: * the documentation and/or other materials provided with the
019: * distribution.
020: *
021: * 3. The end-user documentation included with the redistribution,
022: * if any, must include the following acknowledgment:
023: * "This product includes software developed by the
024: * Apache Software Foundation (http://www.apache.org/)."
025: * Alternately, this acknowledgment may appear in the software itself,
026: * if and wherever such third-party acknowledgments normally appear.
027: *
028: * 4. The names "Apache" and "Apache Software Foundation" and
029: * "Apache Turbine" must not be used to endorse or promote products
030: * derived from this software without prior written permission. For
031: * written permission, please contact apache@apache.org.
032: *
033: * 5. Products derived from this software may not be called "Apache",
034: * "Apache Turbine", nor may "Apache" appear in their name, without
035: * prior written permission of the Apache Software Foundation.
036: *
037: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
038: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
039: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
040: * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
041: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
042: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
043: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
044: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
045: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
046: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
047: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
048: * SUCH DAMAGE.
049: * ====================================================================
050: *
051: * This software consists of voluntary contributions made by many
052: * individuals on behalf of the Apache Software Foundation. For more
053: * information on the Apache Software Foundation, please see
054: * <http://www.apache.org/>.
055: */
056:
057: import java.io.OutputStream;
058: import java.io.Writer;
059: import org.apache.fulcrum.Service;
060: import org.apache.fulcrum.ServiceException;
061: import org.apache.velocity.context.Context;
062:
063: /**
064: * The Turbine service interface to
065: * <a href="http://jakarta.apache.org/velocity/">Velocity</a>.
066: *
067: * @author <a href="mailto:jmcnally@collab.net">John D. McNally</a>
068: * @author <a href="mailto:mbryson@mont.mindspring.com">Dave Bryson</a>
069: * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
070: * @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
071: * @version $Id: EmailService.java 7872 2003-05-06 08:17:49Z jon $
072: */
073: public interface EmailService extends Service {
074: String SERVICE_NAME = "EmailService";
075:
076: /**
077: * Process the request and fill in the template using the values
078: * set in <code>context</code>.
079: *
080: * @param context A context to use when evaluating the specified
081: * template.
082: * @param filename The file name of the template.
083: * @return The processed template.
084: * @exception Exception, a generic exception.
085: */
086: String handleRequest(Context context, String filename)
087: throws Exception;
088:
089: /**
090: * Process the request and fill in the template using the values
091: * set in <code>context</code>.
092: *
093: * @param context A context to use when evaluating the specified
094: * template.
095: * @param filename The file name of the template.
096: * @param charset The character set to use when writing the result.
097: * @param encoding The encoding to use when merging context and
098: * template.
099: * @return The processed template.
100: * @exception Exception, a generic exception.
101: */
102: String handleRequest(Context context, String template,
103: String charset, String encoding) throws Exception;
104:
105: /**
106: * Process the request and fill in the template using the values
107: * set in <code>context</code>.
108: *
109: * @param context A context to use when evaluating the specified
110: * template.
111: * @param filename The file name of the template.
112: * @param out The stream to which we will write the processed
113: * template as a String.
114: * @throws ServiceException Any exception trown while processing will be
115: * wrapped into a ServiceException and rethrown.
116: */
117: void handleRequest(Context context, String filename,
118: OutputStream out) throws ServiceException;
119:
120: /**
121: * Process the request and fill in the template using the values
122: * set in <code>context</code>.
123: *
124: * @param context A context to use when evaluating the specified
125: * template.
126: * @param filename The file name of the template.
127: * @param out The stream to which we will write the processed
128: * template as a String.
129: * @param charset The character set to use when writing the result.
130: * @param encoding The encoding to use when merging context and
131: * template.
132: * @throws ServiceException Any exception trown while processing will be
133: * wrapped into a ServiceException and rethrown.
134: */
135: void handleRequest(Context context, String filename,
136: OutputStream out, String charset, String encoding)
137: throws ServiceException;
138:
139: /**
140: * Process the request and fill in the template using the values
141: * set in <code>context</code>.
142: *
143: * @param context A context to use when evaluating the specified
144: * template.
145: * @param filename The file name of the template.
146: * @param writer The writer to which we will write the processed template.
147: * @throws ServiceException Any exception trown while processing will be
148: * wrapped into a ServiceException and rethrown.
149: */
150: void handleRequest(Context context, String filename, Writer writer)
151: throws ServiceException;
152:
153: /**
154: * Process the request and fill in the template using the values
155: * set in <code>context</code>.
156: *
157: * @param context A context to use when evaluating the specified
158: * template.
159: * @param filename The file name of the template.
160: * @param writer The writer to which we will write the processed template.
161: * @param encoding The encoding to use when merging context and
162: * template.
163: * @throws ServiceException Any exception trown while processing will be
164: * wrapped into a ServiceException and rethrown.
165: */
166: void handleRequest(Context context, String filename, Writer writer,
167: String encoding) throws ServiceException;
168: }
|