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;
18 public SpaceListenerImplBuilder setCapi(Capi capi) {
23 public SpaceListenerImplBuilder setCref(ContainerReference cref) {
28 public SpaceListenerImplBuilder setTimeout(int timeout) {
29 this.timeout = timeout;
33 public SpaceListenerImplBuilder setSpaceAction(SpaceAction spaceAction) {
34 this.spaceAction = spaceAction;
38 public SpaceListenerImplBuilder setNotificationManager(NotificationManager mgr) {
39 this.notificationManager = mgr;
43 public SpaceListenerImplBuilder enableCountAll() {
48 public SpaceListenerImplBuilder setLookaround(boolean lookaround) {
49 this.lookaround = lookaround;
53 public SpaceListenerImpl createSpaceListenerImpl() {
54 final SpaceListenerImpl spaceListener = new SpaceListenerImpl(capi, cref, timeout, spaceAction, notificationManager, lookaround, countAll);
55 spaceListener.startHandlingAbsenceOfNotifications();
57 notificationManager.createNotification(cref, spaceListener, Operation.WRITE);
58 } catch (Exception e) {
59 Util.handleSpaceErrorAndTerminate(e);