/** * Impl of the Context.put() method. * * @param key name of item to set * @param value object to set to key * @return old stored object */ public Object put(String key, Object value) { /* * first see if this is a vmpa */ VMProxyArg vmpa = (VMProxyArg) vmproxyhash.get(key); if (vmpa != null) { return vmpa.setObject(wrappedContext, value); } else { if (localcontextscope) { /* * if we have localcontextscope mode, then just * put in the local context */ return localcontext.put(key, value); } else { /* * ok, how about the local context? */ if (localcontext.containsKey(key)) { return localcontext.put(key, value); } else { /* * otherwise, let them push it into the 'global' context */ return innerContext.put(key, value); } } } }
/** * Used to put VMProxyArgs into this context. It separates the VMProxyArgs into constant and * non-constant types pulling out the value of the constant types so they can be modified w/o * damaging the VMProxyArg, and leaving the dynamic ones, as they modify context rather than their * own state * * @param vmpa VMProxyArg to add */ public void addVMProxyArg(VMProxyArg vmpa) { /* * ask if it's a constant : if so, get the value and put into the * local context, otherwise, put the vmpa in our vmproxyhash */ String key = vmpa.getContextReference(); if (vmpa.isConstant()) { localcontext.put(key, vmpa.getObject(wrappedContext)); } else { vmproxyhash.put(key, vmpa); } }
/** * Impl of the Context.gut() method. * * @param key name of item to get * @return stored object or null */ public Object get(String key) { /* * first, see if it's a VMPA */ Object o = null; VMProxyArg vmpa = (VMProxyArg) vmproxyhash.get(key); if (vmpa != null) { o = vmpa.getObject(wrappedContext); } else { if (localcontextscope) { /* * if we have localcontextscope mode, then just * put in the local context */ o = localcontext.get(key); } else { /* * try the local context */ o = localcontext.get(key); if (o == null) { /* * last chance */ o = innerContext.get(key); } } } return o; }