mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-06-16 17:55:15 +00:00
- similar pattern to existing script bean extension support - new root model helper objects and custom methods can be added via spring configuration Cleanup of script extension spring support Fix to thread safety of configured script extension beans that use the Scopable interface git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@5369 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
50 lines
1.4 KiB
Java
50 lines
1.4 KiB
Java
/*
|
|
* Copyright (C) 2005 Alfresco, Inc.
|
|
*
|
|
* Licensed under the Mozilla Public License version 1.1
|
|
* with a permitted attribution clause. You may obtain a
|
|
* copy of the License at
|
|
*
|
|
* http://www.alfresco.org/legal/license.txt
|
|
*
|
|
* 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.
|
|
*/
|
|
package org.alfresco.repo.jscript;
|
|
|
|
import org.mozilla.javascript.Scriptable;
|
|
|
|
/**
|
|
* Abstract base class for a script implementation that requires a script execution scope.
|
|
*
|
|
* The scope is local to the currently executing script and therefore a ThreadLocal is required.
|
|
*
|
|
* @author Kevin Roast
|
|
*/
|
|
public class BaseScopableScriptImplementation extends BaseScriptImplementation implements Scopeable
|
|
{
|
|
private static ThreadLocal<Scriptable> scope = new ThreadLocal<Scriptable>();
|
|
|
|
/**
|
|
* Set the Scriptable global scope
|
|
*
|
|
* @param script relative global scope
|
|
*/
|
|
public void setScope(Scriptable scope)
|
|
{
|
|
this.scope.set(scope);
|
|
}
|
|
|
|
/**
|
|
* @return script global scope
|
|
*/
|
|
public Scriptable getScope()
|
|
{
|
|
return this.scope.get();
|
|
}
|
|
}
|