1 package at.ac.tuwien.sbc.valesriegler.xvsm.spacehelpers;
3 import at.ac.tuwien.sbc.valesriegler.common.Util;
4 import org.mozartspaces.core.Capi;
5 import org.mozartspaces.core.ContainerReference;
6 import org.mozartspaces.notifications.NotificationManager;
7 import org.mozartspaces.notifications.Operation;
9 public class SpaceListenerImplBuilder {
11 private ContainerReference cref;
12 private int timeout = 3000;
13 private SpaceAction spaceAction;
14 private boolean lookaround = false;
15 private NotificationManager notificationManager;
16 private boolean countAll = false;
19 public SpaceListenerImplBuilder setCapi(Capi capi) {
24 public SpaceListenerImplBuilder setCref(ContainerReference cref) {
29 public SpaceListenerImplBuilder setTimeout(int timeout) {
30 this.timeout = timeout;
34 public SpaceListenerImplBuilder setSpaceAction(SpaceAction spaceAction) {
35 this.spaceAction = spaceAction;
39 public SpaceListenerImplBuilder setNotificationManager(NotificationManager mgr) {
40 this.notificationManager = mgr;
44 public SpaceListenerImplBuilder enableCountAll() {
49 public SpaceListenerImplBuilder setLookaround(boolean lookaround) {
50 this.lookaround = lookaround;
54 public SpaceListenerImpl createSpaceListenerImpl() {
55 final SpaceListenerImpl spaceListener = new SpaceListenerImpl(capi, cref, timeout, spaceAction, notificationManager, lookaround, countAll, name);
56 spaceListener.startHandlingAbsenceOfNotifications();
58 notificationManager.createNotification(cref, spaceListener, Operation.WRITE);
59 } catch (Exception e) {
60 Util.handleSpaceErrorAndTerminate(e);
65 public SpaceListenerImplBuilder setName(String name) {