/*
 * JBoss, Home of Professional Open Source
 *
 * Copyright 2011 Red Hat, Inc. and/or its affiliates, and individual
 * contributors as indicated by the @author tags.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.xnio;

import java.io.Serializable;

import static org.xnio._private.Messages.msg;

An immutable property represented by a key and value.
Author:Darran Lofthouse
/** * An immutable property represented by a key and value. * * @author <a href="mailto:darran.lofthouse@jboss.com">Darran Lofthouse</a> */
public final class Property implements Serializable { private static final long serialVersionUID = -4958518978461712277L; private final String key; private final Object value; private Property(final String key, final Object value) { if (key == null) throw msg.nullParameter("key"); if (value == null) throw msg.nullParameter("value"); this.key = key; this.value = value; } private Property(final String key, final String value) { this(key, (Object) value); }
Get the key of this key/value Property.
Returns:the key.
/** * Get the key of this key/value Property. * * @return the key. */
public String getKey() { return key; }
Get the value of this key/value Property.
Returns:the value.
/** * Get the value of this key/value Property. * * @return the value. */
public Object getValue() { return value; }
Get the value of this key/value Property.
Returns:the value.
/** * Get the value of this key/value Property. * * @return the value. */
public String getValue$$bridger() { // If the value is not a String we want a ClassCastException to indicate the error. return (String) value; }
Get the String representation of this property.
Returns:the String representation of this property.
/** * Get the {@link String} representation of this property. * * @return the {@link String} representation of this property. */
@Override public String toString() { return "(" + key + "=>" + value.toString() + ")"; }
Get the hash code for this Property.
Returns:the hash code.
/** * Get the hash code for this Property. * * @return the hash code. */
@Override public int hashCode() { return key.hashCode() * 7 + value.hashCode(); }
Determine if this Property equals another Property.
Params:
  • obj – the other Property to compare.
Returns:true if the two Properties are equal.
/** * Determine if this Property equals another Property. * * @param obj the other Property to compare. * @return true if the two Properties are equal. */
@Override public boolean equals(Object obj) { return obj instanceof Property && equals((Property) obj); }
Determine if this Property equals another Property.
Params:
  • other – the other Property to compare.
Returns:true if the two Properties are equal.
/** * Determine if this Property equals another Property. * * @param other the other Property to compare. * @return true if the two Properties are equal. */
public boolean equals(Property other) { return key.equals(other.key) && value.equals(other.value); }
Create a new property for the specified key and value.
Params:
  • key – the key for new Property
  • value – the value for the new Property
Returns:the newly created Property
/** * Create a new property for the specified key and value. * * @param key the key for new Property * @param value the value for the new Property * @return the newly created Property */
public static Property of(final String key, final Object value) { return new Property(key, value); }
Create a new property for the specified key and value.
Params:
  • key – the key for new Property
  • value – the value for the new Property
Returns:the newly created Property
/** * Create a new property for the specified key and value. * * @param key the key for new Property * @param value the value for the new Property * @return the newly created Property */
public static Property of(final String key, final String value) { return new Property(key, value); } }