| | |
| | | |
| | | |
| | | |
| | | 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; |
| | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | public N apply(M value, Void p) |
| | | public N apply(final M value, final Void p) |
| | | { |
| | | return function.apply(value, parameter); |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | 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")) |
| | |
| | | } |
| | | }; |
| | | |
| | | 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? |
| | | |
| | |
| | | } |
| | | }; |
| | | |
| | | 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(); |
| | | } |
| | |
| | | |
| | | |
| | | /** |
| | | * 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); |
| | | } |
| | |
| | | |
| | | |
| | | /** |
| | | * 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() |
| | | { |
| | |
| | | |
| | | |
| | | /** |
| | | * 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() |
| | | { |
| | |
| | | |
| | | |
| | | /** |
| | | * 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); |
| | | } |
| | |
| | | |
| | | |
| | | /** |
| | | * 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() |
| | | { |
| | |
| | | |
| | | |
| | | /** |
| | | * 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() |
| | | { |
| | |
| | | |
| | | |
| | | /** |
| | | * 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); |
| | | } |
| | |
| | | |
| | | |
| | | /** |
| | | * 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() |
| | | { |
| | |
| | | |
| | | |
| | | /** |
| | | * 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() |
| | | { |
| | |
| | | |
| | | |
| | | /** |
| | | * 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() |
| | | { |
| | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 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() |
| | | { |