src.com.ibm.as400.access.DBSQLDADataFormat Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt400-jdk8 Show documentation
Show all versions of jt400-jdk8 Show documentation
The Open Source version of the IBM Toolbox for Java
The newest version!
///////////////////////////////////////////////////////////////////////////////
//
// JTOpen (IBM Toolbox for Java - OSS version)
//
// Filename: DBSQLDADataFormat.java
//
// The source code contained herein is licensed under the IBM Public License
// Version 1.0, which has been approved by the Open Source Initiative.
// Copyright (C) 1997-2001 International Business Machines Corporation and
// others. All rights reserved.
//
///////////////////////////////////////////////////////////////////////////////
package com.ibm.as400.access;
/**
The DBSQLDADataFormat class is an implementation of
DBDataFormat which describes the data format used in
the SQLDA, specifically for the package cache.
**/
class DBSQLDADataFormat
implements DBDataFormat
{
private static final String copyright = "Copyright (C) 1997-2001 International Business Machines Corporation and others.";
// Private data.
private static final int REPEATED_LENGTH_ = 80;
private byte[] rawBytes_ = null;
private int offset_ = -1;
private int numberOfFields_ = -1;
private int jobCCSID_; // @D1A
private int length_ = -1;
private boolean csRsData_ = false; // @550A Indicates if the data associated with this format is from a stored procedure result set.
/**
Constructs a DBSQLDADataFormat object. Use this when overlaying
on a reply datastream. The cached data will be set when overlay()
is called.
* @param jobCCSID
**/
public DBSQLDADataFormat(int jobCCSID) // @D1C
{
jobCCSID_ = jobCCSID; // @D1A
}
// @D1D /**
// @D1D Constructs a DBSQLDADataFormat object. Use this when overlaying
// @D1D on a request datastream. This sets the cached data so that
// @D1D the total length can be calculated before calling overlay().
// @D1D **/
// @D1D public DBSQLDADataFormat (int numberOfFields)
// @D1D {
// @D1D numberOfFields_ = numberOfFields;
// @D1D }
/**
Positions the overlay structure. This reads the cached data only
when it was not previously set by the constructor.
**/
public void overlay (byte[] rawBytes, int offset)
{
rawBytes_ = rawBytes;
offset_ = offset;
if(numberOfFields_ == -1)
numberOfFields_ = BinaryConverter.byteArrayToShort (rawBytes_, offset_ + 14);
length_ = 16 + numberOfFields_ * REPEATED_LENGTH_;
}
public int getLength ()
{
return length_;
}
public int getConsistencyToken ()
{
// Not applicable.
return -1;
}
public int getNumberOfFields ()
{
return numberOfFields_;
}
public int getRecordSize()
{
int recordSize = 0;
int numberOfFields = getNumberOfFields ();
for(int i = 0; i