View Javadoc
1   package org.pojomatic.internal;
2   
3   import java.util.List;
4   
5   public interface Type {
6   
7     /**
8      * @return the class represented by this type
9      */
10    Class<?> getClazz();
11  
12    /**
13     * @return a list of sample values for the type
14     */
15    List<Object> getSampleValues();
16  
17    /**
18     * @return the number of array levels in this type. 0 for primitives or non-array classes, 1 for arrays thereof, etc.
19     */
20    int arrayDepth();
21  
22    /**
23     * Compute the hashCode for a value of this type. Do not recursively process arrays
24     * @param value
25     * @return the non-recursive hashCode for {@code value}.
26     */
27    int hashCode(Object value);
28  
29    /**
30     * Compute the hashCode for a value of this type, recursing into arrays as needed.
31     * @param value
32     * @return recursive hashCode for {@code value}
33     */
34    int deepHashCode(Object value);
35  
36    /**
37     * Compute the desired toString representation for a value of this type.
38     * @param value
39     * @return the desired non-recursive toString representation for {@code value}.
40     */
41    String toString(Object value);
42  
43    /**
44     * Compute the desired toString representation for a value of this type, recursing into arrays as needed.
45     * @param value
46     * @return the desired recursive toString representation for {@code value}.
47     */
48    String deepToString(Object value);
49  }