All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazon.redshift.util.RedshiftObject Maven / Gradle / Ivy

There is a newer version: 2.1.0.30
Show newest version
/*
 * Copyright (c) 2003, PostgreSQL Global Development Group
 * See the LICENSE file in the project root for more information.
 */

package com.amazon.redshift.util;

import java.io.Serializable;
import java.sql.SQLException;

/**
 * RedshiftObject is a class used to describe unknown types An unknown type is any type that is unknown by
 * JDBC Standards.
 */
public class RedshiftObject implements Serializable, Cloneable {
  protected String type;
  protected String value;

  /**
   * This is called by com.amazon.redshift.Connection.getObject() to create the object.
   */
  public RedshiftObject() {
  }

  public RedshiftObject(String type, String value) {
  	setType(type);
  	try {
			setValue(value);
		} catch (SQLException e) {
			this.value = value;
		}
  }
  
  /**
   * 

This method sets the type of this object.

* *

It should not be extended by subclasses, hence it is final

* * @param type a string describing the type of the object */ public final void setType(String type) { this.type = type; } /** * This method sets the value of this object. It must be overridden. * * @param value a string representation of the value of the object * @throws SQLException thrown if value is invalid for this type */ public void setValue(String value) throws SQLException { this.value = value; } /** * As this cannot change during the life of the object, it's final. * * @return the type name of this object */ public final String getType() { return type; } /** * This must be overidden, to return the value of the object, in the form required by * com.amazon.redshift. * * @return the value of this object */ public String getValue() { return value; } /** * This must be overidden to allow comparisons of objects. * * @param obj Object to compare with * @return true if the two boxes are identical */ public boolean equals(Object obj) { if (obj instanceof RedshiftObject) { final Object otherValue = ((RedshiftObject) obj).getValue(); if (otherValue == null) { return getValue() == null; } return otherValue.equals(getValue()); } return false; } /** * This must be overidden to allow the object to be cloned. */ public Object clone() throws CloneNotSupportedException { return super.clone(); } /** * This is defined here, so user code need not overide it. * * @return the value of this object, in the syntax expected by com.amazon.redshift */ public String toString() { return getValue(); } /** * Compute hash. As equals() use only value. Return the same hash for the same value. * * @return Value hashcode, 0 if value is null {@link java.util.Objects#hashCode(Object)} */ @Override public int hashCode() { return getValue() != null ? getValue().hashCode() : 0; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy