OSID Logo
OSID Specifications
rules package
Version 3.0.0
Release Candidate Preview
Interfaceosid.rules.RuleAdminSession
Implementsosid.OsidSession
Description

This session creates, updates, and deletes Rules. The data for create and update is provided by the consumer via the form object. OsidForms are requested for each create or update and may not be reused.

Create and update operations differ in their usage. To create a Rule, a RuleForm is requested using getRuleFormForCreate() specifying the desired record Types or none if no record Types are needed. The returned RuleForm will indicate that it is to be used with a create operation and can be used to examine metdata or validate data prior to creation. Once the RuleForm is submiited to a create operation, it cannot be reused with another create operation unless the first operation was unsuccessful. Each RuleForm corresponds to an attempted transaction.

For updates, RuleForms are requested to the Rule Id that is to be updated using getRuleFormForUpdate(). Similarly, the RuleForm has metadata about the data that can be updated and it can perform validation before submitting the update. The RuleForm can only be used once for a successful update and cannot be reused.

The delete operations delete Rules. To unmap a Rule from the current Engine, the RuleEngineAssignmentSession should be used. These delete operations attempt to remove the Rule itself thus removing it from all known Engine catalogs.

This session includes an Id aliasing mechanism to assign an external Id to an internally assigned Id.

MethodgetEngineId
Description

Gets the Engine Id associated with this session.

Returnosid.id.Idthe Engine Id associated with this session
CompliancemandatoryThis method must be implemented.
MethodgetEngine
Description

Gets the Engine associated with this session.

Returnosid.rules.Enginethe Engine associated with this session
ErrorsOPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodcanCreateRules
Description

Tests if this user can create Rules. A return of true does not guarantee successful authorization. A return of false indicates that it is known creating a Rule will result in a PERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer create operations to an unauthorized user.

Returnboolean false if Rule creation is not authorized, true otherwise
CompliancemandatoryThis method must be implemented.
MethodcanCreateRuleWithRecordTypes
Description

Tests if this user can create a single Rule using the desired record types. While RulesManager.getRuleRecordTypes() can be used to examine which records are supported, this method tests which record(s) are required for creating a specific Rule. Providing an empty array tests if a Rule can be created with no records.

Parametersosid.type.Type[]ruleRecordTypesarray of rule record types
Returnboolean true if Rule creation using the specified record Types is supported, false otherwise
ErrorsNULL_ARGUMENT ruleRecordTypes is null
CompliancemandatoryThis method must be implemented.
MethodgetRuleFormForCreate
Description

Gets the rule form for creating new rules. A new form should be requested for each create transaction.

Parametersosid.type.Type[]ruleRecordTypesarray of rule record types
Returnosid.rules.RuleFormthe rule form
ErrorsNULL_ARGUMENT ruleRecordTypes is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
UNSUPPORTEDunable to get form with requested record types
CompliancemandatoryThis method must be implemented.
MethodcreateRule
Description

Creates a new Rule.

Parametersosid.rules.RuleFormruleFormthe form for this Rule
Returnosid.rules.Rulethe new Rule
ErrorsILLEGAL_STATE ruleForm already used in a create transaction
INVALID_ARGUMENTone or more of the form elements is invalid
NULL_ARGUMENT ruleForm is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
UNSUPPORTED ruleForm did not originate from getRuleFormForCreate()
CompliancemandatoryThis method must be implemented.
MethodcanUpdateRules
Description

Tests if this user can update Rules. A return of true does not guarantee successful authorization. A return of false indicates that it is known updating a Rule will result in a PERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer update operations to an unauthorized user.

Returnboolean false if rule modification is not authorized, true otherwise
CompliancemandatoryThis method must be implemented.
MethodgetRuleFormForUpdate
Description

Gets the rule form for updating an existing rule. A new rule form should be requested for each update transaction.

Parametersosid.id.IdruleIdthe Id of the Rule
Returnosid.rules.RuleFormthe rule form
ErrorsNOT_FOUND ruleId is not found
NULL_ARGUMENT ruleId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodupdateRule
Description

Updates an existing rule.

Parametersosid.rules.RuleFormruleFormthe form containing the elements to be updated
ErrorsILLEGAL_STATE ruleForm already used in an update transaction
INVALID_ARGUMENTthe form contains an invalid value
NULL_ARGUMENT ruleForm is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
UNSUPPORTED ruleForm did not originate from getRuleFormForUpdate()
CompliancemandatoryThis method must be implemented.
MethodcanDeleteRules
Description

Tests if this user can delete Rules. A return of true does not guarantee successful authorization. A return of false indicates that it is known deleting a Rule will result in a PERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer delete operations to an unauthorized user.

Returnboolean false if Rule deletion is not authorized, true otherwise
CompliancemandatoryThis method must be implemented.
MethoddeleteRule
Description

Deletes the Rule identified by the given Id.

Parametersosid.id.IdruleIdthe Id of the Rule to delete
ErrorsNOT_FOUNDa Rule was not found identified by the given Id
NULL_ARGUMENT ruleId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.
MethodcanManageRuleAliases
Description

Tests if this user can manage Id aliases for Rules. A return of true does not guarantee successful authorization. A return of false indicates that it is known changing an alias will result in a PERMISSION_DENIED. This is intended as a hint to an application that may opt not to offer alias operations to an unauthorized user.

Returnboolean false if Rule aliasing is not authorized, true otherwise
CompliancemandatoryThis method must be implemented.
MethodaliasRule
Description

Adds an Id to a Rule for the purpose of creating compatibility. The primary Id of the Rule is determined by the provider. The new Id performs as an alias to the primary Id. If the alias is a pointer to another rule, it is reassigned to the given rule Id.

Parametersosid.id.IdruleIdthe Id of a Rule
osid.id.IdaliasIdthe alias Id
ErrorsALREADY_EXISTS aliasId is already assigned
NOT_FOUND ruleId not found
NULL_ARGUMENT ruleId or aliasId is null
OPERATION_FAILEDunable to complete request
PERMISSION_DENIEDauthorization failure
CompliancemandatoryThis method must be implemented.