mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

matthew_swift
28.47.2010 f2160f4bd1c8ac67e5a86a6710d431e8932877f9
sdk/src/com/sun/opends/sdk/util/Functions.java
@@ -51,7 +51,7 @@
    private FixedFunction(Function<M, N, P> function, P p)
    private FixedFunction(final Function<M, N, P> function, final P p)
    {
      this.function = function;
      this.parameter = p;
@@ -62,7 +62,7 @@
    /**
     * {@inheritDoc}
     */
    public N apply(M value, Void p)
    public N apply(final M value, final Void p)
    {
      return function.apply(value, parameter);
    }
@@ -71,22 +71,25 @@
  private static final Function<ByteString, AttributeDescription, Schema> BYTESTRING_TO_ATTRIBUTE_DESCRIPTION = new Function<ByteString, AttributeDescription, Schema>()
  private static final Function<ByteString, AttributeDescription, Schema>
    BYTESTRING_TO_ATTRIBUTE_DESCRIPTION =
      new Function<ByteString, AttributeDescription, Schema>()
  {
    public AttributeDescription apply(ByteString value, Schema p)
    public AttributeDescription apply(final ByteString value, final Schema p)
    {
      // FIXME: what should we do if parsing fails?
      return AttributeDescription.valueOf(value.toString(), p);
    }
  };
  private static final Function<ByteString, Boolean, Void> BYTESTRING_TO_BOOLEAN = new Function<ByteString, Boolean, Void>()
  private static final Function<ByteString, Boolean, Void>
    BYTESTRING_TO_BOOLEAN = new Function<ByteString, Boolean, Void>()
  {
    public Boolean apply(ByteString value, Void p)
    public Boolean apply(final ByteString value, final Void p)
    {
      String valueString = StaticUtils.toLowerCase(value.toString());
      final String valueString = StaticUtils.toLowerCase(value.toString());
      if (valueString.equals("true") || valueString.equals("yes")
          || valueString.equals("on") || valueString.equals("1"))
@@ -106,10 +109,11 @@
    }
  };
  private static final Function<ByteString, DN, Schema> BYTESTRING_TO_DN = new Function<ByteString, DN, Schema>()
  private static final Function<ByteString, DN, Schema> BYTESTRING_TO_DN =
    new Function<ByteString, DN, Schema>()
  {
    public DN apply(ByteString value, Schema p)
    public DN apply(final ByteString value, final Schema p)
    {
      // FIXME: what should we do if parsing fails?
@@ -118,48 +122,53 @@
    }
  };
  private static final Function<ByteString, Integer, Void> BYTESTRING_TO_INTEGER = new Function<ByteString, Integer, Void>()
  private static final Function<ByteString, Integer, Void>
    BYTESTRING_TO_INTEGER = new Function<ByteString, Integer, Void>()
  {
    public Integer apply(ByteString value, Void p)
    public Integer apply(final ByteString value, final Void p)
    {
      // We do not use ByteString.toInt() as we are string based.
      return Integer.valueOf(value.toString());
    }
  };
  private static final Function<ByteString, Long, Void> BYTESTRING_TO_LONG = new Function<ByteString, Long, Void>()
  private static final Function<ByteString, Long, Void> BYTESTRING_TO_LONG =
    new Function<ByteString, Long, Void>()
  {
    public Long apply(ByteString value, Void p)
    public Long apply(final ByteString value, final Void p)
    {
      // We do not use ByteString.toLong() as we are string based.
      return Long.valueOf(value.toString());
    }
  };
  private static final Function<ByteString, String, Void> BYTESTRING_TO_STRING = new Function<ByteString, String, Void>()
  private static final Function<ByteString, String, Void> BYTESTRING_TO_STRING =
    new Function<ByteString, String, Void>()
  {
    public String apply(ByteString value, Void p)
    public String apply(final ByteString value, final Void p)
    {
      return value.toString();
    }
  };
  private static final Function<Object, ByteString, Void> OBJECT_TO_BYTESTRING = new Function<Object, ByteString, Void>()
  private static final Function<Object, ByteString, Void> OBJECT_TO_BYTESTRING =
    new Function<Object, ByteString, Void>()
  {
    public ByteString apply(Object value, Void p)
    public ByteString apply(final Object value, final Void p)
    {
      return ByteString.valueOf(value);
    }
  };
  private static final Function<String, String, Void> NORMALIZE_STRING = new Function<String, String, Void>()
  private static final Function<String, String, Void> NORMALIZE_STRING =
    new Function<String, String, Void>()
  {
    public String apply(String value, Void p)
    public String apply(final String value, final Void p)
    {
      return StaticUtils.toLowerCase(value).trim();
    }
@@ -168,27 +177,26 @@
  /**
   * Returns a function which which always invokes {@code function} with
   * {@code p}.
   * Returns a function which which always invokes {@code function} with {@code
   * p}.
   *
   * @param <M>
   *          The type of input values transformed by this function.
   * @param <N>
   *          The type of output values return by this function.
   * @param <P>
   *          The type of the additional parameter to this function's
   *          {@code apply} method. Use {@link java.lang.Void} for
   *          functions that do not need an additional parameter.
   *          The type of the additional parameter to this function's {@code
   *          apply} method. Use {@link java.lang.Void} for functions that do
   *          not need an additional parameter.
   * @param function
   *          The function to wrap.
   * @param p
   *          The parameter which will always be passed to {@code
   *          function}.
   * @return A function which which always invokes {@code function} with
   *         {@code p}.
   *          The parameter which will always be passed to {@code function}.
   * @return A function which which always invokes {@code function} with {@code
   *         p}.
   */
  public static <M, N, P> Function<M, N, Void> fixedFunction(
      Function<M, N, P> function, P p)
      final Function<M, N, P> function, final P p)
  {
    return new FixedFunction<M, N, P>(function, p);
  }
@@ -196,11 +204,11 @@
  /**
   * Returns a function which converts a {@code String} to lower case
   * using {@link StaticUtils#toLowerCase} and then trims it.
   * Returns a function which converts a {@code String} to lower case using
   * {@link StaticUtils#toLowerCase} and then trims it.
   *
   * @return A function which converts a {@code String} to lower case
   *         using {@link StaticUtils#toLowerCase} and then trims it.
   * @return A function which converts a {@code String} to lower case using
   *         {@link StaticUtils#toLowerCase} and then trims it.
   */
  public static Function<String, String, Void> normalizeString()
  {
@@ -210,13 +218,26 @@
  /**
   * Returns a function which parses the string representation of a
   * {@code ByteString} as an {@code AttributeDescription} using the
   * default schema. Invalid values will result in a {@code
   * LocalizedIllegalArgumentException}.
   * Returns a function which converts an {@code Object} to a {@code ByteString}
   * using the {@link ByteString#valueOf(Object)} method.
   *
   * @return A function which parses the string representation of a
   *         {@code ByteString} as an {@code AttributeDescription}.
   * @return A function which converts an {@code Object} to a {@code ByteString}
   *         .
   */
  public static Function<Object, ByteString, Void> objectToByteString()
  {
    return OBJECT_TO_BYTESTRING;
  }
  /**
   * Returns a function which parses the string representation of a {@code
   * ByteString} as an {@code AttributeDescription} using the default schema.
   * Invalid values will result in a {@code LocalizedIllegalArgumentException}.
   *
   * @return A function which parses the string representation of a {@code
   *         ByteString} as an {@code AttributeDescription}.
   */
  public static Function<ByteString, AttributeDescription, Void> valueToAttributeDescription()
  {
@@ -227,18 +248,17 @@
  /**
   * Returns a function which parses the string representation of a
   * {@code ByteString} as an {@code AttributeDescription} using the
   * provided schema. Invalid values will result in a {@code
   * LocalizedIllegalArgumentException}.
   * Returns a function which parses the string representation of a {@code
   * ByteString} as an {@code AttributeDescription} using the provided schema.
   * Invalid values will result in a {@code LocalizedIllegalArgumentException}.
   *
   * @param schema
   *          The schema to use for decoding attribute descriptions.
   * @return A function which parses the string representation of a
   *         {@code ByteString} as an {@code AttributeDescription}.
   * @return A function which parses the string representation of a {@code
   *         ByteString} as an {@code AttributeDescription}.
   */
  public static Function<ByteString, AttributeDescription, Void> valueToAttributeDescription(
      Schema schema)
      final Schema schema)
  {
    return fixedFunction(BYTESTRING_TO_ATTRIBUTE_DESCRIPTION, schema);
  }
@@ -246,14 +266,14 @@
  /**
   * Returns a function which parses the string representation of a
   * {@code ByteString} to a {@code Boolean}. The function will accept
   * the values {@code 0}, {@code false}, {@code no}, {@code off},
   * {@code 1}, {@code true}, {@code yes}, {@code on}. All other values
   * will result in a {@code NumberFormatException}.
   * Returns a function which parses the string representation of a {@code
   * ByteString} to a {@code Boolean}. The function will accept the values
   * {@code 0}, {@code false}, {@code no}, {@code off}, {@code 1}, {@code true},
   * {@code yes}, {@code on}. All other values will result in a {@code
   * NumberFormatException}.
   *
   * @return A function which transforms a {@code ByteString} to a
   *         {@code Boolean}.
   * @return A function which transforms a {@code ByteString} to a {@code
   *         Boolean}.
   */
  public static Function<ByteString, Boolean, Void> valueToBoolean()
  {
@@ -263,13 +283,12 @@
  /**
   * Returns a function which parses the string representation of a
   * {@code ByteString} as a {@code DN} using the default schema.
   * Invalid values will result in a {@code
   * LocalizedIllegalArgumentException}.
   * Returns a function which parses the string representation of a {@code
   * ByteString} as a {@code DN} using the default schema. Invalid values will
   * result in a {@code LocalizedIllegalArgumentException}.
   *
   * @return A function which parses the string representation of a
   *         {@code ByteString} as an {@code DN}.
   * @return A function which parses the string representation of a {@code
   *         ByteString} as an {@code DN}.
   */
  public static Function<ByteString, DN, Void> valueToDN()
  {
@@ -279,17 +298,16 @@
  /**
   * Returns a function which parses the string representation of a
   * {@code ByteString} as a {@code DN} using the provided schema.
   * Invalid values will result in a {@code
   * LocalizedIllegalArgumentException}.
   * Returns a function which parses the string representation of a {@code
   * ByteString} as a {@code DN} using the provided schema. Invalid values will
   * result in a {@code LocalizedIllegalArgumentException}.
   *
   * @param schema
   *          The schema to use for decoding DNs.
   * @return A function which parses the string representation of a
   *         {@code ByteString} as an {@code DN}.
   * @return A function which parses the string representation of a {@code
   *         ByteString} as an {@code DN}.
   */
  public static Function<ByteString, DN, Void> valueToDN(Schema schema)
  public static Function<ByteString, DN, Void> valueToDN(final Schema schema)
  {
    return fixedFunction(BYTESTRING_TO_DN, schema);
  }
@@ -297,12 +315,12 @@
  /**
   * Returns a function which parses the string representation of a
   * {@code ByteString} as an {@code Integer}. Invalid values will
   * result in a {@code NumberFormatException}.
   * Returns a function which parses the string representation of a {@code
   * ByteString} as an {@code Integer}. Invalid values will result in a {@code
   * NumberFormatException}.
   *
   * @return A function which parses the string representation of a
   *         {@code ByteString} as an {@code Integer}.
   * @return A function which parses the string representation of a {@code
   *         ByteString} as an {@code Integer}.
   */
  public static Function<ByteString, Integer, Void> valueToInteger()
  {
@@ -312,12 +330,12 @@
  /**
   * Returns a function which parses the string representation of a
   * {@code ByteString} as a {@code Long}. Invalid values will result in
   * a {@code NumberFormatException}.
   * Returns a function which parses the string representation of a {@code
   * ByteString} as a {@code Long}. Invalid values will result in a {@code
   * NumberFormatException}.
   *
   * @return A function which parses the string representation of a
   *         {@code ByteString} as a {@code Long}.
   * @return A function which parses the string representation of a {@code
   *         ByteString} as a {@code Long}.
   */
  public static Function<ByteString, Long, Void> valueToLong()
  {
@@ -327,11 +345,11 @@
  /**
   * Returns a function which parses a {@code ByteString} as a UTF-8
   * encoded {@code String}.
   * Returns a function which parses a {@code ByteString} as a UTF-8 encoded
   * {@code String}.
   *
   * @return A function which parses the string representation of a
   *         {@code ByteString} as a UTF-8 encoded {@code String}.
   * @return A function which parses the string representation of a {@code
   *         ByteString} as a UTF-8 encoded {@code String}.
   */
  public static Function<ByteString, String, Void> valueToString()
  {
@@ -340,20 +358,6 @@
  /**
   * Returns a function which converts an {@code Object} to a {@code
   * ByteString} using the {@link ByteString#valueOf(Object)} method.
   *
   * @return A function which converts an {@code Object} to a {@code
   *         ByteString}.
   */
  public static Function<Object, ByteString, Void> objectToByteString()
  {
    return OBJECT_TO_BYTESTRING;
  }
  // Prevent instantiation
  private Functions()
  {