package org.basex.modules; import org.basex.query.*; import org.basex.query.value.item.*; import org.basex.util.*; /** * This module contains static error functions for the Session module. * * @author BaseX Team 2005-17, BSD License * @author Christian Gruen */ final class SessionErrors { /** Error namespace. */ private static final byte[] NS = QueryText.BXERRORS_URI; /** Namespace and error code prefix. */ private static final String PREFIX = new TokenBuilder(QueryText.BXERR_PREFIX).add(':').add("BXSE").toString(); /** Private constructor, preventing instantiation. */ private SessionErrors() { } /** * BXSE0001: function items cannot be stored in sessions. * @return query exception */ static QueryException functionItem() { return thrw(1, "Function items cannot be stored in sessions."); } /** * BXSE0002: stored attribute cannot be retrieved. * @param name name of attribute * @return query exception */ static QueryException noAttribute(final Object name) { return thrw(2, "Stored attribute cannot be retrieved: %.", name); } /** * BXSE0003: HTTP connection required. * @return query exception */ static QueryException noContext() { return thrw(3, "HTTP connection required."); } /** * BXSE0004: session not found. * @param id session id * @return query exception */ static QueryException whichSession(final Object id) { return thrw(4, "Session not found: %.", id); } /** * Creates a new exception. * @param code error code * @param msg error message * @param ext optional error extension * @return query exception */ private static QueryException thrw(final int code, final String msg, final Object... ext) { final QNm name = new QNm(String.format("%s%04d", PREFIX, code), NS); return new QueryException(null, name, msg, ext); } }