View Javadoc

1   /*
2    * This file is part of Pease Plate Template Engine.
3    * 
4    * Pease Plate Template Engine is free software: you can redistribute
5    * it and/or modify it under the terms of the GNU Lesser General 
6    * Public License as published by the Free Software Foundation, 
7    * either version 3 of the License, or any later version.
8    * 
9    * Pease Plate Template Engine is distributed in the hope that it 
10   * will be useful, but WITHOUT ANY WARRANTY; without even the implied
11   * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12   * See the GNU Lesser General Public License for more details.
13   * 
14   * You should have received a copy of the GNU Lesser General Public 
15   * License along with Pease Plate Template Engine. If not, see 
16   * <http://www.gnu.org/licenses/>.
17   * 
18   * Copyright (c) 2008 Manfred HANTSCHEL
19   */
20  package org.peaseplate.locator;
21  
22  import java.util.Locale;
23  
24  import org.peaseplate.Template;
25  import org.peaseplate.TemplateEngine;
26  import org.peaseplate.TemplateException;
27  
28  
29  /**
30   * A template locator stores the resource of the template
31   * and is capable of loading it. 
32   */
33  public interface TemplateLocator extends Locator {
34  
35  	/**
36  	 * Returns a char array with the raw template data
37  	 * Don't forget to update the timestamp and the rawSize properties
38  	 * when loading the data.
39  	 * @return a char array with the raw template data
40  	 * @throws TemplateException on occasion
41  	 */
42  	public char[] load() throws TemplateException;
43  
44  	/**
45  	 * Resolves the template with the specified name relative to this template.
46  	 * If it can't find the template it tries to resolve the template with
47  	 * the absolute name, usually by asking the engine.
48  	 * @param engine the engine
49  	 * @param name the name, relative or absolute
50  	 * @param locale the locale
51  	 * @param encoding the locale for loading
52  	 * @return the template or null if not found
53  	 * @throws TemplateException on occasion
54  	 */
55  	public Template resolve(TemplateEngine engine, String name, Locale locale, String encoding) throws TemplateException;
56  	
57  	/**
58  	 * Create a highlight from the resource with the position at
59  	 * line and column highlighted :)
60  	 * May return null.
61  	 * @param message TODO
62  	 * @param line the line
63  	 * @param column the column
64  	 * @return the highlight or null
65  	 */
66  	public String highlight(String message, int line, int column);
67  
68  	
69  }