private List<StmtContext<?, ?, ?>> effectOfStatement = ImmutableList.of();
private @Nullable ModelProcessingPhase completedPhase;
- private @Nullable D declaredInstance;
private @Nullable E effectiveInstance;
// Master flag controlling whether this context can yield an effective statement
this.isSupportedToBuildEffective = original.isSupportedToBuildEffective;
this.fullyDefined = original.fullyDefined;
this.completedPhase = original.completedPhase;
- this.declaredInstance = original.declaredInstance;
this.flags = original.flags;
}
fullyDefined = true;
}
- @Override
- public D buildDeclared() {
- final D existing = declaredInstance;
- if (existing != null) {
- return existing;
- }
- checkArgument(completedPhase == ModelProcessingPhase.FULL_DECLARATION
- || completedPhase == ModelProcessingPhase.EFFECTIVE_MODEL);
- return declaredInstance = definition.getFactory().createDeclared(this);
- }
-
@Override
public E buildEffective() {
final E existing = effectiveInstance;