1 /* 2 * Copyright (c) 2002-2020, City of Paris 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * 1. Redistributions of source code must retain the above copyright notice 10 * and the following disclaimer. 11 * 12 * 2. Redistributions in binary form must reproduce the above copyright notice 13 * and the following disclaimer in the documentation and/or other materials 14 * provided with the distribution. 15 * 16 * 3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its 17 * contributors may be used to endorse or promote products derived from 18 * this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE 24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30 * POSSIBILITY OF SUCH DAMAGE. 31 * 32 * License 1.0 33 */ 34 package fr.paris.lutece.plugins.document.business.rules; 35 36 import fr.paris.lutece.portal.service.i18n.I18nService; 37 import fr.paris.lutece.portal.service.spring.SpringContextService; 38 import fr.paris.lutece.util.ReferenceList; 39 40 import java.util.Collection; 41 import java.util.List; 42 import java.util.Locale; 43 44 45 /** 46 * This class provides instances management methods (create, find, ...) for Rule objects 47 */ 48 public final class RuleHome 49 { 50 private static IRuleDAO _dao = SpringContextService.getBean( "document.ruleDAO" ); 51 private static IRuleTypesSet _ruleTypesSet = SpringContextService.getBean( "document.ruleTypesSet" ); 52 53 /** 54 * Private constructor - this class need not be instantiated 55 */ 56 private RuleHome( ) 57 { 58 } 59 60 /** 61 * Creation of an instance of rule 62 * 63 * @param rule The instance of the rule which contains the informations to store 64 * @return The instance of rule which has been created with its primary key. 65 */ 66 public static Ruleef="../../../../../../../fr/paris/lutece/plugins/document/business/rules/Rule.html#Rule">Rule create( Rule rule ) 67 { 68 _dao.insert( rule ); 69 70 return rule; 71 } 72 73 /** 74 * Update of the rule which is specified in parameter 75 * 76 * @param rule The instance of the rule which contains the data to store 77 * @return The instance of the rule which has been updated 78 */ 79 public static Ruleef="../../../../../../../fr/paris/lutece/plugins/document/business/rules/Rule.html#Rule">Rule update( Rule rule ) 80 { 81 _dao.store( rule ); 82 83 return rule; 84 } 85 86 /** 87 * Remove the Rule whose identifier is specified in parameter 88 * 89 * @param nRuleId The Rule Id 90 */ 91 public static void remove( int nRuleId ) 92 { 93 _dao.delete( nRuleId ); 94 } 95 96 /////////////////////////////////////////////////////////////////////////// 97 // Finders 98 99 /** 100 * Returns an instance of a rule whose identifier is specified in parameter 101 * 102 * @param nKey The Primary key of the rule 103 * @return An instance of rule 104 */ 105 public static Rule findByPrimaryKey( int nKey ) 106 { 107 return _dao.load( nKey, _ruleTypesSet ); 108 } 109 110 /** 111 * Returns a collection of rules objects 112 * @param locale the current local 113 * @return A collection of rules 114 */ 115 public static List<Rule> findAll( Locale locale ) 116 { 117 List<Rule> listRules = _dao.selectRuleList( _ruleTypesSet ); 118 119 return I18nService.localizeCollection( listRules, locale ); 120 } 121 122 /** 123 * Returns the rule types list 124 * @param locale the Locale 125 * @return The rule types list 126 */ 127 public static ReferenceList getRuleTypesList( Locale locale ) 128 { 129 return _ruleTypesSet.getRuleTypesList( locale ); 130 } 131 132 /** 133 * Create a new instance of a rule of a given type 134 * @param strRuleTypeId The key name of the rule type 135 * @return A new Rule instance 136 */ 137 public static Rule newInstance( String strRuleTypeId ) 138 { 139 return _ruleTypesSet.newInstance( strRuleTypeId ); 140 } 141 142 /** 143 * Returns all rule types 144 * @return A collection of rule types 145 */ 146 public static Collection<Rule> getRuleTypes( ) 147 { 148 return _ruleTypesSet.getRuleTypes( ); 149 } 150 151 /** 152 * Returns the rule type of a given class type 153 * @param rule The Rule object 154 * @return The rule type 155 */ 156 public static String getRuleTypeKey( Rule rule ) 157 { 158 return _ruleTypesSet.getRuleTypeKey( rule ); 159 } 160 161 /** 162 * Returns a collection of rules objects specified by rule type key 163 * @param strRuleTypeKey The rule type key 164 * @return A collection of Rule 165 */ 166 public static Collection<Rule> findByRuleTypeKey( String strRuleTypeKey ) 167 { 168 return _dao.selectRuleListByRuleTypeKey( strRuleTypeKey, _ruleTypesSet ); 169 } 170 }