Java tutorial
/** * 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.binlog.impl.event; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import com.google.code.or.binlog.BinlogEventV4Header; import com.google.code.or.common.glossary.Metadata; import com.google.code.or.common.glossary.UnsignedLong; import com.google.code.or.common.glossary.column.BitColumn; import com.google.code.or.common.glossary.column.StringColumn; import com.google.code.or.common.util.MySQLConstants; /** * Used for row-based binary logging. This event precedes each row operation event. * It maps a table definition to a number, where the table definition consists of * database and table names and column definitions. The purpose of this event is to * enable replication when a table has different definitions on the master and slave. * Row operation events that belong to the same transaction may be grouped into sequences, * in which case each such sequence of events begins with a sequence of TABLE_MAP_EVENT events: * one per table used by events in the sequence. * * @author Jingqi Xu */ public final class TableMapEvent extends AbstractBinlogEventV4 { // public static final int EVENT_TYPE = MySQLConstants.TABLE_MAP_EVENT; // private long tableId; private int reserved; private int databaseNameLength; private StringColumn databaseName; private int tableNameLength; private StringColumn tableName; private UnsignedLong columnCount; private byte[] columnTypes; private UnsignedLong columnMetadataCount; private Metadata columnMetadata; private BitColumn columnNullabilities; /** * */ public TableMapEvent() { } public TableMapEvent(BinlogEventV4Header header) { this.header = header; } /** * */ @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE).append("header", header) .append("tableId", tableId).append("reserved", reserved) .append("databaseNameLength", databaseNameLength).append("databaseName", databaseName) .append("tableNameLength", tableNameLength).append("tableName", tableName) .append("columnCount", columnCount).append("columnTypes", columnTypes) .append("columnMetadataCount", columnMetadataCount).append("columnMetadata", columnMetadata) .append("columnNullabilities", columnNullabilities).toString(); } /** * */ public TableMapEvent copy() { final TableMapEvent r = new TableMapEvent(); r.setHeader(this.header); r.setTableId(this.tableId); r.setReserved(this.reserved); r.setDatabaseNameLength(this.databaseNameLength); r.setDatabaseName(this.databaseName); r.setTableNameLength(this.tableNameLength); r.setTableName(this.tableName); r.setColumnCount(this.columnCount); r.setColumnTypes(this.columnTypes); r.setColumnMetadataCount(this.columnMetadataCount); r.setColumnMetadata(this.columnMetadata); r.setColumnNullabilities(this.columnNullabilities); return r; } /** * */ public long getTableId() { return tableId; } public void setTableId(long tableId) { this.tableId = tableId; } public int getReserved() { return reserved; } public void setReserved(int reserved) { this.reserved = reserved; } public int getDatabaseNameLength() { return databaseNameLength; } public void setDatabaseNameLength(int databaseNameLength) { this.databaseNameLength = databaseNameLength; } public StringColumn getDatabaseName() { return databaseName; } public void setDatabaseName(StringColumn databaseName) { this.databaseName = databaseName; } public int getTableNameLength() { return tableNameLength; } public void setTableNameLength(int tableNameLength) { this.tableNameLength = tableNameLength; } public StringColumn getTableName() { return tableName; } public void setTableName(StringColumn tableName) { this.tableName = tableName; } public UnsignedLong getColumnCount() { return columnCount; } public void setColumnCount(UnsignedLong columnCount) { this.columnCount = columnCount; } public byte[] getColumnTypes() { return columnTypes; } public void setColumnTypes(byte[] columnTypes) { this.columnTypes = columnTypes; } public UnsignedLong getColumnMetadataCount() { return columnMetadataCount; } public void setColumnMetadataCount(UnsignedLong columnMetadataCount) { this.columnMetadataCount = columnMetadataCount; } public Metadata getColumnMetadata() { return columnMetadata; } public void setColumnMetadata(Metadata columnMetadata) { this.columnMetadata = columnMetadata; } public BitColumn getColumnNullabilities() { return columnNullabilities; } public void setColumnNullabilities(BitColumn columnNullabilities) { this.columnNullabilities = columnNullabilities; } }