@InterfaceAudience.Private public final class Constraints extends Object
Constraints can be added on table load time, via the HTableDescriptor
.
NOTE: this class is NOT thread safe. Concurrent setting/enabling/disabling of constraints can cause constraints to be run at incorrect times or not at all.
Modifier and Type | Method and Description |
---|---|
static void |
add(HTableDescriptor desc,
Class<? extends Constraint>... constraints)
Add configuration-less constraints to the table.
|
static void |
add(HTableDescriptor desc,
Class<? extends Constraint> constraint,
Configuration conf)
Add a
Constraint to the table with the given configuration |
static void |
add(HTableDescriptor desc,
Pair<Class<? extends Constraint>,Configuration>... constraints)
Add constraints and their associated configurations to the table.
|
static void |
disable(HTableDescriptor desc)
Turn off processing constraints for a given table, even if constraints have
been turned on or added.
|
static void |
disableConstraint(HTableDescriptor desc,
Class<? extends Constraint> clazz)
Disable the given
Constraint . |
static void |
enable(HTableDescriptor desc)
Enable constraints on a table.
|
static void |
enableConstraint(HTableDescriptor desc,
Class<? extends Constraint> clazz)
Enable the given
Constraint . |
static boolean |
enabled(HTableDescriptor desc,
Class<? extends Constraint> clazz)
Check to see if the given constraint is enabled.
|
static boolean |
has(HTableDescriptor desc,
Class<? extends Constraint> clazz)
Check to see if the Constraint is currently set.
|
static void |
remove(HTableDescriptor desc)
Remove all
Constraints that have been added to the table
and turn off the constraint processing. |
static void |
remove(HTableDescriptor desc,
Class<? extends Constraint> clazz)
Remove the constraint (and associated information) for the table
descriptor.
|
static void |
setConfiguration(HTableDescriptor desc,
Class<? extends Constraint> clazz,
Configuration configuration)
Update the configuration for the
Constraint ; does not change the
order in which the constraint is run. |
public static void enable(HTableDescriptor desc) throws IOException
Currently, if you attempt to add a constraint to the table, then Constraints will automatically be turned on.
desc
- table description to add the processorIOException
- If the ConstraintProcessor
CP couldn't be added to the
table.public static void disable(HTableDescriptor desc)
desc
- HTableDescriptor
where to disable Constraints
.public static void remove(HTableDescriptor desc)
Constraints
that have been added to the table
and turn off the constraint processing.
All Configurations
and their associated
Constraint
are removed.
desc
- HTableDescriptor
to remove Constraints
from.public static boolean has(HTableDescriptor desc, Class<? extends Constraint> clazz)
desc
- HTableDescriptor
to checkclazz
- Constraint
class to check for.Constraint
is present, even if it is
disabled. false otherwise.public static void add(HTableDescriptor desc, Class<? extends Constraint>... constraints) throws IOException
This will overwrite any configuration associated with the previous constraint of the same class.
Each constraint, when added to the table, will have a specific priority,
dictating the order in which the Constraint
will be run. A
Constraint
earlier in the list will be run before those later in
the list. The same logic applies between two Constraints over time (earlier
added is run first on the regionserver).
desc
- HTableDescriptor
to add Constraints
constraints
- Constraints
to add. All constraints are
considered automatically enabled on addIOException
- If constraint could not be serialized/added to tablepublic static void add(HTableDescriptor desc, Pair<Class<? extends Constraint>,Configuration>... constraints) throws IOException
Adding the same constraint class twice will overwrite the first constraint's configuration
Each constraint, when added to the table, will have a specific priority,
dictating the order in which the Constraint
will be run. A
Constraint
earlier in the list will be run before those later in
the list. The same logic applies between two Constraints over time (earlier
added is run first on the regionserver).
desc
- HTableDescriptor
to add a Constraint
constraints
- Pair
of a Constraint
and its associated
Configuration
. The Constraint will be configured on load
with the specified configuration.All constraints are considered
automatically enabled on addIOException
- if any constraint could not be deserialized. Assumes if 1
constraint is not loaded properly, something has gone terribly
wrong and that all constraints need to be enforced.public static void add(HTableDescriptor desc, Class<? extends Constraint> constraint, Configuration conf) throws IOException
Constraint
to the table with the given configuration
Each constraint, when added to the table, will have a specific priority,
dictating the order in which the Constraint
will be run. A
Constraint
added will run on the regionserver before those added to
the HTableDescriptor
later.
desc
- table descriptor to the constraint toconstraint
- to be addedconf
- configuration associated with the constraintIOException
- if any constraint could not be deserialized. Assumes if 1
constraint is not loaded properly, something has gone terribly
wrong and that all constraints need to be enforced.public static void setConfiguration(HTableDescriptor desc, Class<? extends Constraint> clazz, Configuration configuration) throws IOException, IllegalArgumentException
Constraint
; does not change the
order in which the constraint is run.desc
- HTableDescriptor
to updateclazz
- Constraint
to updateconfiguration
- to update the Constraint
with.IOException
- if the Constraint was not stored correctlyIllegalArgumentException
- if the Constraint was not present on this table.public static void remove(HTableDescriptor desc, Class<? extends Constraint> clazz)
desc
- HTableDescriptor
to modifyclazz
- Constraint
class to removepublic static void enableConstraint(HTableDescriptor desc, Class<? extends Constraint> clazz) throws IOException
Constraint
. Retains all the information (e.g.
Configuration) for the Constraint
, but makes sure that it gets
loaded on the table.desc
- HTableDescriptor
to modifyclazz
- Constraint
to enableIOException
- If the constraint cannot be properly deserializedpublic static void disableConstraint(HTableDescriptor desc, Class<? extends Constraint> clazz) throws IOException
Constraint
. Retains all the information (e.g.
Configuration) for the Constraint
, but it just doesn't load the
Constraint
on the table.desc
- HTableDescriptor
to modifyclazz
- Constraint
to disable.IOException
- if the constraint cannot be foundpublic static boolean enabled(HTableDescriptor desc, Class<? extends Constraint> clazz) throws IOException
desc
- HTableDescriptor
to check.clazz
- Constraint
to check forConstraint
is present and enabled.
false otherwise.IOException
- If the constraint has improperly stored in the table