001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: package org.apache.cocoon.forms.util;
018:
019: import java.util.Map;
020:
021: import org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon;
022: import org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon.FOM_Context;
023: import org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon.FOM_Request;
024: import org.apache.cocoon.components.flow.javascript.fom.FOM_Cocoon.FOM_Session;
025: import org.apache.cocoon.environment.ObjectModelHelper;
026: import org.mozilla.javascript.Scriptable;
027: import org.mozilla.javascript.ScriptableObject;
028:
029: /**
030: * A simplified javascript cocoon object to use when using javaflow. In that case
031: * the cocoon object would not be accessible from definition javascript snippets.
032: */
033: public class FOM_SimpleCocoon extends ScriptableObject {
034:
035: private Map objectModel;
036:
037: public String getClassName() {
038: return "FOM_SimpleCocoon";
039: }
040:
041: private FOM_Cocoon.FOM_Request request;
042: private FOM_Cocoon.FOM_Context context;
043: private FOM_Cocoon.FOM_Session session;
044:
045: private Scriptable response;
046:
047: //private Scriptable parameters;
048:
049: public Scriptable jsGet_request() {
050: return getRequest();
051: }
052:
053: public Scriptable jsGet_response() {
054: return getResponse();
055: }
056:
057: public Scriptable jsGet_context() {
058: return getContext();
059: }
060:
061: public Scriptable jsGet_session() {
062: return getSession();
063: }
064:
065: /**
066: * Get Sitemap parameters
067: *
068: * @return a <code>Scriptable</code> value whose properties represent
069: * the Sitemap parameters from <map:call>
070: */
071: public Scriptable jsGet_parameters() {
072: //return getParameters();
073: // TODO parameters are accessible someway?
074: return null;
075: }
076:
077: public Scriptable getSession() {
078: if (session != null) {
079: return session;
080: }
081: session = new FOM_Session(getParentScope(), ObjectModelHelper
082: .getRequest(objectModel).getSession(true));
083: return session;
084: }
085:
086: public Scriptable getRequest() {
087: if (request != null) {
088: return request;
089: }
090: request = new FOM_Request(getParentScope(), ObjectModelHelper
091: .getRequest(objectModel));
092: return request;
093: }
094:
095: public Scriptable getContext() {
096: if (context != null) {
097: return context;
098: }
099: context = new FOM_Context(getParentScope(), ObjectModelHelper
100: .getContext(objectModel));
101: return context;
102: }
103:
104: public Scriptable getResponse() {
105: if (response != null) {
106: return response;
107: }
108: response = org.mozilla.javascript.Context.toObject(
109: ObjectModelHelper.getResponse(objectModel),
110: getParentScope());
111: return response;
112: }
113:
114: public void setObjectModel(Map objectModel) {
115: this.objectModel = objectModel;
116: }
117: }
|