/** * Copyright (C) 2004 Orbeon, Inc. * * This program is free software; you can redistribute it and/or modify it under the terms of the * GNU Lesser General Public License as published by the Free Software Foundation; either version * 2.1 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * The full text of the license is available at http://www.gnu.org/copyleft/lesser.html */ package org.orbeon.oxf.cache; import org.orbeon.oxf.processor.ProcessorInput; public class InputCacheKey extends CacheKeyImpl { private String inputName; private OutputCacheKey outputKey; private int hash; public InputCacheKey(ProcessorInput input, OutputCacheKey outputKey) { setClazz(input.getProcessorClass()); setInputName(input.getName()); setOutputKey(outputKey); } public String getInputName() { return inputName; } public void setInputName(String inputName) { this.inputName = inputName; } public OutputCacheKey getOutputKey() { return outputKey; } public void setOutputKey(OutputCacheKey outputKey) { this.outputKey = outputKey; } @Override public boolean equals(Object other) { return other instanceof InputCacheKey && super.equals(other) && ((InputCacheKey) other).inputName.equals(inputName) && ((InputCacheKey) other).outputKey.equals(outputKey); } @Override public int hashCode() { if (hash == 0) { int hash = 1; hash += 31*hash + super.hashCode(); hash += 31*hash + inputName.hashCode(); hash += 31*hash + outputKey.hashCode(); this.hash = hash; } return hash; } @Override public String toString() { return "InputCacheKey [class: " + CacheUtils.getShortClassName(getClazz()) + ", inputName: " + getInputName() + ", " + getOutputKey().toString() + "]"; } }