Author: echatellier Date: 2010-06-11 14:24:06 +0200 (Fri, 11 Jun 2010) New Revision: 121 Url: http://nuiton.org/repositories/revision/wikitty/121 Log: Add event fire support for extension. Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/JGroupsNotifier.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/JGroupsNotifier.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/JGroupsNotifier.java 2010-06-11 10:36:03 UTC (rev 120) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/JGroupsNotifier.java 2010-06-11 12:24:06 UTC (rev 121) @@ -171,12 +171,12 @@ ws.fireRemoveWikitty(event); break; case CLEAR_WIKITTY: ws.fireClearWikitty(event); break; - /*case PUT_EXTENSION: + case PUT_EXTENSION: ws.firePutExtension(event); break; case REMOVE_EXTENSION: - ws.firePutExtension(event); break; + ws.fireRemoveExtension(event); break; case CLEAR_EXTENSION: - ws.firePutExtension(event); break;*/ + ws.fireClearExtension(event); break; default: if (log.isDebugEnabled()) { log.debug("Not managed jgroup message " + wikittyMessage.type); Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java 2010-06-11 10:36:03 UTC (rev 120) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java 2010-06-11 12:24:06 UTC (rev 121) @@ -457,9 +457,16 @@ * @param ws data */ protected void firePutExtension(WikittyExtension... exts) { - if (log.isWarnEnabled()) { - log.warn("Not implemented firePutExtension !!!"); + WikittyServiceEvent event = new WikittyServiceEvent(ws); + Set<String> ids = new HashSet<String>(); + + for (WikittyExtension ext : exts) { + // ids + ids.add(ext.getId()); } + + event.setIds(ids); + firePutExtension(event); } /** @@ -468,9 +475,16 @@ * @param ws data */ protected void fireRemoveExtension(WikittyExtension... exts) { - if (log.isWarnEnabled()) { - log.warn("Not implemented fireRemoveExtension !!!"); + WikittyServiceEvent event = new WikittyServiceEvent(ws); + Set<String> ids = new HashSet<String>(); + + for (WikittyExtension ext : exts) { + // ids + ids.add(ext.getId()); } + + event.setIds(ids); + fireRemoveExtension(event); } /** @@ -479,9 +493,8 @@ * @param ws data */ protected void fireClearExtension() { - if (log.isWarnEnabled()) { - log.warn("Not implemented fireClearExtension !!!"); - } + WikittyServiceEvent event = new WikittyServiceEvent(ws); + fireClearExtension(event); } /** @@ -552,4 +565,73 @@ } } } + + /** + * Fire event to all registred listener. + * + * Take care about {@link WikittyServiceEvent#isRemote()} for fire. + * + * @param event event to fire + */ + protected void firePutExtension(WikittyServiceEvent event) { + for (WikittyServiceListener l : allWikittyServiceListeners) { + l.putExtension(event); + } + if (event.isRemote()) { + for (WikittyServiceListener l : localWikittyServiceListeners) { + l.putExtension(event); + } + } + else { + for (WikittyServiceListener l : remoteWikittyServiceListeners) { + l.putExtension(event); + } + } + } + + /** + * Fire event to all registred listener. + * + * Take care about {@link WikittyServiceEvent#isRemote()} for fire. + * + * @param event event to fire + */ + protected void fireRemoveExtension(WikittyServiceEvent event) { + for (WikittyServiceListener l : allWikittyServiceListeners) { + l.removeExtension(event); + } + if (event.isRemote()) { + for (WikittyServiceListener l : localWikittyServiceListeners) { + l.removeExtension(event); + } + } + else { + for (WikittyServiceListener l : remoteWikittyServiceListeners) { + l.removeExtension(event); + } + } + } + + /** + * Fire event to all registred listener. + * + * Take care about {@link WikittyServiceEvent#isRemote()} for fire. + * + * @param event event to fire + */ + protected void fireClearExtension(WikittyServiceEvent event) { + for (WikittyServiceListener l : allWikittyServiceListeners) { + l.clearExtension(event); + } + if (event.isRemote()) { + for (WikittyServiceListener l : localWikittyServiceListeners) { + l.clearExtension(event); + } + } + else { + for (WikittyServiceListener l : remoteWikittyServiceListeners) { + l.clearExtension(event); + } + } + } }
participants (1)
-
echatellier@users.nuiton.org