package org.basex.query; import org.basex.core.*; import org.basex.io.*; /** * This class references input passed on in a query. It can be a file path or a database name. * * @author BaseX Team 2005-17, BSD License * @author Christian Gruen */ public final class QueryInput { /** Input reference. */ public final IO io; /** Database name ({@code null} indicates that no name can be extracted from original path). */ public String dbName; /** Original input string (resource URI, database path or XML string). */ final String original; /** Database path (empty string indicates root). */ String dbPath = ""; /** * Constructor. * @param original original input string * @param sc static context */ public QueryInput(final String original, final StaticContext sc) { this.original = original; io = sc.resolve(original); // check if the specified input string can be rewritten to a database name and path String name = original.startsWith("/") ? original.substring(1) : original, path = ""; final int s = name.indexOf('/'); if(s != -1) { path = name.substring(s + 1); name = name.substring(0, s); } if(Databases.validName(name)) { dbName = name; dbPath = path; } } @Override public String toString() { return original; } }