/** * Copyright (C) 2014 KAIST * @author Janggwan Im <limg00n@kaist.ac.kr> * */ package org.fosstrak.ale.server.readers.llrp; import java.util.HashSet; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; public class ReaderInitiatedConnectionHashMap extends ConcurrentHashMap<String, ReaderInitiatedConnectionEntry> { @Override public ReaderInitiatedConnectionEntry get(Object key) { String toUpperCase = ((String) key).toUpperCase(); return super.get(toUpperCase); } @Override public ReaderInitiatedConnectionEntry put(String key, ReaderInitiatedConnectionEntry value) { String toUpperCase = key.toUpperCase(); return super.put(toUpperCase, value); } @Override public boolean containsKey(Object key) { String toUpperCase = ((String) key).toUpperCase(); return super.containsKey(toUpperCase); } @Override public ReaderInitiatedConnectionEntry remove(Object key) { String toUpperCase = ((String) key).toUpperCase(); return super.remove(toUpperCase); } @Override public Set<String> keySet() { Set<String> toReturn = new HashSet<String>(); for(String key : super.keySet()) { toReturn.add(key.toUpperCase()); } return toReturn; } public String findPhysicalReaderIdByIpPort(String addr, int port) { for(ReaderInitiatedConnectionEntry e : super.values()) { if(e.getReaderAddr().equalsIgnoreCase(addr) && e.getPort() == port) { return e.getPhysicalReaderId(); } } return null; } public MultipleLLRPEndpoint getMultipleLLRPEndpointByIpPort(String addr, int port) { for(ReaderInitiatedConnectionEntry e : super.values()) { if(e.getReaderAddr().equalsIgnoreCase(addr) && e.getPort() == port) { return e.getEndpoint(); } } return null; } }