All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.ontopia.topicmaps.db2tm.Changelog Maven / Gradle / Ivy

The newest version!
/*
 * #!
 * Ontopia DB2TM
 * #-
 * Copyright (C) 2001 - 2013 The Ontopia Project
 * #-
 * Licensed 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 net.ontopia.topicmaps.db2tm;

import java.util.Map;
import java.util.HashMap;

/**
 * INTERNAL: Data carrier holding the information about a change log
 * table from the mapping file.
 */
public class Changelog {
  protected final Relation relation;
  
  protected String table; // table name
  protected String[] pkey; // primary key
  protected String order_column; // ordering column
  protected String local_order_column; // local ordering column

  protected String condition; // added to where clause for filtering
  
  protected Map virtualColumns = new HashMap();
  
  Changelog(Relation relation) {
    this.relation = relation;
  }

  /**
   * INTERNAL: Returns the relation to which the changelog belongs.
   */
  public Relation getRelation() {
    return relation;
  }

  /**
   * INTERNAL: Returns the name of the changelog table.
   */
  public String getTable() {
    return table;
  }

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

  public String[] getPrimaryKey() {
    return pkey;
  }

  public void setPrimaryKey(String[] pkey) {
    this.pkey = pkey;
  }

  public String getOrderColumn() {
    return order_column;
  }

  public void setOrderColumn(String order_column) {
    this.order_column = order_column;
  }

  public String getLocalOrderColumn() {
    return local_order_column;
  }

  public void setLocalOrderColumn(String local_order_column) {
    this.local_order_column = local_order_column;
  }

  public void setCondition(String condition) {
    this.condition = condition;
  }

  public String getCondition() {
    return condition;
  }

  public void addVirtualColumn(ExpressionVirtualColumn column) {
    virtualColumns.put(column.getColumnName(), column);
  }

  public boolean isExpressionColumn(String colname) {
    return virtualColumns.containsKey(colname);
  }

  public String getColumnExpression(String colname) {
    return virtualColumns.get(colname).getSQLExpression();
  }

  @Override
  public String toString() {
    return "Changelog(" + getTable() + ")";
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy