All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.unboundid.util.json.JSONBoolean Maven / Gradle / Ivy

Go to download

The UnboundID LDAP SDK for Java is a fast, comprehensive, and easy-to-use Java API for communicating with LDAP directory servers and performing related tasks like reading and writing LDIF, encoding and decoding data using base64 and ASN.1 BER, and performing secure communication. This package contains the Commercial Edition of the LDAP SDK, which includes all of the general-purpose functionality contained in the Standard Edition, plus additional functionality specific to UnboundID server products.

There is a newer version: 3.2.1
Show newest version
/*
 * Copyright 2015-2016 UnboundID Corp.
 * All Rights Reserved.
 */
/*
 * Copyright (C) 2015-2016 UnboundID Corp.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License (GPLv2 only)
 * or the terms of the GNU Lesser General Public License (LGPLv2.1 only)
 * as published by the Free Software Foundation.
 *
 * 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, see .
 */
package com.unboundid.util.json;



import com.unboundid.util.NotMutable;
import com.unboundid.util.ThreadSafety;
import com.unboundid.util.ThreadSafetyLevel;



/**
 * This class provides an implementation of a JSON value that represents a
 * Java Boolean.  The string representation of the JSON Boolean true value is
 * {@code true}, and the string representation of the JSON Boolean false value
 * is {@code false}.  These values are not surrounded by quotation marks, and
 * they must be entirely lowercase.
 */
@NotMutable()
@ThreadSafety(level=ThreadSafetyLevel.COMPLETELY_THREADSAFE)
public final class JSONBoolean
       extends JSONValue
{
  /**
   * A pre-allocated object that represents a value of {@code false}.
   */
  public static final JSONBoolean FALSE = new JSONBoolean(false);



  /**
   * A pre-allocated object that represents a value of {@code true}.
   */
  public static final JSONBoolean TRUE = new JSONBoolean(true);



  /**
   * The serial version UID for this serializable class.
   */
  private static final long serialVersionUID = -5090296701442873481L;



  // The boolean value for this object.
  private final boolean booleanValue;

  // The string representation for this object.
  private final String stringRepresentation;



  /**
   * Creates a new JSON value capable of representing a Boolean value of either
   * {@code true} or {@code false}.
   *
   * @param  booleanValue  The Boolean value for this JSON value.
   */
  public JSONBoolean(final boolean booleanValue)
  {
    this.booleanValue = booleanValue;
    stringRepresentation = (booleanValue ? "true" : "false");
  }



  /**
   * Retrieves the Java boolean value for this JSON value.
   *
   * @return  The Java boolean value for this JSON value.
   */
  public boolean booleanValue()
  {
    return booleanValue;
  }



  /**
   * {@inheritDoc}
   */
  @Override()
  public int hashCode()
  {
    return (booleanValue ? Boolean.TRUE.hashCode() : Boolean.FALSE.hashCode());
  }



  /**
   * {@inheritDoc}
   */
  @Override()
  public boolean equals(final Object o)
  {
    if (o == this)
    {
      return true;
    }

    if (o instanceof JSONBoolean)
    {
      final JSONBoolean b = (JSONBoolean) o;
      return (b.booleanValue == booleanValue);
    }

    return false;
  }



  /**
   * {@inheritDoc}
   */
  @Override()
  public boolean equals(final JSONValue v, final boolean ignoreFieldNameCase,
                        final boolean ignoreValueCase,
                        final boolean ignoreArrayOrder)
  {
    return ((v instanceof JSONBoolean) &&
         (booleanValue == ((JSONBoolean) v).booleanValue));
  }



  /**
   * {@inheritDoc}
   */
  @Override()
  public String toString()
  {
    return stringRepresentation;
  }



  /**
   * {@inheritDoc}
   */
  @Override()
  public void toString(final StringBuilder buffer)
  {
    buffer.append(stringRepresentation);
  }



  /**
   * {@inheritDoc}
   */
  @Override()
  public String toSingleLineString()
  {
    return stringRepresentation;
  }



  /**
   * {@inheritDoc}
   */
  @Override()
  public void toSingleLineString(final StringBuilder buffer)
  {
    buffer.append(stringRepresentation);
  }



  /**
   * {@inheritDoc}
   */
  @Override()
  public String toNormalizedString()
  {
    return stringRepresentation;
  }



  /**
   * {@inheritDoc}
   */
  @Override()
  public void toNormalizedString(final StringBuilder buffer)
  {
    buffer.append(stringRepresentation);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy