ceylon.language.meta.model.Gettable.ceylon Maven / Gradle / Ivy
"""An abstraction of things that have a value which be [[got|get]],
and possibley set.
"""
shared sealed interface Gettable {
"Reads the current value for this value binding. Note that in the case of getter
values, this can throw if the getter throws."
throws(`class StorageException`,
"If this attribute is not stored at runtime, for example if it is neither shared nor captured.")
shared formal Get get();
"Changes this variable's value to the given new value. Note that in the case of
setter attributes, this can throw if the setter throws."
throws(`class StorageException`,
"If this attribute is not stored at runtime, for example if it is neither shared nor captured.")
shared formal void set(Set newValue);
"Non type-safe equivalent to [[Value.set]], to be used when you don't know the
variable type at compile-time. This only works if the underlying value is
variable. Note that if the underlying variable is a setter, this can throw
exceptions thrown in the setter block."
throws(`class IncompatibleTypeException`,
"If the specified new value is not of a subtype of this variable's type")
throws(`class MutationException`,
"If this value is not variable")
throws(`class StorageException`,
"If this attribute is not stored at runtime, for example if it is neither shared nor captured.")
shared formal void setIfAssignable(Anything newValue);
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy