@Override public boolean getBoolean() { Object value = asNode().getLiteralValue(); if (isPlainLiteral()) { // old style plain literal - try parsing the string if (value.equals("true")) { return true; } else if (value.equals("false")) { return false; } else { throw new BadBooleanException( value.toString() ); } } else { // typed literal if (value instanceof Boolean) { return ((Boolean)value).booleanValue(); } else { throw new DatatypeFormatException(this.toString() + " is not a Boolean"); } } }