Voters
Voters are used in Magnolia whenever configuration values are not assigned at startup but instead depend on rules. For example the Cache module has to determine if a requested resource may be cached or not. The rules to determine values should be configurable. The rules are user-defined using voters which evaluate established criteria by determining true or false of each rule. Voters are currently used for:
-
Filter configuration: uses voters to determine whether a filter should be executed or bypassed.
-
Cache configuration: uses voters to determine whether a file should be cached or not.
The basic concept of voters uses voter
classes which calculate an int
vote value, where the positives (1
, 2
, 3
, …) are treated as yes
or true
and 0
, -1
, -2
, and so on are treated as no
or false
.
If you have a set of voters, then the result of a voting is the largest absolute result. If there are two voters with the same absolute result, then the one with the higher positive value will be taken.
- Examples
Vote results | VoterSet result |
---|---|
-3, 0, 2 |
-3 |
-3, 0, 3 |
3 |
-3, 0, 4 |
4 |
For most of the real world
voters only boolean results make sense. These boolean voters return 1
for a true
and 0
for a false
result.
Voter examples
Voter | Parameters | Description |
---|---|---|
info.magnolia.voting.voters.AuthenticatedVoter |
none |
Boolean Checks if the current user is authenticated. |
info.magnolia.voting.voters.ExtensionVoter |
yes
|
Boolean
|
For more information, see the voters package. |