package org.basex.query.item;
import java.io.InputStream;
import org.basex.io.in.ArrayInput;
import org.basex.query.QueryException;
import org.basex.query.expr.Expr;
import org.basex.util.InputInfo;
import org.basex.util.Token;
/**
* Binary item.
*
* @author BaseX Team 2005-12, BSD License
* @author Christian Gruen
*/
public abstract class Bin extends Item {
/** Binary data. */
byte[] data;
/**
* Constructor.
* @param d binary data
* @param t type
*/
Bin(final byte[] d, final Type t) {
super(t);
data = d;
}
/**
* Returns the binary content.
* @param ii input info
* @return content
* @throws QueryException query exception
*/
@SuppressWarnings("unused")
byte[] val(final InputInfo ii) throws QueryException {
return data;
}
@Override
public InputStream input(final InputInfo ii) throws QueryException {
return new ArrayInput(data);
}
@Override
public final byte[] toJava() throws QueryException {
return val(null);
}
@Override
public final boolean sameAs(final Expr cmp) {
if(!(cmp instanceof Bin)) return false;
final Bin b = (Bin) cmp;
return type == b.type && Token.eq(data, b.data);
}
}