001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: package java.sql;
019:
020: import java.io.Serializable;
021:
022: /**
023: * An exception which is thrown when a JDBC driver unexpectedly truncates a data
024: * value either when reading or when writing data.
025: *
026: * The SQLState value for a <code>DataTruncation</code> is <code>01004</code>.
027: */
028: public class DataTruncation extends SQLWarning implements Serializable {
029:
030: private static final long serialVersionUID = 6464298989504059473L;
031:
032: private int index = 0;
033:
034: private boolean parameter = false;
035:
036: private boolean read = false;
037:
038: private int dataSize = 0;
039:
040: private int transferSize = 0;
041:
042: private static final String THE_REASON = "Data truncation"; //$NON-NLS-1$
043:
044: private static final String THE_SQLSTATE = "01004"; //$NON-NLS-1$
045:
046: private static final int THE_ERROR_CODE = 0;
047:
048: /**
049: * Creates a DataTruncation. The Reason is set to "Data truncation", the
050: * ErrorCode is set to the SQLException default value and other fields are
051: * set to the values supplied on this method.
052: *
053: * @param index
054: * the Index value of the column value or parameter that was
055: * truncated
056: * @param parameter
057: * true if it was a Parameter value that was truncated, false
058: * otherwise
059: * @param read
060: * true if the truncation occurred on a read operation, false
061: * otherwise
062: * @param dataSize
063: * the original size of the truncated data
064: * @param transferSize
065: * the size of the data after truncation
066: */
067: public DataTruncation(int index, boolean parameter, boolean read,
068: int dataSize, int transferSize) {
069: super (THE_REASON, THE_SQLSTATE, THE_ERROR_CODE);
070: this .index = index;
071: this .parameter = parameter;
072: this .read = read;
073: this .dataSize = dataSize;
074: this .transferSize = transferSize;
075: }
076:
077: /**
078: * Gets the number of bytes of data that should have been read/written.
079: *
080: * @return the number of bytes that should have been read or written. The
081: * value may be set to -1 if the size is unknown.
082: */
083: public int getDataSize() {
084: return dataSize;
085: }
086:
087: /**
088: * Gets the index of the column or of the parameter that was truncated.
089: *
090: * @return the index number of the column or of the parameter.
091: */
092: public int getIndex() {
093: return index;
094: }
095:
096: /**
097: * Gets whether the value truncated was a parameter value or a column value.
098: *
099: * @return true if the value truncated was a Parameter value, false if it
100: * was a column value
101: */
102: public boolean getParameter() {
103: return parameter;
104: }
105:
106: /**
107: * Gets whether the value was truncated on a read operation or a write
108: * operation
109: *
110: * @return true if the value was truncated on a read operation, false
111: * otherwise.
112: */
113: public boolean getRead() {
114: return read;
115: }
116:
117: /**
118: * Gets the number of bytes of data that was actually read or written
119: *
120: * @return the number of bytes actually read/written. The value may be set
121: * to -1 if the size is unknown.
122: */
123: public int getTransferSize() {
124: return transferSize;
125: }
126: }
|