package com.github.davidmoten.rx.jdbc; import rx.functions.Func1; /** * Encapsulates a query parameter. */ final class Parameter { private final String name; /** * Actual query parameter value to be encapsulated. */ private final Object value; /** * Constructor. * * @param parameter */ Parameter(Object value) { this(null, value); } Parameter(String name, Object value) { this.name = name; this.value = value; } /** * Returns the parameter value. * * @return */ Object value() { return value; } boolean hasName() { return name != null; } String name() { return name; } @Override public String toString() { StringBuilder builder = new StringBuilder(); if (value instanceof String) builder.append("'"); builder.append(value); if (value instanceof String) builder.append("'"); return builder.toString(); } /** * A conversion function for use in Observable.map(). */ static final Func1<Object, Parameter> TO_PARAMETER = new Func1<Object, Parameter>() { @Override public Parameter call(Object parameter) { Conditions.checkFalse(parameter instanceof Parameter); return new Parameter(parameter); } }; }