/* * Copyright (c) 2008-2010, Matthias Mann * * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Matthias Mann nor the names of its contributors may * be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package de.matthiasmann.twl.textarea; /** * * @author Matthias Mann */ public class StyleSheetKey { final String element; final String className; final String id; public StyleSheetKey(String element, String className, String id) { this.element = element; this.className = className; this.id = id; } public String getClassName() { return className; } public String getElement() { return element; } public String getId() { return id; } @Override public boolean equals(Object obj) { if(obj instanceof StyleSheetKey) { final StyleSheetKey other = (StyleSheetKey)obj; return ((this.element == null) ? (other.element == null) : this.element.equals(other.element)) && ((this.className == null) ? (other.className == null) : this.className.equals(other.className)) && ((this.id == null) ? (other.id == null) : this.id.equals(other.id)); } return false; } @Override public int hashCode() { int hash = 7; hash = 53 * hash + (this.element != null ? this.element.hashCode() : 0); hash = 53 * hash + (this.className != null ? this.className.hashCode() : 0); hash = 53 * hash + (this.id != null ? this.id.hashCode() : 0); return hash; } public boolean matches(StyleSheetKey what) { if(this.element != null && !this.element.equals(what.element)) { return false; } if(this.className != null && !this.className.equals(what.className)) { return false; } if(this.id != null && !this.id.equals(what.id)) { return false; } return true; } @Override public String toString() { StringBuilder sb = new StringBuilder().append(element); if(className != null) { sb.append('.').append(className); } if(id != null) { sb.append('#').append(id); } return sb.toString(); } }