package org.basex.core.cmd; import static org.basex.core.Text.*; import java.io.IOException; import org.basex.core.*; import org.basex.util.Performance; import org.basex.util.TokenBuilder; /** * Evaluates the 'info' command and returns general database information. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ public final class Info extends AInfo { /** * Default constructor. */ public Info() { super(User.READ); } @Override protected boolean run() throws IOException { out.print(info(context)); return true; } /** * Creates a database information string. * @param context database context * @return info string */ public static String info(final Context context) { final TokenBuilder tb = new TokenBuilder(); tb.add(GENERAL_INFO + NL); format(tb, VERSINFO, Prop.VERSION); if(context.user.perm(User.CREATE)) { Performance.gc(3); format(tb, USED_MEM, Performance.getMem()); } if(context.user.perm(User.ADMIN)) { final AProp prop = context.mprop; tb.add(NL + MAIN_OPTIONS + NL); for(final String s : prop) format(tb, s, prop.get(s).toString()); } final AProp prop = context.prop; tb.add(NL + OPTIONS + NL); for(final String s : prop) format(tb, s, prop.get(s).toString()); return tb.toString(); } }