01: /*
02: * Copyright 2001 Sun Microsystems, Inc. All rights reserved.
03: * PROPRIETARY/CONFIDENTIAL. Use of this product is subject to license terms.
04: */
05: package com.sun.portal.rewriter;
06:
07: import com.sun.portal.rewriter.util.Debug;
08: import com.sun.portal.rewriter.util.Resource;
09: import com.sun.portal.rewriter.util.StringHelper;
10: import com.sun.portal.rewriter.util.uri.PageSpec;
11:
12: /**
13: * Rewriter dependends on this class for getting all the JavaScript functions.
14: * By extending this, on can customise the the all the javascript functions
15: * that rewriter would append
16: *
17: * @author Raja Nagendra Kumar, Nagendra.Raja@sun.com
18: * @version 1.0 12/15/2001
19: */
20: public class AbsoluteJSFunctionSpec extends AbstractJSFunctionSpec {
21: private static final JSFunctionSpec defaultAbsoluteJSFunctionSpec = new AbsoluteJSFunctionSpec(
22: Resource
23: .read(RewriterModule.RESOURCE_CONVERT_EXPRESSTION_FUNCTION_LOCATION),
24: Resource
25: .read(RewriterModule.RESOURCE_CONVERT_SYSTEM_FUNCTION_LOCATION));
26:
27: private static final String aJSURIUtils = Resource
28: .read(RewriterModule.RESOURCE_URI_UTILS_LOCATION);
29:
30: public AbsoluteJSFunctionSpec(final String aExpressionDef,
31: final String aSystemDef) {
32: this (aJSURIUtils, aExpressionDef, aSystemDef);
33: }//constructor
34:
35: public AbsoluteJSFunctionSpec(final String aJSUtilsDef,
36: final String aExpressionDef, final String aSystemDef) {
37: super (aJSUtilsDef, aExpressionDef, aSystemDef);
38: }//constructor
39:
40: public String getExpressionFunctionDefination(
41: final PageSpec aPageSpec) {
42: return makeExpressionFunction(aPageSpec,
43: expressionFunctionDefinition);
44: }//getExpressionFunctionDefination()
45:
46: public String getSystemFunctionDefination(final PageSpec aPageSpec) {
47: return makeSystemFunction(aPageSpec, systemFunctionDefinition);
48: }//getSystemFunctionDefination()
49:
50: public final String readAll(final PageSpec aPageSpec) {
51: return makeSystemFunction(aPageSpec, makeExpressionFunction(
52: aPageSpec, allFunctionsDefinition));
53: }//readAll()
54:
55: protected String makeSystemFunction(final PageSpec aPageSpec,
56: final String aDefinition) {
57: //does not requires to do some processing using aPageSpec
58: return aDefinition;
59: }//makeSystemFunction()
60:
61: protected String makeExpressionFunction(final PageSpec aPageSpec,
62: final String aDefinition) {
63: return StringHelper
64: .searchAndReplace(
65: aDefinition,
66: new String[][] {
67: {
68: INSERT_PAGE_NETWORK_URI_PATTERN,
69: aPageSpec.getBaseURI()
70: .getNetworkURI() },
71: {
72: INSERT_PAGE_BASE_URI_PATTERN,
73: aPageSpec.getBaseURI()
74: .getBaseHREF() } });
75: }//makeExpressionFunction()
76:
77: public static final JSFunctionSpec getDefault() {
78: return defaultAbsoluteJSFunctionSpec;
79: }//getDefault()
80:
81: public static void main(final String[] args) throws Exception {
82: PageSpec samplePageSpec = new PageSpec(
83: "http://rajanagendra.sun.com/Base/Raja/raja.html?name=raja",
84: "");
85:
86: Debug
87: .println("Value of convertWindowPath Function Defination: \n"
88: + AbsoluteJSFunctionSpec.getDefault()
89: .getSystemFunctionDefination(
90: samplePageSpec));
91: Debug
92: .println("Value of convertExpression Function Defination: \n"
93: + AbsoluteJSFunctionSpec.getDefault()
94: .getExpressionFunctionDefination(
95: samplePageSpec));
96: }//main()
97:
98: }//class AbsoluteJSFunctionSpec()
|