blob: 0d324c7524509407f185f2a404fcad0e06623f98 [file] [log] [blame]
/*
* 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 org.apache.carbondata.core.indexstore;
import java.io.Serializable;
import org.apache.carbondata.core.datastore.impl.FileFactory;
import org.apache.carbondata.core.metadata.schema.table.CarbonTable;
import org.apache.hadoop.conf.Configuration;
/**
* Class holds reference to TableBlockIndexUniqueIdentifier and carbonTable related info
* This is just a wrapper passed between methods like a context, This object must never be cached.
*
*/
public class TableBlockIndexUniqueIdentifierWrapper implements Serializable {
private static final long serialVersionUID = 1L;
// holds the reference to tableBlockIndexUniqueIdentifier
private TableBlockIndexUniqueIdentifier tableBlockIndexUniqueIdentifier;
// holds the reference to CarbonTable
private CarbonTable carbonTable;
private transient Configuration configuration;
/**
* flag to specify whether to load table block metadata in unsafe or safe and whether to add the
* table block metadata in LRU cache. Default value is true
*/
private boolean addTableBlockToUnsafeAndLRUCache = true;
private boolean addToUnsafe = true;
private boolean serializeDmStore = false;
public TableBlockIndexUniqueIdentifierWrapper(
TableBlockIndexUniqueIdentifier tableBlockIndexUniqueIdentifier, CarbonTable carbonTable) {
this.tableBlockIndexUniqueIdentifier = tableBlockIndexUniqueIdentifier;
this.carbonTable = carbonTable;
this.configuration = FileFactory.getConfiguration();
}
private TableBlockIndexUniqueIdentifierWrapper(
TableBlockIndexUniqueIdentifier tableBlockIndexUniqueIdentifier, CarbonTable carbonTable,
Configuration configuration) {
this.tableBlockIndexUniqueIdentifier = tableBlockIndexUniqueIdentifier;
this.carbonTable = carbonTable;
this.configuration = configuration;
}
// Note: The constructor is getting used in extensions with other functionalities.
// Kindly do not remove
public TableBlockIndexUniqueIdentifierWrapper(
TableBlockIndexUniqueIdentifier tableBlockIndexUniqueIdentifier, CarbonTable carbonTable,
Configuration configuration, boolean addTableBlockToUnsafeAndLRUCache) {
this(tableBlockIndexUniqueIdentifier, carbonTable, configuration);
this.addTableBlockToUnsafeAndLRUCache = addTableBlockToUnsafeAndLRUCache;
}
// Note: The constructor is getting used in extensions with other functionalities.
// Kindly do not remove
public TableBlockIndexUniqueIdentifierWrapper(
TableBlockIndexUniqueIdentifier tableBlockIndexUniqueIdentifier, CarbonTable carbonTable,
boolean addTableBlockToUnsafeAndLRUCache, boolean addToUnsafe, boolean serializeDmStore) {
this(tableBlockIndexUniqueIdentifier, carbonTable);
this.configuration = FileFactory.getConfiguration();
this.addTableBlockToUnsafeAndLRUCache = addTableBlockToUnsafeAndLRUCache;
this.addToUnsafe = addToUnsafe;
this.serializeDmStore = serializeDmStore;
}
public TableBlockIndexUniqueIdentifier getTableBlockIndexUniqueIdentifier() {
return tableBlockIndexUniqueIdentifier;
}
public CarbonTable getCarbonTable() {
return carbonTable;
}
public boolean isAddTableBlockToUnsafeAndLRUCache() {
return addTableBlockToUnsafeAndLRUCache;
}
public Configuration getConfiguration() {
return configuration;
}
public boolean isAddToUnsafe() {
return addToUnsafe;
}
public boolean isSerializeDmStore() {
return serializeDmStore;
}
}