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.internal;
21
22 import java.io.Serializable;
23 import java.util.Locale;
24
25 /**
26 * A unique key that describes the resource
27 * using the specified name and the locale.
28 * The additional encoding is used for loading
29 * the resource, but is not part of the key itself,
30 * which means that it is not part of the hashCode
31 * and equals methods. These two methods must be
32 * implemented but only target the name and the locale.
33 *
34 * @author Manfred HANTSCHEL
35 */
36 public interface ResourceKey extends Serializable {
37
38 /**
39 * Returns the name of the resource
40 * @return the name of the resource
41 */
42 public String getName();
43
44 /**
45 * Returns the locale of the resource
46 * @return the locale of the resource
47 */
48 public Locale getLocale();
49
50 /**
51 * Returns the encoding of the resource
52 * @return the encoding of the resource
53 */
54 public String getEncoding();
55
56 /**
57 * Returns a resource key with the same name and the parent locale
58 * If the locale is already null, there is no parent and it returns null.
59 * @return the parent or null
60 */
61 public ResourceKey getParent();
62
63 /**
64 * Must implement the hashCode method
65 * @return the hashCode
66 */
67 public int hashCode();
68
69 /**
70 * Must implement the equals method
71 * @param object the object to compare
72 * @return true if equal
73 */
74 public boolean equals(Object object);
75
76 /**
77 * Returns a textual representation
78 * @return a textual representation
79 */
80 public String toString();
81
82 }