/******************************************************************************* * Copyright (c) 2014 Open Door Logistics (www.opendoorlogistics.com) * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at http://www.gnu.org/licenses/lgpl.txt ******************************************************************************/ package com.opendoorlogistics.api.tables; import java.io.Serializable; import java.util.Set; public interface ODLTableDefinition extends Serializable,HasTags, HasFlags{ int getColumnCount(); int getColumnImmutableId(int col); String getColumnDescription(int col); long getColumnFlags(int col); Object getColumnDefaultValue(int col); String getColumnName(int col); // ODLTableDefinition deepCopyDataOnly(); /** * Returns a read only version of the column's tags that will throw an exception if any modification is attempted. * @param col * @return */ Set<String> getColumnTags(int col); ODLColumnType getColumnType(int i); /** * The id is unique and immutable; it is created when the table * is created and never changes, even if other lower index tables are deleted * in the datastore. * @return */ int getImmutableId(); String getName(); void setColumnDescription(int col, String description); ODLTableDefinition deepCopyWithShallowValueCopy(); }