コード例 #1
0
 /*      */ void processDescribeData() /*      */ throws SQLException /*      */ {
   /*  112 */ this.described = true;
   /*  113 */ this.describedWithNames = true;
   /*      */
   /*  124 */ if ((this.accessors == null)
       || (this.numberOfDefinePositions > this.accessors.length)) {
     /*  125 */ this.accessors = new Accessor[this.numberOfDefinePositions];
     /*      */ }
   /*      */
   /*  141 */ int i = this.connection.queryMetaData1Offset;
   /*  142 */ int j = this.connection.queryMetaData2Offset;
   /*  143 */ short[] arrayOfShort = this.connection.queryMetaData1;
   /*  144 */ byte[] arrayOfByte = this.connection.queryMetaData2;
   /*      */
   /*  146 */ for (int k = 0; k < this.numberOfDefinePositions; )
   /*      */ {
     /*  149 */ int m = arrayOfShort[(i + 0)];
     /*  150 */ int n = arrayOfShort[(i + 1)];
     /*  151 */ int i1 = arrayOfShort[(i + 11)];
     /*  152 */ boolean bool = arrayOfShort[(i + 2)] != 0;
     /*  153 */ int i2 = arrayOfShort[(i + 3)];
     /*  154 */ int i3 = arrayOfShort[(i + 4)];
     /*  155 */ int i4 = 0;
     /*  156 */ int i5 = 0;
     /*  157 */ int i6 = 0;
     /*  158 */ short s = arrayOfShort[(i + 5)];
     /*  159 */ int i7 = arrayOfShort[(i + 6)];
     /*  160 */ String str1 = bytes2String(arrayOfByte, j, i7);
     /*  161 */ int i8 = arrayOfShort[(i + 12)];
     /*  162 */ String str2 = null;
     /*  163 */ OracleTypeADT localOracleTypeADT = null;
     /*      */
     /*  165 */ j += i7;
     /*      */
     /*  167 */ if (i8 > 0)
     /*      */ {
       /*  169 */ str2 = bytes2String(arrayOfByte, j, i8);
       /*  170 */ j += i8;
       /*  171 */ localOracleTypeADT = new OracleTypeADT(str2, this.connection);
       /*  172 */ localOracleTypeADT.tdoCState =
           ((arrayOfShort[(i + 7)] & 0xFFFF) << 48
               | (arrayOfShort[(i + 8)] & 0xFFFF) << 32
               | (arrayOfShort[(i + 9)] & 0xFFFF) << 16
               | arrayOfShort[(i + 10)] & 0xFFFF);
       /*      */ }
     /*      */
     /*  180 */ Object localObject = this.accessors[k];
     /*      */
     /*  182 */ if ((localObject != null)
         && (!((Accessor) localObject)
             .useForDescribeIfPossible(m, n, bool, i4, i2, i3, i5, i6, s, str2)))
     /*      */ {
       /*  186 */ localObject = null;
       /*      */ }
     /*  188 */ if (localObject == null)
     /*      */ {
       /*  190 */ switch (m)
       /*      */ {
           /*      */ case 1:
           /*  194 */ localObject = new VarcharAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  198 */ if (i1 <= 0) break;
           /*  199 */ ((Accessor) localObject).setDisplaySize(i1);
           break;
           /*      */ case 96:
           /*  204 */ localObject = new CharAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  208 */ if (i1 <= 0) break;
           /*  209 */ ((Accessor) localObject).setDisplaySize(i1);
           break;
           /*      */ case 2:
           /*  214 */ localObject = new NumberAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  218 */ break;
           /*      */ case 23:
           /*  221 */ localObject = new RawAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  225 */ break;
           /*      */ case 100:
           /*  228 */ localObject = new BinaryFloatAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  232 */ break;
           /*      */ case 101:
           /*  235 */ localObject = new BinaryDoubleAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  239 */ break;
           /*      */ case 8:
           /*  242 */ localObject = new LongAccessor(this, k + 1, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  249 */ this.rowPrefetch = 1;
           /*      */
           /*  251 */ break;
           /*      */ case 24:
           /*  254 */ localObject =
               new LongRawAccessor(this, k + 1, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  261 */ this.rowPrefetch = 1;
           /*      */
           /*  263 */ break;
           /*      */ case 104:
           /*  266 */ localObject = new RowidAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  270 */ break;
           /*      */ case 102:
           /*      */ case 116:
           /*  275 */ localObject = new T2CResultSetAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  279 */ break;
           /*      */ case 12:
           /*  282 */ localObject = new DateAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  286 */ break;
           /*      */ case 180:
           /*  289 */ localObject = new TimestampAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  293 */ break;
           /*      */ case 181:
           /*  296 */ localObject = new TimestamptzAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  300 */ break;
           /*      */ case 231:
           /*  303 */ localObject = new TimestampltzAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  307 */ break;
           /*      */ case 182:
           /*  310 */ localObject = new IntervalymAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  314 */ break;
           /*      */ case 183:
           /*  317 */ localObject = new IntervaldsAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  321 */ break;
           /*      */ case 112:
           /*  324 */ localObject = new ClobAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  328 */ break;
           /*      */ case 113:
           /*  331 */ localObject = new BlobAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  335 */ break;
           /*      */ case 114:
           /*  338 */ localObject = new BfileAccessor(this, n, bool, i4, i2, i3, i5, i6, s);
           /*      */
           /*  342 */ break;
           /*      */ case 109:
           /*  345 */ localObject =
               new NamedTypeAccessor(
                   this, n, bool, i4, i2, i3, i5, i6, s, str2, localOracleTypeADT);
           /*      */
           /*  350 */ break;
           /*      */ case 111:
           /*  353 */ localObject =
               new RefTypeAccessor(this, n, bool, i4, i2, i3, i5, i6, s, str2, localOracleTypeADT);
           /*      */
           /*  358 */ break;
           /*      */ default:
           /*  364 */ throw new SQLException("Unknown or unimplemented accessor type: " + m);
           /*      */ }
       /*      */
       /*  372 */ this.accessors[k] = localObject;
       /*      */ }
     /*  374 */ else if (localOracleTypeADT != null)
     /*      */ {
       /*  376 */ ((Accessor) localObject).initMetadata();
       /*      */ }
     /*      */
     /*  379 */ ((Accessor) localObject).columnName = str1;
     /*      */
     /*  147 */ k++;
     i += 13;
     /*      */ }
   /*      */ }