See: Description
| Interface | Description |
|---|---|
| AccessPermissionRule |
Provides methods to access permission rules.
|
| AccessPermissionRuleDefinition |
Contains methods which define attributes for
AccessPermissionRule
implementations. |
| ActionPermissionRule |
Provides methods for action permission rules.
|
| ActionPermissionRuleDefinition |
Contains methods which define attributes for
ActionPermissionRule
implementations. |
| BusinessRuleDefinition |
Contains methods which define attributes for rule implementations.
|
| PermissionExecutionContext |
Defines permission rule parameters.
|
| PermissionRuleConfigurationContext |
Provides configuration attributes for
AccessPermissionRule
implementation and ActionPermissionRule implementation. |
| Rule |
Provides methods for business rules.
|
| RuleConfigurationContext |
Provides configuration attributes for
Rule implementation. |
| RuleDefinition |
Contains methods that define common attributes for both business rule
implementation and permission rule implementation.
|
| RuleExecutionContext |
Defines business rule parameters.
|
| Class | Description |
|---|---|
| DefaultConstraint |
Executes validation rule business logic.
|
| DefaultConstraintOnNull |
Executes validation rule business logic.
|
| DefaultConstraintOnTable |
Executes manual validation rule business logic.
|
| DefaultRulesSchemaServicePermission |
Specifies the conditions under which the service may be executed.
|
| DefaultRulesServicePermission |
Specifies the conditions under which the service may be executed.
|
| DefaultSchemaExtension |
Evaluates the permissions on a data set, table, field or record.
|
| DefaultTableTrigger |
Extends the
TableTrigger class and executes automated and
validation rule business logic. |
| Hook |
Defines the event that executes a rule such as 'Before update', 'After
insert', etc.
|
| InputData |
Defines the input data for a rule or rule context.
|
| OutputData |
Defines the output data for a rule or rule context.
|
| ParameterDefinition |
Defines a parameter for a rule or rule context.
|
| PermissionScope |
Defines the scopes for
AccessPermissionRule and
ActionPermissionRule. |
| PropertyData |
Defines the property data for a rule or rule context.
|
| RuleExecutionResult |
Represents the result of rule execution.
|
| RulesCatalog |
Provides the list of business rules to register.
|
| RuleType |
Defines the types available for a business rule.
|
| Exception | Description |
|---|---|
| RpflException |
Defines the exception for business rules.
|
Classes and interfaces to create business rules and permission rules.
Create a Rule and a RuleDefinition:
public class RuleTest implements Rule
{
private UserMessage errorMessage;
private List<PropertyData> propertyData;
public RuleTest()
{
}
public void setup(RuleConfigurationContext configurationContext)
{
this.errorMessage = configurationContext.getErrorMessage();
this.propertyData = configurationContext.getPropertyData();
}
public RuleExecutionResult execute(RuleExecutionContext executionContext)
{
RuleExecutionResult result = new RuleExecutionResult();
result.setErrorMessage(this.errorMessage);
// do something ...
result.setResult(false);
return result;
}
}
public class RuleTest_Definition implements BusinessRuleDefinition
{
public RuleType getRuleType()
{
return RuleType.ValidationRule;
}
public Rule getRuleInstance()
{
return new RuleTest();
}
public UserMessage getLabel()
{
return UserMessage.createInfo("Rule test label");
}
public List<InputData> getInputData()
{
return null;
}
public List<OutputData> getOutputData()
{
return null;
}
public List<PropertyData> getPropertyData()
{
return null;
}
public boolean isContext()
{
return false;
}
public UserMessage getBusinessConcept()
{
return HmfhBusinessConcept.ACCOUNT;
}
public UserMessage getDefaultMessage() {
return UserMessage.createError("Rule test is failed");
}
}
Add this rule to RulesCatalog:
RulesCatalog.add(new RuleTest_Definition());
Create an AccessPermissionRule and an AccessPermissionRuleDefinition:
public final class AccessHidden implements AccessPermissionRule
{
private List<PropertyData> propertyData;
public AccessPermission getPermission(PermissionExecutionContext context)
{
return AccessPermission.getHidden();
}
public void setup(PermissionRuleConfigurationContext configurationContext)
{
this.propertyData = configurationContext.getPropertyData();
}
}
public final class HiddenDataset_Definition implements AccessPermissionRuleDefinition
{
public List<InputData> getInputData()
{
return null;
}
public UserMessage getLabel()
{
return UserMessage.createInfo("Hide the data set");
}
public List<OutputData> getOutputData()
{
return null;
}
public List<PropertyData> getPropertyData()
{
return null;
}
public UserMessage getBusinessConcept()
{
return UserMessage.createInfo("Any data set");
}
public AccessPermissionRule getRuleInstance()
{
return new AccessHidden();
}
public PermissionScope getPermissionScope()
{
return PermissionScope.DATASET;
}
}
Add this access permission rule to RulesCatalog:
RulesCatalog.add(new HiddenDataset_Definition());
Create an ActionPermissionRule and an ActionPermissionRuleDefinition:
public final class ActionDisable implements ActionPermissionRule
{
private List<PropertyData> propertyData;
public ActionPermission getPermission(PermissionExecutionContext context)
{
return ActionPermission.getDisabled();
}
public void setup(PermissionRuleConfigurationContext configurationContext)
{
this.propertyData = configurationContext.getPropertyData();
}
}
public final class DisableService_Definition implements ActionPermissionRuleDefinition
{
public List<InputData> getInputData()
{
return null;
}
public UserMessage getLabel()
{
return UserMessage.createInfo("Disable the service");
}
public List<OutputData> getOutputData()
{
return null;
}
public List<PropertyData> getPropertyData()
{
return null;
}
public UserMessage getBusinessConcept()
{
return UserMessage.createInfo("Any service");
}
public ActionPermissionRule getRuleInstance()
{
return new ActionDisable();
}
}
Add this action permission rule to RulesCatalog:
RulesCatalog.add(new DisableService_Definition());