1 package com.vladmihalcea.hibernate.type.array;
2
3 import com.vladmihalcea.hibernate.type.array.internal.AbstractArrayType;
4 import com.vladmihalcea.hibernate.type.array.internal.BooleanArrayTypeDescriptor;
5 import com.vladmihalcea.hibernate.type.util.Configuration;
6 import com.vladmihalcea.hibernate.type.util.ParameterizedParameterType;
7 import org.hibernate.type.spi.TypeBootstrapContext;
8 import org.hibernate.usertype.DynamicParameterizedType;
9
10 import java.util.Properties;
11
12 /**
13  * Maps a {@code boolean[]} array on a PostgreSQL ARRAY column type.
14  * For more details about how to use it, check out <a href=
15  * "https://vladmihalcea.com/how-to-map-java-and-sql-arrays-with-jpa-and-hibernate/">this article</a>.
16  *
17  * @author jeet.choudhary7@gmail.com
18  * @version 2.9.13
19  */

20 public class BooleanArrayType extends AbstractArrayType<boolean[]> {
21
22     public static final BooleanArrayType INSTANCE = new BooleanArrayType();
23
24     public BooleanArrayType(Configuration configuration) {
25         super(
26             new BooleanArrayTypeDescriptor(),
27             configuration
28         );
29     }
30
31     public BooleanArrayType(Class arrayClass) {
32         this();
33         Properties parameters = new Properties();
34         parameters.put(DynamicParameterizedType.PARAMETER_TYPE, new ParameterizedParameterType(arrayClass));
35         setParameterValues(parameters);
36     }
37
38     public BooleanArrayType() {
39         super(
40             new BooleanArrayTypeDescriptor()
41         );
42     }
43
44     @Override
45     public String getName() {
46         return "boolean-array";
47     }
48 }