112 if (zoneEvent ==
null) {
113 System.err.println(
"ZoneEvent is null");
119 ZoneEventType type = zoneEvent.getType();
120 System.out.println(
"Zone event type: " + type);
125 int locationId = zoneEvent.getLocationId();
126 System.out.println(
"Zone location ID: " + locationId);
131 int sublocationId = zoneEvent.getSublocationId();
132 System.out.println(
"Zone sublocation ID: " + sublocationId);
137 int id = zoneEvent.getId();
138 System.out.println(
"Zone ID: " +
id);
143 String name = zoneEvent.getName();
144 System.out.println(
"Zone name: " + name);
149 String alias = zoneEvent.getAlias();
150 System.out.println(
"Zone alias: " + alias);
155 ZoneEvent newZoneEvent =
new ZoneEvent(
163 System.out.println(
"Created new zone event: " + newZoneEvent.getName() +
" (" + newZoneEvent.getAlias() +
")");
185 System.out.println(
"=== Advanced Zone Features ===");
187 if (zoneManager ==
null) {
192 ZoneListener listener1 =
new ZoneListener() {
194 public void onZoneEvent(ZoneEvent event) {
195 System.out.println(
"Listener 1: Zone event - " + event.getName());
199 ZoneListener listener2 =
new ZoneListener() {
201 public void onZoneEvent(ZoneEvent event) {
202 System.out.println(
"Listener 2: Zone event - " + event.getName());
208 zoneManager.addZoneListener(listener1);
209 System.out.println(
"Added first zone listener");
214 }
catch (InterruptedException e) {
215 Thread.currentThread().interrupt();
220 zoneManager.addZoneListener(listener2);
221 System.out.println(
"Added second zone listener");
227 }
catch (InterruptedException e) {
228 Thread.currentThread().interrupt();
234 zoneManager.removeZoneListener(listener1);
235 System.out.println(
"Removed first zone listener");
240 }
catch (InterruptedException e) {
241 Thread.currentThread().interrupt();
246 zoneManager.removeZoneListener(listener2);
247 System.out.println(
"Removed second zone listener");
255 System.out.println(
"=== Zone Event Simulation ===");
258 ZoneEvent[] simulatedEvents = {
259 new ZoneEvent(ZoneEventType.ENTER, 12345, 1, 100,
"Entrance Zone",
"entrance"),
260 new ZoneEvent(ZoneEventType.EXIT, 12345, 1, 100,
"Entrance Zone",
"entrance"),
261 new ZoneEvent(ZoneEventType.ENTER, 12345, 1, 101,
"Meeting Room",
"meeting_room"),
262 new ZoneEvent(ZoneEventType.ENTER, 12345, 1, 102,
"Cafeteria",
"cafeteria"),
263 new ZoneEvent(ZoneEventType.EXIT, 12345, 1, 101,
"Meeting Room",
"meeting_room"),
267 for (
int i = 0; i < simulatedEvents.length; i++) {
271 Thread.sleep((index + 1) * 1000);
272 }
catch (InterruptedException e) {
273 Thread.currentThread().interrupt();
275 ZoneEvent
event = simulatedEvents[index];
276 System.out.println(
"Simulated zone event: " + event.getType() +
" - " + event.getName() +
" (" + event.getAlias() +
")");
286 System.out.println(
"=== Zone Listener Management ===");
288 if (zoneManager ==
null) {
293 ZoneListener testListener =
new ZoneListener() {
295 public void onZoneEvent(ZoneEvent event) {
296 System.out.println(
"Test listener received event: " + event.getName());
301 zoneManager.addZoneListener(testListener);
302 System.out.println(
"Added test zone listener");
308 }
catch (InterruptedException e) {
309 Thread.currentThread().interrupt();
313 zoneManager.removeZoneListener(testListener);
314 System.out.println(
"Removed test zone listener");