1 /* 2 * Copyright (c) 2002-2017, Mairie de 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.directory.business; 35 36 import fr.paris.lutece.portal.service.plugin.Plugin; 37 38 /* 39 * Copyright (c) 2002-2014, Mairie de Paris 40 * All rights reserved. 41 * 42 * Redistribution and use in source and binary forms, with or without 43 * modification, are permitted provided that the following conditions 44 * are met: 45 * 46 * 1. Redistributions of source code must retain the above copyright notice 47 * and the following disclaimer. 48 * 49 * 2. Redistributions in binary form must reproduce the above copyright notice 50 * and the following disclaimer in the documentation and/or other materials 51 * provided with the distribution. 52 * 53 * 3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its 54 * contributors may be used to endorse or promote products derived from 55 * this software without specific prior written permission. 56 * 57 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 58 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 59 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 60 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE 61 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 62 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 63 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 64 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 65 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 66 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 67 * POSSIBILITY OF SUCH DAMAGE. 68 * 69 * License 1.0 70 */ 71 import java.util.List; 72 73 /** 74 * IFormDAO Interface 75 */ 76 public interface IFieldDAO 77 { 78 /** 79 * Insert a new record in the table. 80 * 81 * @param field 82 * instance of the Field object to insert 83 * @param plugin 84 * the plugin 85 * @return the new field create 86 */ 87 int insert( Field field, Plugin plugin ); 88 89 /** 90 * Update the field in the table 91 * 92 * @param field 93 * instance of the Field object to update 94 * @param plugin 95 * the plugin 96 */ 97 void store( Field field, Plugin plugin ); 98 99 /** 100 * Delete a record from the table 101 * 102 * @param nIdField 103 * The identifier of the field 104 * @param plugin 105 * the plugin 106 */ 107 void delete( int nIdField, Plugin plugin ); 108 109 // ///////////////////////////////////////////////////////////////////////// 110 // Finders 111 112 /** 113 * Load the data of the Field from the table 114 * 115 * @param nIdField 116 * The identifier of the field 117 * @param plugin 118 * the plugin 119 * @return the instance of the Field 120 */ 121 Field load( int nIdField, Plugin plugin ); 122 123 /** 124 * Load the data of the Field from the table by value 125 * 126 * @param nIdEntry 127 * the entry id 128 * @param strValue 129 * the field value 130 * @param plugin 131 * the plugin 132 * @return the instance of the Field 133 */ 134 Field loadByValue( int nIdEntry, String strValue, Plugin plugin ); 135 136 /** 137 * Load the data of all the field of the entry and returns them in a list 138 * 139 * @param idEntry 140 * the id of the entry 141 * @param plugin 142 * the plugin 143 * @return the list of field 144 */ 145 List<Field> selectFieldListByIdEntry( int idEntry, Plugin plugin ); 146 147 /** 148 * Delete an association between field and a regular expression 149 * 150 * @param nIdField 151 * The identifier of the field 152 * @param nIdExpression 153 * The identifier of the regular expression 154 * @param plugin 155 * the plugin 156 */ 157 void deleteVerifyBy( int nIdField, int nIdExpression, Plugin plugin ); 158 159 /** 160 * insert an association between field and a regular expression 161 * 162 * @param nIdField 163 * The identifier of the field 164 * @param nIdExpression 165 * The identifier of the regular expression 166 * @param plugin 167 * the plugin 168 */ 169 void insertVerifyBy( int nIdField, int nIdExpression, Plugin plugin ); 170 171 /** 172 * Load the key of all the regularExpression associate to the field and returns them in a list 173 * 174 * @param nIdField 175 * the id of the field 176 * @param plugin 177 * the plugin 178 * @return the list of regular expression key 179 */ 180 List<Integer> selectListRegularExpressionKeyByIdField( int nIdField, Plugin plugin ); 181 182 /** 183 * verify if the regular expresssion is use 184 * 185 * @param nIdExpression 186 * The identifier of the expression 187 * @param plugin 188 * the plugin 189 * @return true if the regular expression is use 190 */ 191 boolean isRegularExpressionIsUse( int nIdExpression, Plugin plugin ); 192 }