/** * Global Sensor Networks (GSN) Source Code * Copyright (c) 2006-2016, Ecole Polytechnique Federale de Lausanne (EPFL) * * This file is part of GSN. * * GSN is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * GSN 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GSN. If not, see <http://www.gnu.org/licenses/>. * * File: src/ch/epfl/gsn/utils/KeyValueImp.java * * @author Timotee Maret * @author Ali Salehi * */ package ch.epfl.gsn.utils; import java.io.Serializable; import org.apache.commons.collections.KeyValue; import org.slf4j.LoggerFactory; import ch.epfl.gsn.utils.KeyValueImp; import org.slf4j.Logger; /** * The <I> Predicate </I> class represents mapping between a key and a value. * Two predicates are the same if they have the same name and value. This class * is used for Abstract Addressing and Options. */ public class KeyValueImp implements KeyValue , Serializable { private static final long serialVersionUID = 5739537343169906104L; private transient final Logger logger = LoggerFactory.getLogger( KeyValueImp.class ); private String key; private String value; public KeyValueImp ( ) { } public KeyValueImp ( String key , String value ) { this.key = key; this.value = value; } public void setKey ( String key ) { this.key = key; } public void setValue ( String value ) { this.value = value; } public boolean equals ( Object obj ) { if ( obj == null || !( obj instanceof KeyValueImp ) ) { return false; } KeyValueImp input = ( KeyValueImp ) obj; return input.getKey( ).equalsIgnoreCase( getKey( ) ) && input.getValue( ).equalsIgnoreCase( getValue( ) ); } /** * Converts the value inside the predicate object to boolean or returns * false. * * @return The boolean representation of the value or false if the conversion * fails. */ public boolean valueInBoolean ( ) { boolean result = false; try { result = Boolean.parseBoolean( getValue( ) ); } catch ( Exception e ) { logger.error( e.getMessage( ) , e ); } return result; } /** * Converts the value inside the predicate object to integer or returns 0. * * @return The integer representation of the value or 0 plus contents of * stack trace if the conversion fails. */ public int valueInInteger ( ) { int result = 0; try { result = Integer.parseInt( getValue( ) ); } catch ( Exception e ) { logger.error( e.getMessage( ) , e ); } return result; } public int hashCode ( ) { return toString( ).hashCode( ); } public String toString ( ) { StringBuffer result = new StringBuffer( ); result.append( "Predicate ( Key = " ).append( key ).append( ", Value = " ).append( value ).append( " )\n" ); return result.toString( ); } public String getKey ( ) { return this.key; } public String getValue ( ) { return this.value; } }