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.resolver;
21  
22  import org.peaseplate.TemplateEngine;
23  import org.peaseplate.TemplateException;
24  import org.peaseplate.internal.ResourceKey;
25  import org.peaseplate.locator.MessagesLocator;
26  import org.peaseplate.locator.TemplateLocator;
27  
28  
29  /**
30   * A resolver works on some specified source, like a file system or a class loader.
31   * 
32   * It looks for the raw template data and messages. If it found some data it creates a
33   * {@link TemplateLocator} or a {@link MessagesLocator} that describes how the 
34   * data can be loaded.
35   */
36  public interface Resolver {
37  
38  	/**
39  	 * Resolves the specified template and returns a {@link TemplateLocator} if found
40  	 * or null otherwise.
41  	 * 
42  	 * @param engine the Pease Plate engine
43  	 * @param key the key
44  	 * @return the template locator or null if not found
45  	 * @throws TemplateException on occasion
46  	 */
47  	public TemplateLocator resolveTemplate(TemplateEngine engine, ResourceKey key) throws TemplateException;
48  	
49  
50  	/**
51  	 * Resolves the specified messages and returns a {@link MessagesLocator} if found
52  	 * or null otherwise
53  	 * 
54  	 * @param engine the Pease Plate engine
55  	 * @param key the key
56  	 * @return the messages locator or null if not found
57  	 * @throws TemplateException on occasion
58  	 */
59  	public MessagesLocator resolveMessages(TemplateEngine engine, ResourceKey key) throws TemplateException;
60  	
61  }