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.io.Serializable;
23  
24  import org.peaseplate.internal.ResourceKey;
25  
26  
27  /**
28   * A locator is a reference to a resource. It usually can
29   * load the resource and check if it is outdated.
30   * 
31   * There is no definition for the load method, 
32   * since it returns different types of objects with each
33   * type of locator.
34   */
35  public interface Locator extends Serializable {
36  
37  	/**
38  	 * Returns the key
39  	 * @return the key
40  	 */
41  	public ResourceKey getKey();
42  	
43  	/**
44  	 * Returns the timestamp of the resource.
45  	 * Used for checking updates to the source of the resource.
46  	 * (usually this is the last modified date of the file).
47  	 * If there is no possibility to support such a timestamp, just return null.
48  	 * @return the timestamp, or null if not specified
49  	 */
50  	public Long getTimestamp();
51  
52  	/**
53  	 * Sets the timestamp
54  	 * @param timestamp the timestamp, may be null
55  	 */
56  	public void setTimestamp(Long timestamp);
57  	
58  	/**
59  	 * Returns the raw size of the resource.
60  	 * Used for checking updates to the source of the resource.
61  	 * (usually this is the size of the file).
62  	 * If there is not possibility to support such a size, just return null.
63  	 * @return the raw size, or null if not specified
64  	 */
65  	public Long getRawSize();
66  
67  	/**
68  	 * Sets the raw size
69  	 * @param rawSize the raw size, may be null
70  	 */
71  	public void setRawSize(Long rawSize);
72  	
73  	/**
74  	 * Returns true if the resource described by the locator
75  	 * got updated and needs to be reloaded
76  	 * @return true if the resource should get reloaded
77  	 */
78  	public boolean isOutdated();
79  	
80  	/**
81  	 * A meaningful representation of the locator, mainly used for textual output
82  	 * e.g. in error messages
83  	 * @return a meaningful representation of the locator
84  	 * @see org.peaseplate.internal.ResourceKey#toString()
85  	 */
86  	public String toString();
87  	
88  }