public Object get(final String name) { assert name != null; Object value = map.get(name); if (value == null && parent != null) { value = parent.get(name); } return value; }
public Object execute(final CommandContext context) throws Exception { assert context != null; log.debug("Changing group to: {}", name); context.getVariables().set(SHELL_GROUP, name); return Result.SUCCESS; }
public void customize(final Shell shell) throws Exception { assert shell != null; Variables vars = shell.getVariables(); // Setup default variables if (!vars.contains(SHELL_HOME)) { vars.set(SHELL_HOME, getShellHomeDir(), false); } if (!vars.contains(SHELL_VERSION)) { vars.set(SHELL_VERSION, getVersion(), false); } if (!vars.contains(SHELL_USER_HOME)) { vars.set(SHELL_USER_HOME, getUserHomeDir(), false); } if (!vars.contains(SHELL_PROMPT)) { vars.set(SHELL_PROMPT, getPrompt()); } if (!vars.contains(SHELL_USER_DIR)) { vars.set(SHELL_USER_DIR, new File(".").getCanonicalFile()); } if (!vars.contains(SHELL_GROUP)) { vars.set(SHELL_GROUP, ROOT); } if (!vars.contains(SHELL_GROUP_PATH)) { vars.set(SHELL_GROUP_PATH, String.format("%s%s%s", CURRENT, PATH_SEPARATOR, ROOT)); } } }
if (key.equals(SHELL_USER_DIR + "~") && vars.contains(SHELL_USER_DIR)) { String home = vars.get(SHELL_USER_HOME, File.class).getAbsolutePath(); String current = vars.get(SHELL_USER_DIR, File.class).getAbsolutePath(); if (current.startsWith(home)) { return "~" + current.substring(home.length(), current.length()); if (key.equals(SHELL_USER_DIR + "~.") && vars.contains(SHELL_USER_DIR)) { String home = vars.get(SHELL_USER_HOME, File.class).getAbsolutePath(); File current = vars.get(SHELL_USER_DIR, File.class).getAbsoluteFile(); if (current.getAbsolutePath().equals(home)) { return "~"; Object rep = vars.get(key); if (rep == null) { rep = System.getProperty(key);
public boolean hasNext() { boolean next = iter.hasNext(); if (!next && more) { iter = parent().names(); more = false; next = hasNext(); } return next; }
public boolean isMutable(final String name) { assert name != null; boolean mutable = true; // First ask out parent if there is one, if they are immutable, then so are we if (parent != null) { mutable = parent.isMutable(name); } if (mutable) { mutable = !immutables.contains(name); } return mutable; }
private void unsetVariable(final Variables vars, final String name) { log.info("Un-setting variable: {}", name); vars.unset(name); } }
private void init() { // Prime the delegate with any existing variable names Iterator<String> iter = variables.get().names(); while (iter.hasNext()) { delegate.getStrings().add(iter.next()); } // Register for updates to variable changes events.addListener(new EventListener() { public void onEvent(final EventObject event) throws Exception { if (event instanceof VariableSetEvent) { VariableSetEvent target = (VariableSetEvent) event; delegate.getStrings().add(target.getName()); } else if (event instanceof VariableUnsetEvent) { VariableUnsetEvent target = (VariableUnsetEvent) event; delegate.getStrings().remove(target.getName()); } } }); initialized = true; }
@Override protected File getUserHome() { return variables.get().get(SHELL_USER_HOME, File.class); }
public Object put(final String key, final Object value) { assert key != null; Object prev = get(key); vars.set(key, value); return prev; }
public Object get(final Object key) { assert key != null; String name = String.valueOf(key); Object value; value = vars.get(name); if (value == null) { value = System.getProperty(name); } return value; }
protected void setConsoleLogLevel(final Level level) { System.setProperty(SHELL_LOGGING, level.name()); vars.set(SHELL_LOGGING, level); }
public File resolveDir(final String name) throws IOException { assert name != null; return variables.get().get(name, File.class).getCanonicalFile(); }
@Option(name = "D", longName = "define") protected void setVariable(final String input) { NameValue nv = NameValue.parse(input); vars.set(nv.name, nv.value); }
@Override protected File getUserDir() { Variables vars = variables.get(); Object tmp = vars.get(SHELL_USER_DIR); assert tmp != null; if (tmp instanceof File) { return (File)tmp; } return new File(String.valueOf(tmp)); }
public Object execute(final CommandContext context) throws Exception { assert context != null; IO io = context.getIo(); Variables vars = context.getVariables(); File file; if (path == null) { file = fileSystem.getUserHomeDir(); } else { file = fileSystem.resolveFile(path); } new FileAssert(file).exists().isDirectory(); vars.set(SHELL_USER_DIR, file.getPath()); if (verbose) { io.println(file.getPath()); } return Result.SUCCESS; } }