aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/itmill/toolkit/terminal/ThemeResource.java
blob: fd4bd8bc68242eca39c2281db10186f4f4b01900 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/* *************************************************************************
 
                               IT Mill Toolkit 

               Development of Browser User Interfaces Made Easy

                    Copyright (C) 2000-2006 IT Mill Ltd
                     
   *************************************************************************

   This product is distributed under commercial license that can be found
   from the product package on license/license.txt. Use of this product might 
   require purchasing a commercial license from IT Mill Ltd. For guidelines 
   on usage, see license/licensing-guidelines.html

   *************************************************************************
   
   For more information, contact:
   
   IT Mill Ltd                           phone: +358 2 4802 7180
   Ruukinkatu 2-4                        fax:   +358 2 4802 7181
   20540, Turku                          email:  info@itmill.com
   Finland                               company www: www.itmill.com
   
   Primary source for information and releases: www.itmill.com

   ********************************************************************** */

package com.itmill.toolkit.terminal;

import com.itmill.toolkit.service.FileTypeResolver;

/** Theme resource is a named theme dependant resource provided and 
 * managed by a theme. The actual resource contents are dynamically
 * resolved to comply with the used theme by the terminal adapter.
 * This is commonly used to provide  static images, flash, 
 * java-applets, etc for the terminals.
 *
 * @author IT Mill Ltd.
 * @version @VERSION@
 * @since 3.0
 */
public class ThemeResource implements Resource {

	/** Id of the terminal managed resource. */
	private String resourceID = null; 

	/** Create a resource. */
	public ThemeResource(String resourceId) {
		if (resourceId == null) 
			throw new NullPointerException("Resource ID must not be null");
		if (resourceId.length() == 0)
			throw new IllegalArgumentException(
			"Resource ID can not be empty");
		if (resourceId.charAt(0) == '/')
			throw new IllegalArgumentException(
			"Resource ID must be relative (can not begin with /)");
			
		this.resourceID = resourceId;
	}

	/** Tests if the given object equals this Resource.
	 * 
	 * @param obj the object to be tested for equality
	 * @return <code>true</code> if the given object equals this Icon,
	 * <code>false</code> if not
	 * @see java.lang.Object#equals(Object)
	 */
	public boolean equals(Object obj) {
		return obj instanceof ThemeResource && 
			resourceID.equals(((ThemeResource)obj).resourceID);
	}

	/** @see java.lang.Object#hashCode()
	 */
	public int hashCode() {
		return resourceID.hashCode();
	}
	
	public String toString() {
		return resourceID.toString();
	}
	
	/** Get the resource id */
	public String getResourceId() {
		return resourceID;	
	}
	
	public String getMIMEType() {
		return FileTypeResolver.getMIMEType(getResourceId());
	}
}