001: /*
002: * Copyright 2006 The JA-SIG Collaborative. All rights reserved. See license
003: * distributed with this file and available online at
004: * http://www.uportal.org/license.html
005: */
006: package org.jasig.portal.events.handlers;
007:
008: import org.jasig.portal.events.EventHandler;
009: import org.jasig.portal.events.PortalEvent;
010: import org.jasig.portal.events.support.ChannelAddedToLayoutPortalEvent;
011: import org.jasig.portal.events.support.ChannelInstanciatedInLayoutPortalEvent;
012: import org.jasig.portal.events.support.ChannelLayoutPortalEvent;
013: import org.jasig.portal.events.support.ChannelMovedInLayoutPortalEvent;
014: import org.jasig.portal.events.support.ChannelPortalEvent;
015: import org.jasig.portal.events.support.ChannelRemovedFromLayoutPortalEvent;
016: import org.jasig.portal.events.support.ChannelRenderedInLayoutPortalEvent;
017: import org.jasig.portal.events.support.ChannelTargetedInLayoutPortalEvent;
018: import org.jasig.portal.events.support.ChannelUpdatedInLayoutPortalEvent;
019: import org.jasig.portal.events.support.LayoutPortalEvent;
020: import org.jasig.portal.events.support.ModifiedChannelDefinitionPortalEvent;
021: import org.jasig.portal.events.support.PublishedChannelDefinitionPortalEvent;
022: import org.jasig.portal.events.support.RemovedChannelDefinitionPortalEvent;
023: import org.jasig.portal.events.support.UserLoggedOutPortalEvent;
024: import org.jasig.portal.events.support.UserAddedFolderToLayoutPortalEvent;
025: import org.jasig.portal.events.support.UserLoggedInPortalEvent;
026: import org.jasig.portal.events.support.UserMovedFolderInLayoutPortalEvent;
027: import org.jasig.portal.events.support.UserRemovedFolderFromLayoutPortalEvent;
028: import org.jasig.portal.events.support.UserSessionCreatedPortalEvent;
029: import org.jasig.portal.events.support.UserSessionDestroyedPortalEvent;
030: import org.jasig.portal.events.support.UserUpdatedFolderInLayoutPortalEvent;
031: import org.jasig.portal.services.stats.IStatsRecorder;
032: import org.springframework.beans.factory.InitializingBean;
033: import org.springframework.util.Assert;
034:
035: /**
036: * Adapter class for legacy IStatsRecorder such that deployers don't immediately
037: * need to write Event Handlers. They can re-use their existing IStatsRecorder.
038: *
039: * @author Scott Battaglia
040: * @version $Revision: 42154 $ Date$
041: * @since 2.6
042: *
043: */
044: public final class StatsRecorderEventHandlerAdapter implements
045: EventHandler, InitializingBean {
046:
047: /** Instance of <code>IStatsRecorder</code> to delegate to. */
048: private IStatsRecorder recorder;
049:
050: public void handleEvent(final PortalEvent event) {
051: final Class eventClass = event.getClass();
052: if (eventClass.equals(ChannelAddedToLayoutPortalEvent.class)) {
053: final ChannelLayoutPortalEvent portalEvent = (ChannelLayoutPortalEvent) event;
054: this .recorder.recordChannelAddedToLayout(portalEvent
055: .getPerson(), portalEvent.getProfile(), portalEvent
056: .getChannelDescription());
057: } else if (eventClass
058: .equals(ChannelInstanciatedInLayoutPortalEvent.class)) {
059: final ChannelLayoutPortalEvent portalEvent = (ChannelLayoutPortalEvent) event;
060: this .recorder.recordChannelInstantiated(portalEvent
061: .getPerson(), portalEvent.getProfile(), portalEvent
062: .getChannelDescription());
063: } else if (eventClass
064: .equals(ChannelMovedInLayoutPortalEvent.class)) {
065: final ChannelLayoutPortalEvent portalEvent = (ChannelLayoutPortalEvent) event;
066: this .recorder.recordChannelMovedInLayout(portalEvent
067: .getPerson(), portalEvent.getProfile(), portalEvent
068: .getChannelDescription());
069: } else if (eventClass
070: .equals(ChannelRemovedFromLayoutPortalEvent.class)) {
071: final ChannelLayoutPortalEvent portalEvent = (ChannelLayoutPortalEvent) event;
072: this .recorder.recordChannelRemovedFromLayout(portalEvent
073: .getPerson(), portalEvent.getProfile(), portalEvent
074: .getChannelDescription());
075: } else if (eventClass
076: .equals(ChannelRenderedInLayoutPortalEvent.class)) {
077: final ChannelLayoutPortalEvent portalEvent = (ChannelLayoutPortalEvent) event;
078: this .recorder.recordChannelRendered(
079: portalEvent.getPerson(), portalEvent.getProfile(),
080: portalEvent.getChannelDescription());
081: } else if (eventClass
082: .equals(ChannelTargetedInLayoutPortalEvent.class)) {
083: final ChannelLayoutPortalEvent portalEvent = (ChannelLayoutPortalEvent) event;
084: this .recorder.recordChannelTargeted(
085: portalEvent.getPerson(), portalEvent.getProfile(),
086: portalEvent.getChannelDescription());
087: } else if (eventClass
088: .equals(ChannelUpdatedInLayoutPortalEvent.class)) {
089: final ChannelLayoutPortalEvent portalEvent = (ChannelLayoutPortalEvent) event;
090: this .recorder.recordChannelUpdatedInLayout(portalEvent
091: .getPerson(), portalEvent.getProfile(), portalEvent
092: .getChannelDescription());
093: } else if (eventClass
094: .equals(ModifiedChannelDefinitionPortalEvent.class)) {
095: final ChannelPortalEvent portalEvent = (ChannelPortalEvent) event;
096: this .recorder.recordChannelDefinitionModified(portalEvent
097: .getPerson(), portalEvent.getChannelDefinition());
098: } else if (eventClass
099: .equals(PublishedChannelDefinitionPortalEvent.class)) {
100: final ChannelPortalEvent portalEvent = (ChannelPortalEvent) event;
101: this .recorder.recordChannelDefinitionPublished(portalEvent
102: .getPerson(), portalEvent.getChannelDefinition());
103: } else if (eventClass
104: .equals(RemovedChannelDefinitionPortalEvent.class)) {
105: final ChannelPortalEvent portalEvent = (ChannelPortalEvent) event;
106: this .recorder.recordChannelDefinitionRemoved(portalEvent
107: .getPerson(), portalEvent.getChannelDefinition());
108: } else if (eventClass.equals(UserLoggedOutPortalEvent.class)) {
109: this .recorder.recordLogout(event.getPerson());
110: } else if (eventClass
111: .equals(UserAddedFolderToLayoutPortalEvent.class)) {
112: final LayoutPortalEvent portalEvent = (LayoutPortalEvent) event;
113: this .recorder.recordFolderAddedToLayout(portalEvent
114: .getPerson(), portalEvent.getProfile(), portalEvent
115: .getFolder());
116: } else if (eventClass.equals(UserLoggedInPortalEvent.class)) {
117: this .recorder.recordLogin(event.getPerson());
118: } else if (eventClass
119: .equals(UserMovedFolderInLayoutPortalEvent.class)) {
120: final LayoutPortalEvent portalEvent = (LayoutPortalEvent) event;
121: this .recorder.recordFolderMovedInLayout(portalEvent
122: .getPerson(), portalEvent.getProfile(), portalEvent
123: .getFolder());
124: } else if (eventClass
125: .equals(UserRemovedFolderFromLayoutPortalEvent.class)) {
126: final LayoutPortalEvent portalEvent = (LayoutPortalEvent) event;
127: this .recorder.recordFolderRemovedFromLayout(portalEvent
128: .getPerson(), portalEvent.getProfile(), portalEvent
129: .getFolder());
130: } else if (eventClass
131: .equals(UserSessionCreatedPortalEvent.class)) {
132: this .recorder.recordSessionCreated(event.getPerson());
133: } else if (eventClass
134: .equals(UserSessionDestroyedPortalEvent.class)) {
135: this .recorder.recordSessionDestroyed(event.getPerson());
136: } else if (eventClass
137: .equals(UserUpdatedFolderInLayoutPortalEvent.class)) {
138: final LayoutPortalEvent portalEvent = (LayoutPortalEvent) event;
139: this .recorder.recordFolderUpdatedInLayout(portalEvent
140: .getPerson(), portalEvent.getProfile(), portalEvent
141: .getFolder());
142: }
143: }
144:
145: public boolean supports(final PortalEvent event) {
146: return true;
147: }
148:
149: public void afterPropertiesSet() throws Exception {
150: Assert.notNull(this .recorder, "recorder cannot be null.");
151: }
152:
153: public void setRecorder(final IStatsRecorder recorder) {
154: this.recorder = recorder;
155: }
156: }
|