### *** This interface provides Binary Compatibility only, not Source Compatibility ***

Package com.sas.services.information.metadata

# Interface ColumnContainerInterface

All Superinterfaces:
  `MetadataInterface`, `PublicObjectInterface`, `Remote`

All Known Subinterfaces:
  `IndexInterface`, `RelationalKeyInterface`

@SASScope("ALL") @BinaryCompatibilityOnly public interface ColumnContainerInterface extends MetadataInterface
Both indexes and keys represent a somewhat similar data structure in a sense that they both are column container so it make sense to generalize the functionality around the column handling in a base interface and specialize this functionality in the respective Index and keys interfaces.

- ## Field Summary

  ### Fields inherited from interface com.sas.services.information.metadata.MetadataInterface

  `METADATA_STATE_DELETED, METADATA_STATE_DESTROYED, METADATA_STATE_NEW, METADATA_STATE_NORMAL, PERMISSION_READMETADATA, PERMISSION_WRITEMETADATA`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addColumn(ColumnInterface column)`
  Add a column to the the underneath Key or Index container
  `void`
  `addColumnAt(ColumnInterface column, int pos)`
  Add a column to the the underneath Key or Index container at specified position in Column List.
  `void`
  `addColumns(List<ColumnInterface> column)`
  Add a column list to the the underneath Key or Index container
  `List<ColumnInterface>`
  `getColumns()`
  Get all the columns present in the container
  `DataTableInterface`
  `getOwningTable()`
  Get the owning table of the underneath key or index container
  `void`
  `removeColumn(int pos)`
  Remove a column from the underneath Key or Index container at specified position in Column List.
  `void`
  `removeColumn(ColumnInterface column)`
  Remove a column from the underneath Key or Index container
  `void`
  `removeColumns(List<ColumnInterface> column)`
  Remove a column list from the underneath Key or Index container

  ### Methods inherited from interface com.sas.services.information.metadata.MetadataInterface

  `add, addAccessControl, addAttribute, addAttributes, addDocument, addExtension, addGroup, addImplementor, addKeyword, addNoteTextStore, addNoteTextStore, addObjectProperty, addObjectProperty, addPermissions, addPrompt, addPropertySet, addRemark, addResponsibleParty, addTransactionListener, addUsedByPrototype, checkin, checkout, commit, copyTo, countAssociatedObjects, delete, deleteAttribute, deleteAttributes, destroy, getAccessControls, getAttribute, getAttributes, getAuthorizationUtil, getCreateDate, getCreatedBy, getDescription, getDocuments, getEntityKey, getEntityURL, getExtensions, getGroups, getGUID, getIdentities, getImplementors, getKeywords, getLockedBy, getModifiedBy, getModifyDate, getNoteTextStore, getNoteTextStores, getNoteTextStoresByRole, getObjectProperties, getParent, getParentPath, getParents, getPath, getPaths, getPermission, getPermissions, getPermissions, getPreviousVersionNames, getPrimaryPropertyGroup, getPrompt, getPrompts, getPropertyBag, getPropertySets, getRemarksList, getReposId, getRepository, getRepositoryEntity, getRepositoryName, getReposKey, getResponsibleParties, getState, getTrackingId, getType, getUsageVersion, getUsedByPrototypes, getUsingPrototype, getVersion, isAuthorized, isCompatible, isDeleted, isDestroyed, isObjectAlive, isReadCompatible, mapNameToFilesystem, mapUrlToFilesystem, moveTo, newServiceObject, refresh, removeAccessControl, removeDocument, removeExtension, removeGroup, removeImplementor, removeKeyword, removeNoteTextStore, removeObjectProperty, removePermissions, removePrompt, removePropertySet, removeResponsibleParty, removeResponsiblePartyByIdentity, removeUsedByPrototype, rollback, setAttribute, setAttributes, setDeleted, setDescription, setDocuments, setExtensions, setGroups, setGUID, setKeywords, setName, setNoteTextStores, setObjectProperties, setPermission, setPrimaryPropertyGroup, setPrompt, setPrompts, setRemarksList, setRepository, setUsingPrototype, startTransaction, toByteArray, transactionEvent, uncheckout, update, updateFromBag, version`

  ### Methods inherited from interface com.sas.services.information.publicobject.PublicObjectInterface

  `addProcessorInterface, getContainer, getIdentifier, getName, getObjectURI, getPathUrl, getProcessorInterface, getTypeDescriptor`

- ## Method Details

  - ### addColumn

    void addColumn(ColumnInterface column) throws ServiceException, RemoteException
    Add a column to the the underneath Key or Index container
    Parameters:
      `column` -
    Throws:
      `ServiceException` - - 1] If column exist in the underneath Key or Index 2] If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### addColumnAt

    void addColumnAt(ColumnInterface column, int pos) throws ServiceException, RemoteException
    Add a column to the the underneath Key or Index container at specified position in Column List.
    Parameters:
      `column` -
      `pos` -
    Throws:
      `ServiceException` - - 1] If column exist in the underneath Key or Index 2] If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### addColumns

    void addColumns(List<ColumnInterface> column) throws ServiceException, RemoteException
    Add a column list to the the underneath Key or Index container
    Parameters:
      `column` -
    Throws:
      `ServiceException` - - 1] If column exist in the underneath Key or Index 2] If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### removeColumn

    void removeColumn(ColumnInterface column) throws ServiceException, RemoteException
    Remove a column from the underneath Key or Index container
    Parameters:
      `column` -
    Throws:
      `ServiceException` - - 1] If column exist in the underneath Key or Index 2] If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### removeColumn

    void removeColumn(int pos) throws ServiceException, RemoteException
    Remove a column from the underneath Key or Index container at specified position in Column List.
    Parameters:
      `pos` -
    Throws:
      `ServiceException` - - 1] If column to remove is the only column in the underneath Key or Index 2] If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### removeColumns

    void removeColumns(List<ColumnInterface> column) throws ServiceException, RemoteException
    Remove a column list from the underneath Key or Index container
    Parameters:
      `column` -
    Throws:
      `ServiceException` - - 1] If underneath Key or Index will be empty after removal of columns 2] If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### getColumns

    List<ColumnInterface> getColumns() throws ServiceException, RemoteException
    Get all the columns present in the container
    Returns:
    Throws:
      `ServiceException` - - 1] If column to remove is the only column in the underneath Key or Index 2] If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.

  - ### getOwningTable

    DataTableInterface getOwningTable() throws ServiceException, RemoteException
    Get the owning table of the underneath key or index container
    Returns:
    Throws:
      `ServiceException` - - If a repository error occurs.
      `RemoteException` - - In the event of remote object failure.