/*
* Copyright 2001-2007 Hippo (www.hippo.nl)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* default context
* Simple port of Avalon context, through which runtime context can be applied
* by a manager on a component.
*/
function DefaultContext() {
if(!Cfx.Class.IsDefined(DefaultContext)) {
Cfx.Class.New(DefaultContext);
if(Cfx.Class.IsInitializing(DefaultContext)) {
DefaultContext.Method(get);
DefaultContext.Method(has);
DefaultContext.Method(put);
return;
}
}
this.InitInstance();
/**
* @param DefaultContext
*/
if(arguments.length) {
this.parentContext = arguments[0];
}
this.context = new Array();
return this;
function get(key) {
var entry = this.context[key];
if (entry != null) {
return entry;
}
if (this.parentContext != null) {
return this.parentContext.get(key);
}
throw new Error("Context-entry for " + key + " not found!");
}
function has(key) {
if (this.context[key] != null) {
return true;
}
if (this.parentContext != null ) {
return this.parentContext.has(key);
}
return false;
}
function put(key, entry) {
this.context[key] = entry;
}
}