Skip to content

self-assert / IntegerDraftAssistant

Class: IntegerDraftAssistant<ContainerModel>

Provides an assistant for the completion of an integer field, represented by a string.

Extends

Type Parameters

Type ParameterDefault type
ContainerModelany

Constructors

Constructor

new IntegerDraftAssistant<ContainerModel>(assistants, creationClosure, modelFromContainer, assertionIds): IntegerDraftAssistant<ContainerModel>

Parameters

ParameterType
assistants[DraftAssistant<string, number>]
creationClosureCreationClosure<number, [string]>
modelFromContainerModelFromContainer<number, ContainerModel>
assertionIdsstring[]

Returns

IntegerDraftAssistant<ContainerModel>

Inherited from

SectionDraftAssistant.constructor

Error handling

handleError()

handleError(possibleCreateModelError): void

Parameters

ParameterType
possibleCreateModelErrorunknown

Returns

void

Inherited from

SectionDraftAssistant.handleError


routeBrokenRulesOf()

routeBrokenRulesOf(aRulesBrokenError): void

Parameters

ParameterType
aRulesBrokenErrorRulesBroken

Returns

void

Inherited from

SectionDraftAssistant.routeBrokenRulesOf


routeBrokenRule()

routeBrokenRule(brokenRule): void

Parameters

ParameterType
brokenRuleLabeledRule

Returns

void

Inherited from

SectionDraftAssistant.routeBrokenRule

Model creation

isInvalidModel()

static isInvalidModel(potentialModel): boolean

Parameters

ParameterType
potentialModelunknown

Returns

boolean

Inherited from

SectionDraftAssistant.isInvalidModel


createModel()

createModel(): number

Attempts to create a model. It fails if any of the assertions fail.

Returns

number

See

withCreatedModelDo.

Throws

RulesBroken if the model is invalid

Inherited from

SectionDraftAssistant.createModel


setModel()

setModel(newModel): void

Parameters

ParameterType
newModelnumber

Returns

void

Inherited from

SectionDraftAssistant.setModel


resetModel()

resetModel(): void

Resets the model to its initial value.

Returns

void

Inherited from

SectionDraftAssistant.resetModel


withCreatedModelDo()

withCreatedModelDo<ReturnType>(validModelClosure, invalidModelClosure): ReturnType

Executes a closure depending on whether the model is valid or not after creating it.

Type Parameters

Type ParameterDescription
ReturnTypeThe type of the value returned by the closures.

Parameters

ParameterTypeDescription
validModelClosure(model) => ReturnTypeA closure that will be called with the created model if it's valid.
invalidModelClosure() => ReturnTypeA closure that will be called if the model is invalid.

Returns

ReturnType

The return value of the closure that was called.

Inherited from

SectionDraftAssistant.withCreatedModelDo


getModel()

getModel(): number

Returns

number

Inherited from

SectionDraftAssistant.getModel


setModelFrom()

setModelFrom(containerModel): void

Sets the model from its container.

Parameters

ParameterType
containerModelContainerModel

Returns

void

Inherited from

SectionDraftAssistant.setModelFrom

Rules

addBrokenRule()

addBrokenRule(aBrokenRuleLabel): void

Adds a rule to the list of broken rules.

Parameters

ParameterType
aBrokenRuleLabelLabeledRule

Returns

void

Inherited from

SectionDraftAssistant.addBrokenRule


addBrokenRules()

addBrokenRules(brokenRules): void

Adds a list of rules to the list of broken rules.

Parameters

ParameterType
brokenRulesLabeledRule[]

Returns

void

Inherited from

SectionDraftAssistant.addBrokenRules


hasBrokenRules()

hasBrokenRules(): boolean

Returns

boolean

true if the list of broken rules is not empty

Inherited from

SectionDraftAssistant.hasBrokenRules


doesNotHaveBrokenRules()

doesNotHaveBrokenRules(): boolean

Opposite of hasBrokenRules.

Returns

boolean

Inherited from

SectionDraftAssistant.doesNotHaveBrokenRules


brokenRulesDescriptions()

brokenRulesDescriptions(): string[]

Returns

string[]

The descriptions of the broken rules

Inherited from

SectionDraftAssistant.brokenRulesDescriptions


handles()

handles(aRule): boolean

Parameters

ParameterType
aRuleLabeledRule

Returns

boolean

true if this assistant handles the given Assertion.

Inherited from

SectionDraftAssistant.handles


addLabelId()

addLabelId(aLabelId): void

Adds an assertion id to the list of handled assertions.

Parameters

ParameterType
aLabelIdstring

Returns

void

Inherited from

