001package arez.annotations; 002 003import arez.Locator; 004import arez.component.Linkable; 005 006/** 007 * Defines the strategy for loading references from the {@link Locator}. 008 * The {@link #EAGER} strategy indicates that references should be resolved as early as 009 * possible while {@link #LAZY} defers loading until required. 010 */ 011public enum LinkType 012{ 013 /** 014 * Defines that the reference can be lazily loaded on access. 015 */ 016 LAZY, 017 /** 018 * Defines that the reference is loaded via explicit {@link Linkable#link()} call. 019 * The link() invocation must occur before an attempt is made to access the reference. 020 */ 021 EXPLICIT, 022 /** 023 * Defines that the reference is eagerly loaded on change or during initialization. 024 */ 025 EAGER 026}