@Component(value="cuba_AccessConstraintsBuilder")
@Scope(value="prototype")
public class AccessConstraintsBuilder
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected java.util.Map<java.lang.String,java.util.List<AccessConstraint>> |
builderConstraints |
protected ExtendedEntities |
extendedEntities |
protected java.util.List<ConstraintsContainer> |
joinSets |
protected Metadata |
metadata |
static java.lang.String |
NAME |
Constructor and Description |
---|
AccessConstraintsBuilder() |
Modifier and Type | Method and Description |
---|---|
protected void |
addConstraint(MetaClass metaClass,
AccessConstraint constraint) |
ConstraintsContainer |
build()
Returns the built set of entity constraints
|
static AccessConstraintsBuilder |
create() |
AccessConstraintsBuilder |
join(ConstraintsContainer constraints)
Adds all existing entity constraints to the new constructed constraints set.
|
AccessConstraintsBuilder |
withCustomGroovy(java.lang.Class<? extends Entity> target,
java.lang.String constraintCode,
java.lang.String groovyScript)
Adds in-memory groovy custom constraint to the constraints set
|
AccessConstraintsBuilder |
withCustomInMemory(java.lang.Class<? extends Entity> target,
java.lang.String constraintCode,
ConstraintPredicate<? extends Entity> predicate)
Adds in-memory custom constraint to the constraints set
|
AccessConstraintsBuilder |
withCustomJpql(java.lang.Class<? extends Entity> target,
java.lang.String constraintCode,
java.lang.String where,
java.lang.String join)
Adds JPQL custom constraint to the constraints set
|
AccessConstraintsBuilder |
withGroovy(java.lang.Class<? extends Entity> target,
EntityOp operation,
java.lang.String groovyScript)
Adds in-memory groovy constraint to the constraints set
|
AccessConstraintsBuilder |
withGroovy(java.lang.Class<? extends Entity> target,
java.util.EnumSet<EntityOp> operations,
java.lang.String groovyScript)
Adds in-memory groovy constraint to the constraints set
|
AccessConstraintsBuilder |
withInMemory(java.lang.Class<? extends Entity> target,
EntityOp operation,
ConstraintPredicate<? extends Entity> predicate)
Adds in-memory constraint to the constraints set
|
AccessConstraintsBuilder |
withInMemory(java.lang.Class<? extends Entity> target,
java.util.EnumSet<EntityOp> operations,
ConstraintPredicate<? extends Entity> predicate)
Adds in-memory constraint to the constraints set
|
AccessConstraintsBuilder |
withJpql(java.lang.Class<? extends Entity> target,
java.lang.String where)
Adds JPQL READ constraint to the constraints set
|
AccessConstraintsBuilder |
withJpql(java.lang.Class<? extends Entity> target,
java.lang.String where,
java.lang.String join)
Adds JPQL READ constraint to the constraints set
|
public static final java.lang.String NAME
@Inject protected Metadata metadata
@Inject protected ExtendedEntities extendedEntities
protected java.util.List<ConstraintsContainer> joinSets
protected java.util.Map<java.lang.String,java.util.List<AccessConstraint>> builderConstraints
public static AccessConstraintsBuilder create()
public AccessConstraintsBuilder join(ConstraintsContainer constraints)
public AccessConstraintsBuilder withJpql(java.lang.Class<? extends Entity> target, java.lang.String where, @Nullable java.lang.String join)
target
- entity classwhere
- JPQL where clausejoin
- JPQL join clausepublic AccessConstraintsBuilder withJpql(java.lang.Class<? extends Entity> target, java.lang.String where)
target
- entity classwhere
- JPQL where clausepublic AccessConstraintsBuilder withCustomJpql(java.lang.Class<? extends Entity> target, java.lang.String constraintCode, java.lang.String where, @Nullable java.lang.String join)
target
- entity classconstraintCode
- custom constraint codewhere
- JPQL where clausejoin
- JPQL join clausepublic AccessConstraintsBuilder withInMemory(java.lang.Class<? extends Entity> target, EntityOp operation, ConstraintPredicate<? extends Entity> predicate)
target
- entity classoperation
- CRUD operationpredicate
- in-memory predicate, returns true if entity is allowed by access constraintpublic AccessConstraintsBuilder withInMemory(java.lang.Class<? extends Entity> target, java.util.EnumSet<EntityOp> operations, ConstraintPredicate<? extends Entity> predicate)
target
- entity classoperations
- CRUD operationspredicate
- in-memory predicate, returns true if entity is allowed by access constraintpublic AccessConstraintsBuilder withCustomInMemory(java.lang.Class<? extends Entity> target, java.lang.String constraintCode, ConstraintPredicate<? extends Entity> predicate)
target
- entity classconstraintCode
- custom constraint codepredicate
- in-memory predicate, returns true if entity is allowed by access constraintpublic AccessConstraintsBuilder withGroovy(java.lang.Class<? extends Entity> target, EntityOp operation, java.lang.String groovyScript)
target
- entity classoperation
- CRUD operationgroovyScript
- groovy scriptpublic AccessConstraintsBuilder withGroovy(java.lang.Class<? extends Entity> target, java.util.EnumSet<EntityOp> operations, java.lang.String groovyScript)
target
- entity classoperations
- CRUD operationsgroovyScript
- groovy scriptpublic AccessConstraintsBuilder withCustomGroovy(java.lang.Class<? extends Entity> target, java.lang.String constraintCode, java.lang.String groovyScript)
target
- entity classconstraintCode
- custom constraint codegroovyScript
- groovy scriptpublic ConstraintsContainer build()
protected void addConstraint(MetaClass metaClass, AccessConstraint constraint)