001/* 002 * Licensed to DuraSpace under one or more contributor license agreements. 003 * See the NOTICE file distributed with this work for additional information 004 * regarding copyright ownership. 005 * 006 * DuraSpace licenses this file to you under the Apache License, 007 * Version 2.0 (the "License"); you may not use this file except in 008 * compliance with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018package org.fcrepo.http.commons.webxml.bind; 019 020import javax.xml.bind.annotation.XmlElement; 021import javax.xml.bind.annotation.XmlRootElement; 022 023/** 024 * <p>Listener class.</p> 025 * 026 * @author awoods 027 */ 028@XmlRootElement(namespace = "http://java.sun.com/xml/ns/javaee", 029 name = "listener") 030public class Listener extends Displayable { 031 032 public Listener() { 033 } 034 035 public Listener(final String displayName, final String className) { 036 this.displayName = displayName; 037 this.className = className; 038 } 039 040 @XmlElement(namespace = "http://java.sun.com/xml/ns/javaee", 041 name = "listener-class") 042 String className; 043 044 public String className() { 045 return this.className; 046 } 047 048 @Override 049 public boolean equals(final Object object) { 050 if (object instanceof Listener) { 051 final Listener that = (Listener) object; 052 final boolean className = 053 (this.className == null) ? that.className == null 054 : this.className.equals(that.className); 055 final boolean displayName = 056 (this.displayName == null) ? that.displayName == null 057 : this.displayName.equals(that.displayName); 058 return className && displayName; 059 } 060 return false; 061 } 062 063 @Override 064 public int hashCode() { 065 return className.hashCode() + 2 * displayName.hashCode(); 066 } 067 068}