/Users/detro/workspace-nb/JAEBI-BlueToothJ2MEClient/src/org/jaebi/midlet/bt/DiscovererObserver.java

Vai alla documentazione di questo file.
00001 /*
00002  * DiscovererObserver.java
00003  *
00004  * Created on 9 giugno 2005, 13.26
00005  *
00006  * To change this template, choose Tools | Options and locate the template under
00007  * the Source Creation and Management node. Right-click the template and choose
00008  * Open. You can then make changes to the template in the Source Editor.
00009  */
00010 
00011 package org.jaebi.midlet.bt;
00012 
00013 import java.util.Enumeration;
00014 import java.util.Vector;
00015 import javax.bluetooth.RemoteDevice;
00016 import org.jaebi.midlet.util.Observable;
00017 import org.jaebi.midlet.util.Observer;
00018 import org.jaebi.midlet.bt.discoveryHandling.DiscoveryEventHandler;
00019 import org.jaebi.midlet.bt.discoveryHandling.ServiceSearchError;
00020 import org.jaebi.midlet.bt.discoveryHandling.DiscoveryError;
00021 
00026 public class DiscovererObserver implements Observer {
00027     
00028     private DiscoveryEventHandler eventHandler;
00029     
00030     
00031     
00032     public DiscovererObserver(DiscoveryEventHandler eventHandler) {
00033         this.eventHandler = eventHandler;
00034     }
00035     
00036     
00037     public void update(Observable o, Object arg){
00038         Discoverer discoverer = (Discoverer)o;
00039         DiscoveryError discoveryError =  null ;
00040         Enumeration devices = null;
00041         int discovererState = discoverer.getState();
00042         
00043         switch (discovererState){
00044             case DiscovererState.DEVICE_SEARCH:
00045                 eventHandler.discoveryStarted();
00046                 break;
00047                 
00048             case DiscovererState.DISCOVERY_ERROR:
00049                 discoveryError = (DiscoveryError)arg;
00050                 eventHandler.discoveryError((DiscoveryError)arg);
00051                 break;
00052                 
00053             case DiscovererState.SERVICE_SEARCH:
00054                 
00055                     devices = discoverer.getDiscoveryReport().getDevices();
00056                
00057                 eventHandler.serviceSearchStarted(devices);
00058                 break;
00059                 
00060             case DiscovererState.NEW_SERVICE_SEARCH_ERROR:
00061                 discoveryError = (DiscoveryError)arg;
00062                 eventHandler.serviceSearchError((ServiceSearchError)arg);
00063                 break;
00064                 
00065             case DiscovererState.NEW_SERVICE_SEARCH_COMPLETE:
00066                 RemoteDevice rd = (RemoteDevice)arg;
00067                 Vector services = discoverer.getDiscoveryReport().getServices(rd);
00068                 /*
00069                  * Recupero la device a cui sono associati i servizi. Tutti i
00070                  * servizi si riferiscono alla medesima device, sono sicuro che
00071                  * il vector contiene almeno un servizio (perchè diversamente ci 
00072                  * si troverebbe nel case relativo a NEW_SERVICE_SEARCH_ERROR) quindi
00073                  * recupero la device dal primo elemento del record
00074                  */
00075                 
00076                 eventHandler.servicesFound(services, rd);
00077                 break;
00078                 
00079             case DiscovererState.READY:
00080                 eventHandler.discoveryCompleted(discoverer.getDiscoveryReport());
00081                 break;
00082         }
00083         
00084         
00085     }
00086     
00087 }

Generato il Thu Jun 23 00:02:59 2005 per JAEBI - BlueTooth J2ME Midlet Client da  doxygen 1.4.3