001    /**
002     * Copyright (c) 2000-2013 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.kernel.bi.rules;
016    
017    import com.liferay.portal.kernel.security.pacl.permission.PortalRuntimePermission;
018    
019    import java.util.List;
020    import java.util.Map;
021    
022    /**
023     * @author Michael C. Han
024     * @author Raymond Aug??
025     */
026    public class RulesEngineUtil {
027    
028            public static void add(
029                            String domainName, RulesResourceRetriever rulesResourceRetriever)
030                    throws RulesEngineException {
031    
032                    getRulesEngine().add(domainName, rulesResourceRetriever);
033            }
034    
035            public static void add(
036                            String domainName, RulesResourceRetriever rulesResourceRetriever,
037                            ClassLoader... classloaders)
038                    throws RulesEngineException {
039    
040                    getRulesEngine().add(domainName, rulesResourceRetriever, classloaders);
041            }
042    
043            public static boolean containsRuleDomain(String domainName)
044                    throws RulesEngineException {
045    
046                    return getRulesEngine().containsRuleDomain(domainName);
047            }
048    
049            public static void execute(
050                            RulesResourceRetriever rulesResourceRetriever, List<Fact<?>> facts)
051                    throws RulesEngineException {
052    
053                    getRulesEngine().execute(rulesResourceRetriever, facts);
054            }
055    
056            public static void execute(
057                            RulesResourceRetriever rulesResourceRetriever, List<Fact<?>> facts,
058                            ClassLoader... classloaders)
059                    throws RulesEngineException {
060    
061                    getRulesEngine().execute(rulesResourceRetriever, facts, classloaders);
062            }
063    
064            public static Map<String, ?> execute(
065                            RulesResourceRetriever rulesResourceRetriever, List<Fact<?>> facts,
066                            Query query)
067                    throws RulesEngineException {
068    
069                    return getRulesEngine().execute(rulesResourceRetriever, facts, query);
070            }
071    
072            public static Map<String, ?> execute(
073                            RulesResourceRetriever rulesResourceRetriever, List<Fact<?>> facts,
074                            Query query, ClassLoader... classloaders)
075                    throws RulesEngineException {
076    
077                    return getRulesEngine().execute(
078                            rulesResourceRetriever, facts, query, classloaders);
079            }
080    
081            public static void execute(String domainName, List<Fact<?>> facts)
082                    throws RulesEngineException {
083    
084                    getRulesEngine().execute(domainName, facts);
085            }
086    
087            public static void execute(
088                            String domainName, List<Fact<?>> facts, ClassLoader... classloaders)
089                    throws RulesEngineException {
090    
091                    getRulesEngine().execute(domainName, facts, classloaders);
092            }
093    
094            public static Map<String, ?> execute(
095                            String domainName, List<Fact<?>> facts, Query query)
096                    throws RulesEngineException {
097    
098                    return getRulesEngine().execute(domainName, facts, query);
099            }
100    
101            public static Map<String, ?> execute(
102                            String domainName, List<Fact<?>> facts, Query query,
103                            ClassLoader... classloaders)
104                    throws RulesEngineException {
105    
106                    return getRulesEngine().execute(domainName, facts, query, classloaders);
107            }
108    
109            public static RulesEngine getRulesEngine() {
110                    PortalRuntimePermission.checkGetBeanProperty(RulesEngineUtil.class);
111    
112                    return _rulesEngine;
113            }
114    
115            public static void remove(String domainName) throws RulesEngineException {
116                    getRulesEngine().remove(domainName);
117            }
118    
119            public static void update(
120                            String domainName, RulesResourceRetriever rulesResourceRetriever)
121                    throws RulesEngineException {
122    
123                    getRulesEngine().update(domainName, rulesResourceRetriever);
124            }
125    
126            public static void update(
127                            String domainName, RulesResourceRetriever rulesResourceRetriever,
128                            ClassLoader... classloaders)
129                    throws RulesEngineException {
130    
131                    getRulesEngine().update(
132                            domainName, rulesResourceRetriever, classloaders);
133            }
134    
135            public void setRulesEngine(RulesEngine rulesEngine) {
136                    PortalRuntimePermission.checkSetBeanProperty(getClass());
137    
138                    _rulesEngine = rulesEngine;
139            }
140    
141            private static RulesEngine _rulesEngine;
142    
143    }