/**
* 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() + "]";
}
}