01: /* $Id: PortletEventImpl.java,v 1.6 2005/09/21 10:55:10 dg154973 Exp $
02: * Copyright 2004-2005 Sun Microsystems, Inc. All rights reserved.
03: * Use is subject to license terms.
04: */
05: package com.sun.portal.portletappengine.ipc;
06:
07: import com.sun.portal.log.common.PortalLogger;
08: import com.sun.portal.portletcontainercommon.PortletContainerConstants;
09:
10: import javax.portlet.PortletRequest;
11: import java.io.ByteArrayOutputStream;
12: import java.io.IOException;
13: import java.io.ObjectOutputStream;
14: import java.io.OutputStream;
15: import java.io.Serializable;
16: import java.util.logging.Level;
17: import java.util.logging.LogRecord;
18: import java.util.logging.Logger;
19: import java.util.LinkedHashMap;
20:
21: /**
22: * Class implementing PortletEvent interface. Used by PortletEventBroker.
23: */
24: public class PortletEventImpl implements PortletEvent {
25: private static Logger debugLogger = PortalLogger
26: .getLogger(PortletEventImpl.class);
27: private String eventName = null;
28: private ByteArrayOutputStream baos = null;
29: private PortletRequest pr = null;
30:
31: public PortletEventImpl(String eventName, PortletRequest pr) {
32: this .eventName = eventName;
33: baos = new ByteArrayOutputStream();
34: this .pr = pr;
35: }
36:
37: public String getEventName() {
38: return eventName;
39: }
40:
41: public OutputStream getEventStream() {
42: return baos;
43: }
44:
45: public void setEventData(Serializable s) {
46: ObjectOutputStream oos = null;
47: try {
48: oos = new ObjectOutputStream(baos);
49: oos.writeObject(s);
50: } catch (IOException ioe) {
51: if (debugLogger.isLoggable(Level.SEVERE)) {
52: LogRecord logRecord = new LogRecord(Level.SEVERE,
53: "PSPL_PAECSPPIPC0001");
54: logRecord.setThrown(ioe);
55: logRecord.setLoggerName(debugLogger.getName());
56: debugLogger.log(logRecord);
57: }
58: }
59: }
60:
61: public void fire() {
62: try {
63: baos.flush();
64: baos.close();
65: } catch (IOException ioe) {
66: if (debugLogger.isLoggable(Level.SEVERE)) {
67: LogRecord logRecord = new LogRecord(Level.SEVERE,
68: "PSPL_PAECSPPIPC0001");
69: logRecord.setThrown(ioe);
70: logRecord.setLoggerName(debugLogger.getName());
71: debugLogger.log(logRecord);
72: }
73: }
74: LinkedHashMap evtMap = (LinkedHashMap) pr
75: .getAttribute(PortletContainerConstants.FIRED_EVENTS);
76: if (evtMap == null)
77: evtMap = new LinkedHashMap();
78: evtMap.put(eventName, baos.toByteArray());
79: pr.setAttribute(PortletContainerConstants.FIRED_EVENTS, evtMap);
80: }
81: }
|