Package com.google.code.or.net.impl.packet

Source Code of com.google.code.or.net.impl.packet.ResultSetFieldPacket

/**
* 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.
*/
package com.google.code.or.net.impl.packet;

import java.io.IOException;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

import com.google.code.or.common.glossary.column.StringColumn;
import com.google.code.or.io.util.XDeserializer;
import com.google.code.or.io.util.XSerializer;
import com.google.code.or.net.Packet;

/**
*
* @author Jingqi Xu
*/
public class ResultSetFieldPacket extends AbstractPacket {
  //
  private static final long serialVersionUID = -6484191963940716299L;
 
  //
  private StringColumn catalog;
  private StringColumn db;
  private StringColumn table;
  private StringColumn orginalTable;
  private StringColumn column;
  private StringColumn originalColumn;
  private int fixed12;
  private int charset;
  private long fieldLength;
  private int fieldType;
  private int fieldOptions;
  private int decimalPrecision;
  private int reserved;
  private StringColumn defaultValue; // Optional
 
  /**
   *
   */
  @Override
  public String toString() {
    return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE)
    .append("catalog", catalog)
    .append("db", db)
    .append("table", table)
    .append("orginalTable", orginalTable)
    .append("column", column)
    .append("originalColumn", originalColumn)
    .append("fixed12", fixed12)
    .append("charset", charset)
    .append("fieldLength", fieldLength)
    .append("fieldType", fieldType)
    .append("fieldOptions", fieldOptions)
    .append("decimalPrecision", decimalPrecision)
    .append("reserved", reserved)
    .append("defaultValue", defaultValue).toString();
  }
 
  /**
   *
   */
  public byte[] getPacketBody() {
    final XSerializer s = new XSerializer(256);
    s.writeLengthCodedString(this.catalog);
    s.writeLengthCodedString(this.db);
    s.writeLengthCodedString(this.table);
    s.writeLengthCodedString(this.orginalTable);
    s.writeLengthCodedString(this.column);
    s.writeLengthCodedString(this.originalColumn);
    s.writeInt(this.fixed12, 1);
    s.writeInt(this.charset, 2);
    s.writeLong(this.fieldLength, 4);
    s.writeInt(this.fieldType, 1);
    s.writeInt(this.fieldOptions, 2);
    s.writeInt(this.decimalPrecision, 1);
    s.writeInt(this.reserved, 2);
    if(this.defaultValue != null) s.writeLengthCodedString(this.defaultValue);
    return s.toByteArray();
  }
 
  /**
   *
   */
  public StringColumn getCatalog() {
    return catalog;
  }

  public void setCatalog(StringColumn catalog) {
    this.catalog = catalog;
  }

  public StringColumn getDb() {
    return db;
  }

  public void setDb(StringColumn db) {
    this.db = db;
  }

  public StringColumn getTable() {
    return table;
  }

  public void setTable(StringColumn table) {
    this.table = table;
  }

  public StringColumn getOrginalTable() {
    return orginalTable;
  }

  public void setOrginalTable(StringColumn orginalTable) {
    this.orginalTable = orginalTable;
  }

  public StringColumn getColumn() {
    return column;
  }

  public void setColumn(StringColumn column) {
    this.column = column;
  }

  public StringColumn getOriginalColumn() {
    return originalColumn;
  }

  public void setOriginalColumn(StringColumn originalColumn) {
    this.originalColumn = originalColumn;
  }

  public int getFixed12() {
    return fixed12;
  }

  public void setFixed12(int fixed12) {
    this.fixed12 = fixed12;
  }

  public int getCharset() {
    return charset;
  }

  public void setCharset(int charset) {
    this.charset = charset;
  }

  public long getFieldLength() {
    return fieldLength;
  }

  public void setFieldLength(long fieldLength) {
    this.fieldLength = fieldLength;
  }

  public int getFieldType() {
    return fieldType;
  }

  public void setFieldType(int fieldType) {
    this.fieldType = fieldType;
  }

  public int getFieldOptions() {
    return fieldOptions;
  }

  public void setFieldOptions(int fieldOptions) {
    this.fieldOptions = fieldOptions;
  }

  public int getDecimalPrecision() {
    return decimalPrecision;
  }

  public void setDecimalPrecision(int decimalPrecision) {
    this.decimalPrecision = decimalPrecision;
  }

  public int getReserved() {
    return reserved;
  }

  public void setReserved(int reserved) {
    this.reserved = reserved;
  }

  public StringColumn getDefaultValue() {
    return defaultValue;
  }

  public void setDefaultValue(StringColumn defaultValue) {
    this.defaultValue = defaultValue;
  }

  /**
   *
   */
  public static ResultSetFieldPacket valueOf(Packet packet) throws IOException {
    final XDeserializer d = new XDeserializer(packet.getPacketBody());
    final ResultSetFieldPacket r = new ResultSetFieldPacket();
    r.fieldLength = packet.getLength();
    r.sequence = packet.getSequence();
    r.catalog = d.readLengthCodedString();
    r.db = d.readLengthCodedString();
    r.table = d.readLengthCodedString();
    r.orginalTable = d.readLengthCodedString();
    r.column = d.readLengthCodedString();
    r.originalColumn = d.readLengthCodedString();
    r.fixed12 = d.readInt(1);
    r.charset = d.readInt(2);
    r.fieldLength = d.readLong(4);
    r.fieldType = d.readInt(1);
    r.fieldOptions = d.readInt(2);
    r.decimalPrecision = d.readInt(1);
    r.reserved = d.readInt(2);
    if(d.available() > 0) r.defaultValue = d.readLengthCodedString();
    return r;
  }
}
TOP

Related Classes of com.google.code.or.net.impl.packet.ResultSetFieldPacket

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.