1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
/* * @(#)DataTruncation.java 1.27 05/12/22 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.sql; /** * An exception thrown as a <code>DataTruncation</code> exception * (on writes) or reported as a * <code>DataTruncation</code> warning (on reads) * when a data values is unexpectedly truncated for reasons other than its having * execeeded <code>MaxFieldSize</code>. * * <P>The SQLstate for a <code>DataTruncation</code> during read is <code>01004</code>. * <P>The SQLstate for a <code>DataTruncation</code> during write is <code>22001</code>. */ public class DataTruncation extends SQLWarning { /** * Creates a <code>DataTruncation</code> object * with the SQLState initialized * to 01004 when <code>read</code> is set to <code>true</code> and 22001 * when <code>read</code> is set to <code>false</code>, * the reason set to "Data truncation", the * vendor code set to 0, and * the other fields set to the given values. * The <code>cause</code> is not initialized, and may subsequently be * initialized by a call to the * {@link Throwable#initCause(java.lang.Throwable)} method. * <p> * * @param index The index of the parameter or column value * @param parameter true if a parameter value was truncated * @param read true if a read was truncated * @param dataSize the original size of the data * @param transferSize the size after truncation */ public DataTruncation(int index, boolean parameter, boolean read, int dataSize, int transferSize) { super("Data truncation", read == true?"01004":"22001"); this.index = index; this.parameter = parameter; this.read = read; this.dataSize = dataSize; this.transferSize = transferSize; } /** * Creates a <code>DataTruncation</code> object * with the SQLState initialized * to 01004 when <code>read</code> is set to <code>true</code> and 22001 * when <code>read</code> is set to <code>false</code>, * the reason set to "Data truncation", the * vendor code set to 0, and * the other fields set to the given values. * <p> * * @param index The index of the parameter or column value * @param parameter true if a parameter value was truncated * @param read true if a read was truncated * @param dataSize the original size of the data * @param transferSize the size after truncation * @param cause the underlying reason for this <code>DataTruncation</code> * (which is saved for later retrieval by the <code>getCause()</code> method); * may be null indicating the cause is non-existent or unknown. * * @since 1.6 */ public DataTruncation(int index, boolean parameter, boolean read, int dataSize, int transferSize, Throwable cause) { super("Data truncation", read == true?"01004":"22001",cause); this.index = index; this.parameter = parameter; this.read = read; this.dataSize = dataSize; this.transferSize = transferSize; } /** * Retrieves the index of the column or parameter that was truncated. * * <P>This may be -1 if the column or parameter index is unknown, in * which case the <code>parameter</code> and <code>read</code> fields should be ignored. * * @return the index of the truncated paramter or column value */ public int getIndex() { return index; } /** * Indicates whether the value truncated was a parameter value or * a column value. * * @return <code>true</code> if the value truncated was a parameter; * <code>false</code> if it was a column value */ public boolean getParameter() { return parameter; } /** * Indicates whether or not the value was truncated on a read. * * @return <code>true</code> if the value was truncated when read from * the database; <code>false</code> if the data was truncated on a write */ public boolean getRead() { return read; } /** * Gets the number of bytes of data that should have been transferred. * This number may be approximate if data conversions were being * performed. The value may be <code>-1</code> if the size is unknown. * * @return the number of bytes of data that should have been transferred */ public int getDataSize() { return dataSize; } /** * Gets the number of bytes of data actually transferred. * The value may be <code>-1</code> if the size is unknown. * * @return the number of bytes of data actually transferred */ public int getTransferSize() { return transferSize; } /** * @serial */ private int index; /** * @serial */ private boolean parameter; /** * @serial */ private boolean read; /** * @serial */ private int dataSize; /** * @serial */ private int transferSize; /** * @serial */ private static final long serialVersionUID = 6464298989504059473L; }