Package cli_fmw.delegate

Source Code of cli_fmw.delegate.Delegate

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package cli_fmw.delegate;

import cli_fmw.ContextParamsHolder;
import cli_fmw.ContextParamsHolder.ContextParams;
import cli_fmw.main.ClipsException;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

/**
* Делегат
* Предназначен для instant-обновления базы данных. То есть работа идет
* в онлайновом режиме. В начале работы загружается содержимое делегата,
* функцией load. Загрузка может быть отложенной, ленивой.
* В ходе работы содержимое делегата меняется. При этом должна вызываться
* ОДНА функция делегата, которая в синхронном режиме сохраняет изменения
* в базу данных и в случае ошибки выбрасывает исключение.
*
* @author Axe Ilshat
*/
public class Delegate {

    private  static Context c;
   
    protected static Object lookupBean(String title) throws ClipsException {
        ContextParams contextParams = ContextParamsHolder.getContextParams();
        String prefix = "clips-beans/";
        try {
            return getContext(contextParams).lookup(prefix + title);
        } catch(NamingException ne) {
            throw new ClipsException("Не удалось получить сервис "+ prefix + title + ". Информация: ", ne);
        }
    }

    static private Context getContext(ContextParams params) throws NamingException {
        if(c == null) {
            if (params != null){
                c = new InitialContext(params.getParams());
            }else{
                c = new InitialContext();
            }
        }
        return c;
    }

}
TOP

Related Classes of cli_fmw.delegate.Delegate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.