A value declaration.

Usage sample for toplevel value

Getting a model requires applying type arguments to the value declaration with apply() in order to be able to read that value. For example, here is how you would obtain a value model that you can read from a toplevel attribute declaration:

String foo = "Hello";

void test(){
    // We need to apply the the foo declaration in order to get the foo value model
    Value<String> valueModel = `value foo`.apply<String>();
    // This will print: Hello
    print(valueModel.get());
}

Usage sample for attributes

For attributes it is a bit longer, because attributes need to be applied the containing type, so you should use memberApply() and start by giving the containing closed type:

class Outer(){
    shared String foo => "Hello";
}

void test(){
    // Apply the containing closed type `Outer` to the attribute declaration `Outer.foo`
    Attribute<Outer,String> valueModel = `value Outer.foo`.memberApply<Outer,String>(`Outer`);
    // We now have an Attribute, which needs to be applied to a containing instance in order to become a
    // readable value:
    Value<String> boundValueModel = valueModel(Outer());
    // This will print: Hello
    print(boundValueModel.get());
}

no type hierarchy

no subtypes hierarchy

Attributes
lateSource Codeshared formal Boolean late

True if this declaration is annotated with late.

Since 1.2.0
objectClassSource Codeshared formal ClassDeclaration? objectClass

This value's anonymous class declaration if this value is an object declaration. null otherwise.

Since 1.1.0
objectValueSource Codeshared formal Boolean objectValue

True if this declaration is an object declaration, whose type is an anonymous class.

Since 1.1.0
setterSource Codeshared formal SetterDeclaration? setter

Returns the setter declaration for this variable if there is one, null otherwise.

variableSource Codeshared formal Boolean variable

True if this declaration is annotated with variable.

Inherited Attributes
Attributes inherited from: Object
Attributes inherited from: Declaration
Attributes inherited from: FunctionOrValueDeclaration
Attributes inherited from: NestableDeclaration
Attributes inherited from: TypedDeclaration
Methods
applySource Codeshared formal Value<Get,Set> apply<Get = Anything, Set = Nothing>()

Applies this value declaration in order to obtain a value model. See this code sample for an example on how to use this.

Throws
getSource Codeshared actual default Anything get()

Reads the current value of this toplevel value.

memberApplySource Codeshared formal Attribute<Container,Get,Set> memberApply<Container = Nothing, Get = Anything, Set = Nothing>(AppliedType<Object> containerType)

Applies the given closed container type to this attribute declaration in order to obtain an attribute model. See this code sample for an example on how to use this.

Throws
memberGetSource Codeshared actual default Anything memberGet(Object container)

Reads the current value of this attribute on the given container instance.

Throws
memberSetSource Codeshared formal void memberSet(Object container, Anything newValue)

Sets the current value of this attribute on the given container instance.

Throws
  • IncompatibleTypeException

    If the specified container or new value type is not compatible with this attribute.

  • StorageException

    If this attribute is not stored at runtime, for example if it is neither shared nor captured.

setSource Codeshared default void set(Anything newValue)

Sets the current value of this toplevel value.

Inherited Methods
Methods inherited from: Object
Methods inherited from: Annotated
Methods inherited from: AnnotatedDeclaration
Methods inherited from: GettableDeclaration