package org.odata4j.core; /** * A custom Boolean class is necessary to support Boolean representations as * defined in the OData standard. * <p>The name of this class pays homage to * <a href="http://en.wikipedia.org/wiki/George_Boole">George Boole (1815–1864)</a>.</p> */ public enum Boole { TRUE(Boolean.TRUE, "true", "1"), FALSE(Boolean.FALSE, "false", "0"); private Boolean booleanValue; private String value1, value2; Boole(Boolean booleanValue, String value1, String value2) { this.booleanValue = booleanValue; this.value1 = value1; this.value2 = value2; } public Boolean toBoolean() { return booleanValue; } /** * Convert a string value to {@link Boole}. * @param value OData string representation of a boolean value. * @throws IllegalArgumentException if {@code value} is not one of * {@code true}, {@code false}, {@code 1}, or {@code 0}. */ public static Boole fromString(String value) { for (Boole boole : Boole.values()) if (value.equals(boole.value1) || value.equals(boole.value2)) return boole; throw new IllegalArgumentException(); } }