001/* 002 * jPOS Project [http://jpos.org] 003 * Copyright (C) 2000-2026 jPOS Software SRL 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 017 */ 018 019package org.jpos.space; 020 021/** 022 * Reference-equality {@link Template} that matches space entries equal to a 023 * captured value under the configured key. 024 */ 025public class ObjectTemplate implements Template { 026 027 Object key; 028 Object value; 029 030 /** 031 * Constructs a template matching {@code value} under {@code key}. 032 * 033 * @param key entry key 034 * @param value reference value compared via {@code equals} 035 */ 036 public ObjectTemplate(Object key, Object value) { 037 super(); 038 this.key = key; 039 this.value = value; 040 } 041 042 public Object getKey() { 043 return key; 044 } 045 046 @Override 047 public boolean equals(Object obj) { 048 return value.equals(obj); 049 } 050 051 @Override 052 public int hashCode() { 053 return value.hashCode(); 054 } 055 056 @Override 057 public String toString() { 058 return "ObjectTemplate [key=" + key + ", value=" + value + "]"; 059 } 060}