@Override public void namespaceItemAdded(final StatementContextBase<?, ?, ?> context, final Class<?> namespace, final Object key, final Object value) { ((StatementContextBase<?, ?, ?>) value).addPhaseCompletedListener(phase, this); }
final <K, V, N extends IdentifierNamespace<K, V>> void waitForPhase(final Object value, final Class<N> type, final ModelProcessingPhase phase, final NamespaceKeyCriterion<K> criterion, final OnNamespaceItemAdded listener) { ((StatementContextBase<?, ? ,?>) value).addPhaseCompletedListener(phase, (context, phaseCompleted) -> { selectMatch(type, criterion, listener); return true; }); }
private <C extends StmtContext<?, ?, ?>> @NonNull AbstractPrerequisite<C> requiresCtxImpl(final C context, final ModelProcessingPhase phase) { checkNotRegistered(); PhaseFinished<C> phaseFin = new PhaseFinished<>(); addReq(phaseFin); contextImpl(context).addPhaseCompletedListener(phase, phaseFin); return phaseFin; }