View Javadoc
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.factory;
28  
29  import java.util.Date;
30  
31  /**
32   * Interface for all classes that provide default values for testing.<br/><br/>
33   * Created: 15.07.2011 21:13:20
34   *
35   * @author Volker Bergmann
36   * @since 0.7.0
37   */
38  public interface DefaultsProvider {
39    /**
40     * Default granularity t.
41     *
42     * @param <T>        the type parameter
43     * @param numberType the number type
44     * @return the t
45     */
46    <T extends Number> T defaultGranularity(Class<T> numberType);
47  
48    /**
49     * Default min t.
50     *
51     * @param <T>        the type parameter
52     * @param numberType the number type
53     * @return the t
54     */
55    <T extends Number> T defaultMin(Class<T> numberType);
56  
57    /**
58     * Default max t.
59     *
60     * @param <T>        the type parameter
61     * @param numberType the number type
62     * @return the t
63     */
64    <T extends Number> T defaultMax(Class<T> numberType);
65  
66    /**
67     * Default min length int.
68     *
69     * @return the int
70     */
71    int defaultMinLength();
72  
73    /**
74     * Default max length integer.
75     *
76     * @return the integer
77     */
78    Integer defaultMaxLength();
79  
80    /**
81     * Default nullable boolean.
82     *
83     * @return the boolean
84     */
85    boolean defaultNullable();
86  
87    /**
88     * Default null quota double.
89     *
90     * @return the double
91     */
92    double defaultNullQuota();
93  
94    /**
95     * Default min date date.
96     *
97     * @return the date
98     */
99    Date defaultMinDate();
100 
101   /**
102    * Default max date date.
103    *
104    * @return the date
105    */
106   Date defaultMaxDate();
107 }