Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package de.zalando.typemapper.postgres;
  
  
  import java.sql.ResultSet;
  
 import java.util.Map;
 
 public final class PgArray<E> implements java.sql.Array {
 
     private String elementTypeName = null;
     private final PgArraySerializer<E> serializer;
     private String serializedString = null;
 
     private static class PgArraySerializer<E> extends AbstractPgCollectionSerializer<E> {
 
         protected PgArraySerializer(final Collection<E> c) {
             super(c);
         }
 
         @Override
         protected char getOpeningChar() {
             return '{';
         }
 
         @Override
         protected char getClosingChar() {
             return '}';
         }
 
         @Override
         protected void quoteChar(final StringBuilder sbfinal char ch) {
             sb.append(.).append(ch);
         }
 
         @Override
         protected void appendNull(final StringBuilder sb) {
             sb.append(.);
         }
     }
 
     protected PgArray(final String elementTypeNamefinal Collection<E> c) {
         this. = new PgArraySerializer<E>(c);
         this. = elementTypeName;
     }
 
     public static <T> PgArray<T> ARRAY(final T... array) {
         return PgArray.ARRAY(Arrays.asList(array));
     }
 
     public static <T> PgArray<T> ARRAY(final Collection<T> collection) {
 
         // try to find out the element type of the collection
         Class<?> elementClass = null;
         String type = null;
         for (final T element : collection) {
             if (element != null) {
                 elementClass = element.getClass();
 
                 // check if the collection element is of type PgRow (complex type)
                 // in that case take the database type from the PgRow object.
                 if (PgRow.class.isAssignableFrom(elementClass)) {
                     type = ((PgRowelement).getType();
                 }
 
                 break;
             }
         }
 
         if (type != null) {
             return new PgArray<T>(typecollection);
         } else {
 
             return new PgArray<T>(PgTypeHelper.getSQLNameForClass(elementClass), collection);
         }
     }
 
     @Override
     public String toString() {
         if ( != null) {
             return ;
         }
 
         return .toString();
     }
 
     public String toString(final Connection connection) {
         return .toString(connection);
     }

    
Returns a java.sql.Array view with the specified element type name for the current PgArray object.

Parameters:
elementTypeName
Returns:
java.sql.Array view with the specified element type name
    public java.sql.Array asJdbcArray(final String elementTypeName) {
        this. = elementTypeName;
        return this;
    }
    public java.sql.Array asJdbcArray(final String elementTypeNamefinal Connection connection) {
        this. = elementTypeName;
        this. = .toString(connection);
        return this;
    }
    @Override
    public String getBaseTypeName() throws SQLException {
        if ( == null) {
            throw new SQLException(
                "Array element type is not defined, use asJdbcArray(<elementTypeName>) to get a valid java.sql.Array object");
        }
        return ;
    }
    @Override
    public int getBaseType() throws SQLException {
        if ( == null) {
            throw new SQLException(
                "Array element type is not defined, use asJdbcArray(<elementTypeName>) to get a valid java.sql.Array object");
        }
        return PgTypeHelper.getSQLType();
    }
    @Override
    public Object getArray() throws SQLException {
        return ..toArray();
    }
    @Override
    public Object getArray(final Map<StringClass<?>> mapthrows SQLException {
        throw new SQLFeatureNotSupportedException("Feature not supported");
    }
    @Override
    public Object getArray(final long indexfinal int countthrows SQLException {
        throw new SQLFeatureNotSupportedException("Feature not supported");
    }
    @Override
    public Object getArray(final long indexfinal int countfinal Map<StringClass<?>> mapthrows SQLException {
        throw new SQLFeatureNotSupportedException("Feature not supported");
    }
    @Override
    public ResultSet getResultSet() throws SQLException {
        throw new SQLFeatureNotSupportedException("Feature not supported");
    }
    @Override
    public ResultSet getResultSet(final Map<StringClass<?>> mapthrows SQLException {
        throw new SQLFeatureNotSupportedException("Feature not supported");
    }
    @Override
    public ResultSet getResultSet(final long indexfinal int countthrows SQLException {
        throw new SQLFeatureNotSupportedException("Feature not supported");
    }
    @Override
    public ResultSet getResultSet(final long indexfinal int countfinal Map<StringClass<?>> map)
        throws SQLException {
        throw new SQLFeatureNotSupportedException("Feature not supported");
    }
    @Override
    public void free() throws SQLException {
        throw new SQLFeatureNotSupportedException("Feature not supported");
    }
    @Override
    public int hashCode() {
        return Objects.hashCode(.);
    }
    @Override
    public boolean equals(Object obj) {
        if (obj instanceof PgArray) {
            PgArray other = (PgArrayobj;
            return Objects.equal(other.elementTypeName) &&
                    Objects.equal(.other.serializer.collection);
        } else {
            return false;
        }
    }
New to GrepCode? Check out our FAQ X