SectionDraftAssistant.addLabelId


hasBrokenRule()

hasBrokenRule(aBrokenRuleLabel): boolean

Parameters

ParameterType
aBrokenRuleLabelLabeledRule

Returns

boolean

Inherited from

SectionDraftAssistant.hasBrokenRule


hasOnlyOneRuleBrokenIdentifiedAs()

hasOnlyOneRuleBrokenIdentifiedAs(assertionId): boolean

Parameters

ParameterType
assertionIdstring

Returns

boolean

true if this assistant has only one failed assertion that is identified as the given assertionId.

Remarks

Used mostly for testing.

Inherited from

SectionDraftAssistant.hasOnlyOneRuleBrokenIdentifiedAs


removeBrokenRules()

removeBrokenRules(): void

Returns

void

Inherited from

SectionDraftAssistant.removeBrokenRules

Viewers

accept()

accept(aViewer): void

Adds a viewer to the list of observers.

Parameters

ParameterType
aViewerDraftViewer<number>

Returns

void

Inherited from

SectionDraftAssistant.accept


removeViewer()

removeViewer(aViewer): void

Removes a viewer from the list of observers.

Parameters

ParameterType
aViewerDraftViewer<never>

Returns

void

Inherited from

SectionDraftAssistant.removeViewer


numberOfViewers()

numberOfViewers(): number

Returns

number

The number of viewers currently observing the assistant.

Inherited from

SectionDraftAssistant.numberOfViewers

Others

defaultAssertionDescription

readonly static defaultAssertionDescription: "Invalid integer" = "Invalid integer"


for()

static for<ContainerModel>(assertionId, modelFromContainer): IntegerDraftAssistant<ContainerModel>

Type Parameters

Type Parameter
ContainerModel

Parameters

ParameterType
assertionIdstring
modelFromContainerModelFromContainer<number, ContainerModel>

Returns

IntegerDraftAssistant<ContainerModel>


forTopLevel()

static forTopLevel(assertionId): IntegerDraftAssistant<unknown>

Parameters

ParameterType
assertionIdstring

Returns

IntegerDraftAssistant<unknown>


createInteger()

static createInteger(assertionId, numberAsString): number

Parameters

ParameterType
assertionIdstring
numberAsStringstring

Returns

number


createNumberAssistant()

static createNumberAssistant(): FieldDraftAssistant<number, string>

Returns

FieldDraftAssistant<number, string>


createAssertionFor()

static createAssertionFor(assertionId, numberAsString): Assertion<void>

Parameters

ParameterType
assertionIdstring
numberAsStringstring

Returns

Assertion<void>


with()

static with<Model, ContainerModel, ComposedModels>(assistants, creationClosure, modelFromContainer, assertionIds): SectionDraftAssistant<Model, ContainerModel, ComposedModels>

Type Parameters

Type ParameterDefault type
Modelany
ContainerModelany
ComposedModels extends unknown[]any[]

Parameters

ParameterType
assistantsAssistantsIn<ComposedModels, Model>
creationClosureCreationClosure<Model, ComposedModels>
modelFromContainerModelFromContainer<Model, ContainerModel>
assertionIdsstring[]

Returns

SectionDraftAssistant<Model, ContainerModel, ComposedModels>

Inherited from

SectionDraftAssistant.with


topLevelContainerWith()

static topLevelContainerWith<Model, ComposedModels>(assistants, creationClosure, assertionIds): SectionDraftAssistant<Model, unknown, ComposedModels>

Type Parameters

Type ParameterDefault type
Modelany
ComposedModels extends unknown[]any[]

Parameters

ParameterTypeDefault value
assistantsAssistantsIn<ComposedModels, Model>undefined
creationClosureCreationClosure<Model, ComposedModels>undefined
assertionIdsstring[][]

Returns

SectionDraftAssistant<Model, unknown, ComposedModels>

Inherited from

SectionDraftAssistant.topLevelContainerWith


topLevelModelFromContainer()

static topLevelModelFromContainer<Model>(): ModelFromContainer<Model, unknown>

Type Parameters

Type ParameterDefault type
Modelany

Returns

ModelFromContainer<Model, unknown>

A default model getter from a container for the top-level assistant. Since there is no container to get the model from, it throws an error.

Inherited from

SectionDraftAssistant.topLevelModelFromContainer


innerAssistant()

innerAssistant(): DraftAssistant<string, number>

Returns

DraftAssistant<string, number>


setInnerModel()

setInnerModel(newModel): void

Parameters

ParameterType
newModelstring

Returns

void


getInnerModel()

getInnerModel(): string

Returns

string