package zutil.network.ssdp; import java.util.Date; import java.util.UUID; /** * This class contains information about a service from * or through the SSDP protocol * * @author Ziver */ public class StandardSSDPInfo implements SSDPServiceInfo{ private String location; private String st; private String usn; private long expiration_time; /** * @param l is the value to set the Location variable */ public void setLocation(String l) { location = l; } /** * @param st is the value to set the SearchTarget variable */ public void setST(String st) { this.st = st; } /** * @param usn is the value to set the USN variable */ protected void setUSN(String usn) { this.usn = usn; } /** * @param time sets the expiration time of values in this object */ protected void setExpirationTime(long time) { expiration_time = time; } /** * @return The URL to the Service, e.g. "http://192.168.0.1:80/index.html" */ public String getLocation(){ return location; } /** * @return the Search Target, e.g. "upnp:rootdevice" */ public String getSearchTarget(){ return st; } /** * @return the expiration time for the values in this object */ public long getExpirationTime(){ return expiration_time; } /** * @return the USN value, e.g. "uuid:abcdefgh-7dec-11d0-a765-00a0c91e6bf6 " */ public String getUSN(){ if( usn==null ) usn = genUSN(); return usn+"::"+st; } /** * @return only the USN UUID String */ public String getUUID(){ if( usn==null ) usn = genUSN(); return usn; } /** * Generates an unique USN for the service * * @param searchTarget is the service ST name * @return an unique string that corresponds to the service */ private String genUSN(){ return "uuid:" + UUID.nameUUIDFromBytes( (st+location+Math.random()).getBytes() ); } public String toString(){ return "USN: "+usn+"\nLocation: "+location+"\nST: "+st+"\nExpiration-Time: "+new Date(expiration_time); } }