13742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman// /Copyright 2003-2005 Arthur van Hoff, Rick Blair 23742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman// Licensed under Apache License version 2.0 33742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman// Original license LGPL 43742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 53742d9db8b6edb10627b0f89336cca5249f1d15aManuel Romanpackage javax.jmdns.impl; 63742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 73742d9db8b6edb10627b0f89336cca5249f1d15aManuel Romanimport javax.jmdns.JmDNS; 83742d9db8b6edb10627b0f89336cca5249f1d15aManuel Romanimport javax.jmdns.ServiceEvent; 93742d9db8b6edb10627b0f89336cca5249f1d15aManuel Romanimport javax.jmdns.ServiceInfo; 103742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 113742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman/** 123742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * ServiceEvent. 133742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * 143742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @author Werner Randelshofer, Rick Blair 153742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 163742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman/** 173742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * 183742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 193742d9db8b6edb10627b0f89336cca5249f1d15aManuel Romanpublic class ServiceEventImpl extends ServiceEvent { 203742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /** 213742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * 223742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 233742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman private static final long serialVersionUID = 7107973622016897488L; 243742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman // private static Logger logger = Logger.getLogger(ServiceEvent.class.getName()); 253742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /** 263742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * The type name of the service. 273742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 283742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman private final String _type; 293742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /** 303742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * The instance name of the service. Or null, if the event was fired to a service type listener. 313742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 323742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman private final String _name; 333742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /** 343742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * The service info record, or null if the service could be be resolved. This is also null, if the event was fired to a service type listener. 353742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 363742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman private final ServiceInfo _info; 373742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 383742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /** 393742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * Creates a new instance. 403742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * 413742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @param jmDNS 423742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * the JmDNS instance which originated the event. 433742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @param type 443742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * the type name of the service. 453742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @param name 463742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * the instance name of the service. 473742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @param info 483742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * the service info record, or null if the service could be be resolved. 493742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 503742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman public ServiceEventImpl(JmDNSImpl jmDNS, String type, String name, ServiceInfo info) { 513742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman super(jmDNS); 523742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman this._type = type; 533742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman this._name = name; 543742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman this._info = info; 553742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman } 563742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 573742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /* 583742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * (non-Javadoc) 593742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @see javax.jmdns.ServiceEvent#getDNS() 603742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 613742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman @Override 623742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman public JmDNS getDNS() { 633742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman return (JmDNS) getSource(); 643742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman } 653742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 663742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /* 673742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * (non-Javadoc) 683742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @see javax.jmdns.ServiceEvent#getType() 693742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 703742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman @Override 713742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman public String getType() { 723742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman return _type; 733742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman } 743742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 753742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /* 763742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * (non-Javadoc) 773742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @see javax.jmdns.ServiceEvent#getName() 783742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 793742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman @Override 803742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman public String getName() { 813742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman return _name; 823742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman } 833742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 843742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /* 853742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * (non-Javadoc) 863742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @see java.util.EventObject#toString() 873742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 883742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman @Override 893742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman public String toString() { 903742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman StringBuilder buf = new StringBuilder(); 913742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman buf.append("[" + this.getClass().getSimpleName() + "@" + System.identityHashCode(this) + " "); 923742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman buf.append("\n\tname: '"); 933742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman buf.append(this.getName()); 943742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman buf.append("' type: '"); 953742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman buf.append(this.getType()); 963742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman buf.append("' info: '"); 973742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman buf.append(this.getInfo()); 983742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman buf.append("']"); 993742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman // buf.append("' source: "); 1003742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman // buf.append("\n\t" + source + ""); 1013742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman // buf.append("\n]"); 1023742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman return buf.toString(); 1033742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman } 1043742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 1053742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /* 1063742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * (non-Javadoc) 1073742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @see javax.jmdns.ServiceEvent#getInfo() 1083742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 1093742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman @Override 1103742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman public ServiceInfo getInfo() { 1113742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman return _info; 1123742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman } 1133742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 1143742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman /* 1153742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * (non-Javadoc) 1163742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman * @see javax.jmdns.ServiceEvent#clone() 1173742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman */ 1183742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman @Override 1193742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman public ServiceEventImpl clone() { 1203742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman ServiceInfoImpl newInfo = new ServiceInfoImpl(this.getInfo()); 1213742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman return new ServiceEventImpl((JmDNSImpl) this.getDNS(), this.getType(), this.getName(), newInfo); 1223742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman } 1233742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman 1243742d9db8b6edb10627b0f89336cca5249f1d15aManuel Roman} 125