/* * Copyright (C) Tony Green, Litepal Framework Open Source 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 org.litepal.tablemanager.model; import java.util.HashMap; import java.util.Map; import java.util.Set; /** * This is a model class for tables. It stores a table name and a HashMap for * columns in the table. * * @author Tony Green * @since 1.0 */ public class TableModel { /** * Table name. */ private String tableName; /** * Column name is key, and column type is value. */ private Map<String, String> columnsMap = new HashMap<String, String>(); /** * Class name for the table name. This value might be null. Don't rely on * it. */ private String className; /** * Get table name. * * @return Name of table. */ public String getTableName() { return tableName; } /** * Set table name. * * @param tableName * Name of table. */ public void setTableName(String tableName) { this.tableName = tableName; } /** * Get class name. * * @return Return the class name or null. */ public String getClassName() { return className; } /** * Set class name. * * @param className * The class name. */ public void setClassName(String className) { this.className = className; } /** * Find all the column names of a table. * * @return Return a set of column names. */ public Set<String> getColumnNames() { return columnsMap.keySet(); } /** * Add a column into the table model. * * @param columnName * The name of column. * @param columnType * The data type of column. */ public void addColumn(String columnName, String columnType) { columnsMap.put(columnName, columnType); } /** * Find all the columns with their names and data types. * * @return A map contains all columns with column name as key and column * type as value. */ public Map<String, String> getColumns() { return columnsMap; } /** * Remove a column from table model. * * @param columnNameToRemove * The column name that need to remove. */ public void removeColumn(String columnNameToRemove) { columnsMap.remove(columnNameToRemove); } /** * Remove a column from table model. The case of the passed in column name * is ignored. * * @param columnNameToRemove * The column name that need to remove. */ public void removeColumnIgnoreCases(String columnNameToRemove) { for (String columnName : getColumnNames()) { if (columnName.equalsIgnoreCase(columnNameToRemove)) { columnsMap.remove(columnName); return; } } } }