001 /** 002 * Copyright 2003-2005 Arthur van Hoff, Rick Blair 003 * 004 * Licensed to the Apache Software Foundation (ASF) under one or more 005 * contributor license agreements. See the NOTICE file distributed with 006 * this work for additional information regarding copyright ownership. 007 * The ASF licenses this file to You under the Apache License, Version 2.0 008 * (the "License"); you may not use this file except in compliance with 009 * the License. You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, software 014 * distributed under the License is distributed on an "AS IS" BASIS, 015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 016 * See the License for the specific language governing permissions and 017 * limitations under the License. 018 */ 019 package org.apache.activemq.jmdns; 020 021 import java.util.EventObject; 022 import java.util.logging.Logger; 023 024 /** 025 * ServiceEvent. 026 * 027 * @author Werner Randelshofer, Rick Blair 028 * @version %I%, %G% 029 */ 030 public class ServiceEvent extends EventObject 031 { 032 private static Logger logger = Logger.getLogger(ServiceEvent.class.toString()); 033 /** 034 * The type name of the service. 035 */ 036 private String type; 037 /** 038 * The instance name of the service. Or null, if the event was 039 * fired to a service type listener. 040 */ 041 private String name; 042 /** 043 * The service info record, or null if the service could be be resolved. 044 * This is also null, if the event was fired to a service type listener. 045 */ 046 private ServiceInfo info; 047 048 /** 049 * Creates a new instance. 050 * 051 * @param source the JmDNS instance which originated the event. 052 * @param type the type name of the service. 053 * @param name the instance name of the service. 054 * @param info the service info record, or null if the service could be be resolved. 055 */ 056 public ServiceEvent(JmDNS source, String type, String name, ServiceInfo info) 057 { 058 super(source); 059 this.type = type; 060 this.name = name; 061 this.info = info; 062 } 063 064 /** 065 * Returns the JmDNS instance which originated the event. 066 */ 067 public JmDNS getDNS() 068 { 069 return (JmDNS) getSource(); 070 } 071 072 /** 073 * Returns the fully qualified type of the service. 074 */ 075 public String getType() 076 { 077 return type; 078 } 079 080 /** 081 * Returns the instance name of the service. 082 * Always returns null, if the event is sent to a service type listener. 083 */ 084 public String getName() 085 { 086 return name; 087 } 088 089 /** 090 * Returns the service info record, or null if the service could not be 091 * resolved. 092 * Always returns null, if the event is sent to a service type listener. 093 */ 094 public ServiceInfo getInfo() 095 { 096 return info; 097 } 098 099 public String toString() 100 { 101 StringBuffer buf = new StringBuffer(); 102 buf.append("<" + getClass().getName() + "> "); 103 buf.append(super.toString()); 104 buf.append(" name "); 105 buf.append(getName()); 106 buf.append(" type "); 107 buf.append(getType()); 108 buf.append(" info "); 109 buf.append(getInfo()); 110 return buf.toString(); 111 } 112 113 }