blob: 7edc5500c94ce5bddc84adb8d09695783e3fc4c7 [file] [log] [blame]
/*
Derby - Class org.apache.derby.catalog.Dependable
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.derby.catalog;
/**
* A Dependable is an in-memory representation of an object managed
* by the Dependency System.
*
* There are two kinds of Dependables:
* Providers and Dependents. Dependents depend on Providers and
* are responsible for executing compensating logic when their
* Providers change.
* <P>
* The fields represent the known Dependables.
* <P>
* Persistent dependencies (those between database objects) are
* stored in SYS.SYSDEPENDS.
*
* @see org.apache.derby.catalog.DependableFinder
*/
public interface Dependable
{
/*
* Universe of known Dependables.
*/
public static final String ALIAS = "Alias";
public static final String CONGLOMERATE = "Conglomerate";
public static final String CONSTRAINT = "Constraint";
public static final String DEFAULT = "Default";
public static final String HEAP = "Heap";
public static final String INDEX = "Index";
public static final String PREPARED_STATEMENT = "PreparedStatement";
public static final String ACTIVATION = "Activation";
public static final String FILE = "File";
public static final String STORED_PREPARED_STATEMENT = "StoredPreparedStatement";
public static final String TABLE = "Table";
public static final String COLUMNS_IN_TABLE = "ColumnsInTable";
public static final String TRIGGER = "Trigger";
public static final String VIEW = "View";
public static final String SCHEMA = "Schema";
public static final String TABLE_PERMISSION = "TablePrivilege";
public static final String COLUMNS_PERMISSION = "ColumnsPrivilege";
public static final String ROUTINE_PERMISSION = "RoutinePrivilege";
public static final String ROLE_GRANT = "RoleGrant";
public static final String SEQUENCE = "Sequence";
public static final String PERM = "Perm";
/**
* Get an object which can be written to disk and which,
* when read from disk, will find or reconstruct this in-memory
* Dependable.
*
* @return A Finder object that can be written to disk if this is a
* Persistent Dependable.
* Null if this is not a persistent dependable.
*/
public DependableFinder getDependableFinder();
/**
* Get the name of this Dependable OBJECT. This is useful
* for diagnostic messages.
*
* @return Name of Dependable OBJECT.
*/
public String getObjectName();
/**
* Get the UUID of this Dependable OBJECT.
*
* @return UUID of this OBJECT.
*/
public UUID getObjectID();
/**
* Return whether or not this Dependable is persistent. Persistent
* dependencies are stored in SYS.SYSDEPENDS.
*
* @return true if this Dependable is persistent.
*/
public boolean isPersistent();
/**
* Get the unique class id for the Dependable.
* Every Dependable belongs to a class of Dependables.
*
* @return type of this Dependable.
*/
public String getClassType();
}