001/* 002 * Copyright (c) 2006-2011 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the Eclipse Public License v1.0 006 * which accompanies this distribution, and is available at 007 * http://www.eclipse.org/legal/epl-v10.html 008 * 009 * Contributors: 010 * bstefanescu 011 */ 012package org.nuxeo.ecm.automation.core.scripting; 013 014/** 015 * @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a> 016 */ 017public class Functions { 018 019 private static volatile Object fn = new CoreFunctions(); 020 021 private Functions() { 022 } 023 024 public static void setInstance(Object fn) { 025 if (fn == null) { 026 fn = new CoreFunctions(); 027 } 028 synchronized (Functions.class) { 029 Functions.fn = fn; 030 } 031 } 032 033 public static Object getInstance() { 034 Object o = fn; 035 if (o == null) { 036 synchronized (Functions.class) { 037 o = new CoreFunctions(); 038 fn = o; 039 } 040 } 041 return o; 042 } 043 044}