blob: fd3f6ee83a00faf28dbb2725cf623c1463db9378 [file] [log] [blame]
// @@@ START COPYRIGHT @@@
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
// @@@ END COPYRIGHT @@@
package org.trafodion.jdbc.t4;
import java.io.Serializable;
import java.util.BitSet;
// ****************************************************************************
// Class: ObjectArray
//
// This class describes an array of Objects, a corresponding array of
// updated objects, and a bitmap containing the updated element positions
// It is used by TrafT4ResultSets to handle result set rows.
// ****************************************************************************
class ObjectArray implements Serializable, Cloneable {
// Class members
private BitSet arrayElements_;
private int arraySize_;
private Object objectArray_[];
private Object updatedArray_[];
// Constructors
ObjectArray(int arraySize) {
arraySize_ = arraySize;
objectArray_ = new Object[arraySize];
updatedArray_ = new Object[arraySize];
// Initializes bit map of elements to false
arrayElements_ = new BitSet(arraySize_);
}
ObjectArray(int arraySize, Object objectArray[]) {
arraySize_ = arraySize;
objectArray_ = new Object[arraySize];
updatedArray_ = new Object[arraySize];
// Initializes bit map of elements to false
arrayElements_ = new BitSet(arraySize_);
// populate object array with passed in object array
for (int idx = 0; idx < arraySize_; idx++) {
objectArray_[idx] = objectArray[idx];
}
}
// Helpers
protected int getSize() { return arraySize_; }
protected Object getUpdatedArrayElement(int idx) {
if (arrayElements_ .get(idx - 1)) {
return updatedArray_[idx - 1];
}
else {
return objectArray_[idx - 1];
}
}
protected void updateArrayElement(int idx, Object obj) {
updatedArray_[idx - 1] = obj;
arrayElements_.set(idx - 1);
}
}