/******************************************************************************* * 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.core.tables.memory; import java.io.Serializable; import java.math.BigInteger; import java.util.List; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import com.opendoorlogistics.api.tables.ODLColumnType; import com.opendoorlogistics.api.tables.ODLTableDefinition; import com.opendoorlogistics.api.tables.ODLTableDefinitionAlterable; import com.opendoorlogistics.api.tables.TableFlags; import com.opendoorlogistics.core.tables.utils.HasShortDescription; import com.opendoorlogistics.core.tables.utils.TableUtils; @XmlRootElement(name = "TableDefinition") @XmlAccessorType(XmlAccessType.FIELD) public class ODLTableDefinitionImpl extends ODLAbstractTableDefinition<ODLColumnDefinition> implements ODLTableDefinitionAlterable, Serializable, HasShortDescription{ public ODLTableDefinitionImpl(int id, String name){ super(id, name); initFlags(); } public ODLTableDefinitionImpl(ODLTableDefinitionImpl copyThis){ super(copyThis); } /** * No-args constructor is used by JAXB */ public ODLTableDefinitionImpl(){ initFlags(); } private void initFlags(){ TableUtils.addTableFlags(this, TableFlags.UI_EDIT_PERMISSION_FLAGS); } @Override protected ODLColumnDefinition createColObj(int id, String name, ODLColumnType type, long flags) { id = validateNewColumnId(id); return new ODLColumnDefinition(id,name,type,flags); } @Override public synchronized String getShortDescription() { return TableUtils.getShortTableDescription(this); } /** * Used by JAXB * @param columns */ @XmlElement(name = "Column") void setColumns(List<ODLColumnDefinition> columns){ this.columns = columns; } List<ODLColumnDefinition> getColumns(){ return columns; } @Override public synchronized Object getColumnDefaultValue(int col) { if(col>=columns.size()){ return null; } return columns.get(col).getDefaultValue(); } @Override public synchronized void setColumnDefaultValue(int col, Object value){ if(col>=columns.size()){ return; } columns.get(col).setDefaultValue(value); } @Override public ODLTableDefinition deepCopyWithShallowValueCopy() { throw new UnsupportedOperationException(); } }