1// /Copyright 2003-2005 Arthur van Hoff, Rick Blair
2// Licensed under Apache License version 2.0
3// Original license LGPL
4
5package javax.jmdns.impl;
6
7import javax.jmdns.JmDNS;
8import javax.jmdns.ServiceEvent;
9import javax.jmdns.ServiceInfo;
10
11/**
12 * ServiceEvent.
13 *
14 * @author Werner Randelshofer, Rick Blair
15 */
16/**
17 *
18 */
19public class ServiceEventImpl extends ServiceEvent {
20    /**
21     *
22     */
23    private static final long serialVersionUID = 7107973622016897488L;
24    // private static Logger logger = Logger.getLogger(ServiceEvent.class.getName());
25    /**
26     * The type name of the service.
27     */
28    private final String      _type;
29    /**
30     * The instance name of the service. Or null, if the event was fired to a service type listener.
31     */
32    private final String      _name;
33    /**
34     * 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.
35     */
36    private final ServiceInfo _info;
37
38    /**
39     * Creates a new instance.
40     *
41     * @param jmDNS
42     *            the JmDNS instance which originated the event.
43     * @param type
44     *            the type name of the service.
45     * @param name
46     *            the instance name of the service.
47     * @param info
48     *            the service info record, or null if the service could be be resolved.
49     */
50    public ServiceEventImpl(JmDNSImpl jmDNS, String type, String name, ServiceInfo info) {
51        super(jmDNS);
52        this._type = type;
53        this._name = name;
54        this._info = info;
55    }
56
57    /*
58     * (non-Javadoc)
59     * @see javax.jmdns.ServiceEvent#getDNS()
60     */
61    @Override
62    public JmDNS getDNS() {
63        return (JmDNS) getSource();
64    }
65
66    /*
67     * (non-Javadoc)
68     * @see javax.jmdns.ServiceEvent#getType()
69     */
70    @Override
71    public String getType() {
72        return _type;
73    }
74
75    /*
76     * (non-Javadoc)
77     * @see javax.jmdns.ServiceEvent#getName()
78     */
79    @Override
80    public String getName() {
81        return _name;
82    }
83
84    /*
85     * (non-Javadoc)
86     * @see java.util.EventObject#toString()
87     */
88    @Override
89    public String toString() {
90        StringBuilder buf = new StringBuilder();
91        buf.append("[" + this.getClass().getSimpleName() + "@" + System.identityHashCode(this) + " ");
92        buf.append("\n\tname: '");
93        buf.append(this.getName());
94        buf.append("' type: '");
95        buf.append(this.getType());
96        buf.append("' info: '");
97        buf.append(this.getInfo());
98        buf.append("']");
99        // buf.append("' source: ");
100        // buf.append("\n\t" + source + "");
101        // buf.append("\n]");
102        return buf.toString();
103    }
104
105    /*
106     * (non-Javadoc)
107     * @see javax.jmdns.ServiceEvent#getInfo()
108     */
109    @Override
110    public ServiceInfo getInfo() {
111        return _info;
112    }
113
114    /*
115     * (non-Javadoc)
116     * @see javax.jmdns.ServiceEvent#clone()
117     */
118    @Override
119    public ServiceEventImpl clone() {
120        ServiceInfoImpl newInfo = new ServiceInfoImpl(this.getInfo());
121        return new ServiceEventImpl((JmDNSImpl) this.getDNS(), this.getType(), this.getName(), newInfo);
122    }
123
124}
125