1 /* 2 * (c) Copyright 2006-2020 by rapiddweller GmbH & Volker Bergmann. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, is permitted under the terms of the 6 * GNU General Public License. 7 * 8 * For redistributing this software or a derivative work under a license other 9 * than the GPL-compatible Free Software License as defined by the Free 10 * Software Foundation or approved by OSI, you must first obtain a commercial 11 * license to this software product from rapiddweller GmbH & Volker Bergmann. 12 * 13 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 14 * WITHOUT A WARRANTY OF ANY KIND. ALL EXPRESS OR IMPLIED CONDITIONS, 15 * REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF 16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE 17 * HEREBY EXCLUDED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 18 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 22 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24 * POSSIBILITY OF SUCH DAMAGE. 25 */ 26 27 package com.rapiddweller.benerator.engine; 28 29 import com.rapiddweller.benerator.GeneratorContext; 30 import com.rapiddweller.benerator.factory.DefaultsProvider; 31 import com.rapiddweller.benerator.factory.GeneratorFactory; 32 import com.rapiddweller.benerator.wrapper.ProductWrapper; 33 import com.rapiddweller.model.data.ComponentDescriptor; 34 import com.rapiddweller.model.data.DataModel; 35 import com.rapiddweller.model.data.DescriptorProvider; 36 import com.rapiddweller.model.data.TypeDescriptor; 37 import com.rapiddweller.script.ScriptContext; 38 39 import java.util.Locale; 40 41 /** 42 * A BeneratorContext.<br/><br/> 43 * Created at 20.04.2008 06:41:04 44 * 45 * @author Volker Bergmann 46 * @since 0.5.2 47 */ 48 public interface BeneratorContext extends GeneratorContext, ScriptContext { 49 50 // simple configuration properties --------------------------------------------------------------------------------- 51 52 /** 53 * Sets default encoding. 54 * 55 * @param defaultEncoding the default encoding 56 */ 57 void setDefaultEncoding(String defaultEncoding); 58 59 /** 60 * Sets default line separator. 61 * 62 * @param defaultLineSeparator the default line separator 63 */ 64 void setDefaultLineSeparator(String defaultLineSeparator); 65 66 /** 67 * Sets default locale. 68 * 69 * @param defaultLocale the default locale 70 */ 71 void setDefaultLocale(Locale defaultLocale); 72 73 /** 74 * Sets default dataset. 75 * 76 * @param defaultDataset the default dataset 77 */ 78 void setDefaultDataset(String defaultDataset); 79 80 /** 81 * Sets default page size. 82 * 83 * @param defaultPageSize the default page size 84 */ 85 void setDefaultPageSize(long defaultPageSize); 86 87 /** 88 * Sets default script. 89 * 90 * @param defaultScript the default script 91 */ 92 void setDefaultScript(String defaultScript); 93 94 /** 95 * Sets default null. 96 * 97 * @param defaultNull the default null 98 */ 99 void setDefaultNull(boolean defaultNull); 100 101 /** 102 * Sets default separator. 103 * 104 * @param defaultSeparator the default separator 105 */ 106 void setDefaultSeparator(char defaultSeparator); 107 108 /** 109 * Sets default error handler. 110 * 111 * @param defaultErrorHandler the default error handler 112 */ 113 void setDefaultErrorHandler(String defaultErrorHandler); 114 115 /** 116 * Sets context uri. 117 * 118 * @param contextUri the context uri 119 */ 120 void setContextUri(String contextUri); 121 122 /** 123 * Sets validate. 124 * 125 * @param validate the validate 126 */ 127 void setValidate(boolean validate); 128 129 /** 130 * Sets max count. 131 * 132 * @param maxCount the max count 133 */ 134 void setMaxCount(Long maxCount); 135 136 /** 137 * Is default imports boolean. 138 * 139 * @return the boolean 140 */ 141 boolean isDefaultImports(); 142 143 /** 144 * Sets default imports. 145 * 146 * @param defaultImports the default imports 147 */ 148 void setDefaultImports(boolean defaultImports); 149 150 /** 151 * Is default one to one boolean. 152 * 153 * @return the boolean 154 */ 155 boolean isDefaultOneToOne(); 156 157 /** 158 * Sets default one to one. 159 * 160 * @param defaultOneToOne the default one to one 161 */ 162 void setDefaultOneToOne(boolean defaultOneToOne); 163 164 /** 165 * Is accept unknown simple types boolean. 166 * 167 * @return the boolean 168 */ 169 boolean isAcceptUnknownSimpleTypes(); 170 171 /** 172 * Sets accept unknown simple types. 173 * 174 * @param acceptUnknownSimpleTypes the accept unknown simple types 175 */ 176 void setAcceptUnknownSimpleTypes(boolean acceptUnknownSimpleTypes); 177 178 // import handling ------------------------------------------------------------------------------------------------- 179 180 @Override 181 void importClass(String className); 182 183 /** 184 * Import package. 185 * 186 * @param packageName the package name 187 */ 188 void importPackage(String packageName); 189 190 /** 191 * Import defaults. 192 */ 193 void importDefaults(); 194 195 // service provider sharing ---------------------------------------------------------------------------------------- 196 197 @Override 198 GeneratorFactory getGeneratorFactory(); 199 200 /** 201 * Sets generator factory. 202 * 203 * @param generatorFactory the generator factory 204 */ 205 void setGeneratorFactory(GeneratorFactory generatorFactory); 206 207 /** 208 * Gets data model. 209 * 210 * @return the data model 211 */ 212 DataModel getDataModel(); 213 214 /** 215 * Sets data model. 216 * 217 * @param dataModel the data model 218 */ 219 void setDataModel(DataModel dataModel); 220 221 /** 222 * Gets defaults provider. 223 * 224 * @return the defaults provider 225 */ 226 DefaultsProvider getDefaultsProvider(); 227 228 /** 229 * Sets defaults provider. 230 * 231 * @param defaultsProvider the defaults provider 232 */ 233 void setDefaultsProvider(DefaultsProvider defaultsProvider); 234 235 /** 236 * Gets local descriptor provider. 237 * 238 * @return the local descriptor provider 239 */ 240 DescriptorProvider getLocalDescriptorProvider(); 241 242 /** 243 * Add local type. 244 * 245 * @param type the type 246 */ 247 void addLocalType(TypeDescriptor type); 248 249 /** 250 * Gets default component config. 251 * 252 * @param name the name 253 * @return the default component config 254 */ 255 ComponentDescriptor getDefaultComponentConfig(String name); 256 257 /** 258 * Sets default component config. 259 * 260 * @param component the component 261 */ 262 void setDefaultComponentConfig(ComponentDescriptor component); 263 264 // data management ------------------------------------------------------------------------------------------------- 265 266 /** 267 * Sets global. 268 * 269 * @param name the name 270 * @param value the value 271 */ 272 void setGlobal(String name, Object value); 273 274 @Override 275 ProductWrapper<?> getCurrentProduct(); 276 277 @Override 278 void setCurrentProduct(ProductWrapper<?> currentProduct); 279 280 /** 281 * Has product name in scope boolean. 282 * 283 * @param productName the product name 284 * @return the boolean 285 */ 286 boolean hasProductNameInScope(String productName); 287 288 /** 289 * Create sub context benerator context. 290 * 291 * @param productName the product name 292 * @return the benerator context 293 */ 294 BeneratorContext createSubContext(String productName); 295 296 }