/* * Copyright Aduna (http://www.aduna-software.com/) (c) 2007. * * Licensed under the Aduna BSD-style license. */ package org.openrdf.query.resultio.text; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.nio.charset.Charset; import info.aduna.io.IOUtil; import org.openrdf.query.resultio.BooleanQueryResultFormat; import org.openrdf.query.resultio.BooleanQueryResultParser; import org.openrdf.query.resultio.QueryResultParseException; /** * Reader for the plain text boolean result format. */ public class BooleanTextParser implements BooleanQueryResultParser { /*--------------* * Constructors * *--------------*/ /** * Creates a new parser for the plain text boolean query result format. */ public BooleanTextParser() { super(); } /*---------* * Methods * *---------*/ public final BooleanQueryResultFormat getBooleanQueryResultFormat() { return BooleanQueryResultFormat.TEXT; } public synchronized boolean parse(InputStream in) throws IOException, QueryResultParseException { Reader reader = new InputStreamReader(in, Charset.forName("US-ASCII")); String value = IOUtil.readString(reader, 16); value = value.trim(); if (value.equalsIgnoreCase("true")) { return true; } else if (value.equalsIgnoreCase("false")) { return false; } else { throw new QueryResultParseException("Invalid value: " + value); } } }