3 ms·
TLDR, converted for HN: public Binding swearOath(declaration string, witness Deity<Religion>, curse string) Parameters: declaration: A declaration, which may
by codeulike 6y ago
TLDR, converted for HN:
public Binding swearOath(declaration string, witness Deity<Religion>, curse string)
Parameters:
declaration: A declaration, which may be either something about the present or past or a promise for the future.
witness: The specific powers greater than oneself who are invoked as witnesses and who will enforce the penalty if the oath is false. In Christian oaths, this is typically God, although it can also include saints. For the Greeks, Zeus Horkios (Zeus the Oath-Keeper) is the most common witness for oaths. This is almost never omitted, even when it is obvious.
curse: A curse, by the swearers, called down on themselves, should they be false. This third part is often omitted or left implied, where the cultural context makes it clear what the curse ought to be. Particularly, in Christian contexts, the curse is theologically obvious (damnation, delivered at judgment) and so is often omitted.
(i.e. can pass null for curse if witness = God<Christianity>)
An InvalidOath exception is thrown if any parameters missing.
Return value: Binding (object): binding will be registered as an observer on current, past or future action, calling method with name 'curse' if original declaration not valid or not fulfilled.
See also Vows (which are different)
- idoby 6y agoEdge cases in the API (can pass null etc) and throwing an exception on programming errors are smells for me. I would model it this way: oathContract = power.witnessOath(declaration, curse); or in the case of a Christian power (which ISA Jewish power too): oathContract = christianPower.witnessOath(declaration); It's just not the same interface. You can't realistically ignore the type of power and use a polymorphic call. The Bible says so. (Of course, when you oathContract.renege(), we know which power should handle your case, and can put a message in their respective queue)
- codeulike 6y agoHaha Deity = undocumented API Theology = reverse engineering Schism = new version breaks backward compatibility