01: /*
02: * Created on May 6, 2006
03: */
04: package uk.org.ponder.rsf.content;
05:
06: import java.util.HashMap;
07: import java.util.Map;
08:
09: /** Holds a registry of core ContentTypeInfo records.
10: * To implement a user-defined set, simply provide your own definition
11: * for the RSF application-scope bean named "contentTypeInfoMap".
12: * **/
13:
14: public class ContentTypeInfoRegistry {
15: public static final String HTML = "HTML";
16: public static final String HTML_FRAGMENT = "HTML-FRAGMENT";
17: public static final String AJAX = "AJAX";
18: public static final String XUL = "XUL";
19: public static final String SVG = "SVG";
20: public static final String RSS_0_91 = "RSS-0.91";
21: public static final String RSS_2 = "RSS-2.0";
22: public static final String REDIRECT = "REDIRECT";
23: /** A default ContentTypeInfo entry for HTML content */
24:
25: public static final ContentTypeInfo HTML_CONTENTINFO = new ContentTypeInfo(
26: HTML,
27: "html",
28: "<!DOCTYPE html "
29: + "PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\""
30: + " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">",
31: "text/html; charset=UTF-8", ContentTypeInfo.ID_FULL, false);
32:
33: public static final ContentTypeInfo HTML_FRAGMENT_CONTENTINFO = new ContentTypeInfo(
34: HTML_FRAGMENT, "html", "", "text/html; charset=UTF-8",
35: ContentTypeInfo.ID_FULL, true);
36:
37: public static final ContentTypeInfo AJAX_CONTENTINFO = new ContentTypeInfo(
38: AJAX, "xml", "", "application/xml; charset=UTF-8");
39:
40: public static final ContentTypeInfo XUL_CONTENTINFO = new ContentTypeInfo(
41: XUL, "xul", "",
42: "application/vnd.mozilla.xul+xml; charset=UTF-8");
43:
44: public static final ContentTypeInfo RSS_0_91_CONTENTINFO = new ContentTypeInfo(
45: RSS_0_91,
46: "rss",
47: "<!DOCTYPE rss PUBLIC \"-//Netscape Communications//DTD RSS 0.91//EN\""
48: + "\"http://my.netscape.com/publish/formats/rss-0.91.dtd\">",
49: "application/rss+xml; charset=UTF-8");
50:
51: public static final ContentTypeInfo RSS_2_0_CONTENTINFO = new ContentTypeInfo(
52: RSS_2, "rss", "", "application/rss+xml; charset=UTF-8");
53:
54: public static final ContentTypeInfo SVG_CONTENTINFO = new ContentTypeInfo(
55: SVG, "svg", "", "image/svg+xml; charset=UTF-8",
56: ContentTypeInfo.ID_FULL, true);
57:
58: private static Map contentmap = new HashMap();
59:
60: public static void addContentTypeInfo(Map map, ContentTypeInfo toadd) {
61: map.put(toadd.typename, toadd);
62: }
63:
64: static {
65: addContentTypeInfo(contentmap, HTML_CONTENTINFO);
66: addContentTypeInfo(contentmap, HTML_FRAGMENT_CONTENTINFO);
67: addContentTypeInfo(contentmap, AJAX_CONTENTINFO);
68: addContentTypeInfo(contentmap, XUL_CONTENTINFO);
69: addContentTypeInfo(contentmap, RSS_0_91_CONTENTINFO);
70: addContentTypeInfo(contentmap, RSS_2_0_CONTENTINFO);
71: addContentTypeInfo(contentmap, SVG_CONTENTINFO);
72: }
73:
74: public static Map getContentTypeInfoMap() {
75: return contentmap;
76: }
77: }
|