/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.portal.datasource.el; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.enonic.cms.core.preference.PreferenceService; import com.enonic.cms.core.time.TimeService; import com.enonic.cms.store.dao.MenuItemDao; @Component public class ExpressionFunctionsFactory { private static ExpressionFunctionsFactory instance; private PreferenceService preferenceService; private TimeService timeService; private MenuItemDao menuItemDao; private ThreadLocal<ExpressionContext> context = new ThreadLocal<ExpressionContext>(); public static ExpressionFunctionsFactory get() { return instance; } public ExpressionFunctionsFactory() { instance = this; } public void setContext( ExpressionContext value ) { context.set( value ); } public ExpressionContext getContext() { return context.get(); } public void removeContext() { context.remove(); } public ExpressionFunctions createExpressionFunctions() { ExpressionFunctions expressionFunctions = new ExpressionFunctions(); expressionFunctions.setPreferenceService( preferenceService ); expressionFunctions.setContext( getContext() ); expressionFunctions.setTimeService( timeService ); expressionFunctions.setMenuItemDao( menuItemDao ); return expressionFunctions; } @Autowired public void setPreferenceService( PreferenceService preferenceService ) { this.preferenceService = preferenceService; } @Autowired public void setTimeService( TimeService timeService ) { this.timeService = timeService; } @Autowired public void setMenuItemDao( MenuItemDao menuItemDao ) { this.menuItemDao = menuItemDao; } }