@Override public <K, E extends EffectiveStatement<?, ?>, N extends IdentifierNamespace<K, ? extends StmtContext<?, ?, ?>>> AbstractPrerequisite<Mutable<?, ?, E>> mutatesEffectiveCtxPath(final StmtContext<?, ?, ?> context, final Class<N> namespace, final Iterable<K> keys) { checkNotRegistered(); final PhaseModificationInNamespacePath<Mutable<?, ?, E>, K, N> ret = new PhaseModificationInNamespacePath<>( EFFECTIVE_MODEL, keys); addReq(ret); addMutation(ret); ret.hookOnto(context, namespace); return ret; }
private <K, C extends StmtContext<?, ?, ?>, N extends StatementNamespace<K, ?, ?>> @NonNull AbstractPrerequisite<C> requiresCtxImpl(final StmtContext<?, ?, ?> context, final Class<N> namespace, final NamespaceKeyCriterion<K> criterion, final ModelProcessingPhase phase) { checkNotRegistered(); AddedToNamespace<C> addedToNs = new AddedToNamespace<>(phase); addReq(addedToNs); contextImpl(context).onNamespaceItemAddedAction(namespace, phase, criterion, addedToNs); return addedToNs; }
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; }
@SuppressWarnings({ "rawtypes", "unchecked" }) private <K, C extends Mutable<?, ?, ?>, N extends IdentifierNamespace<K, ? extends StmtContext<?, ?, ?>>> AbstractPrerequisite<C> mutatesCtxImpl(final StmtContext<?, ?, ?> context, final Class<N> namespace, final K key, final ModelProcessingPhase phase) { checkNotRegistered(); final PhaseModificationInNamespace<C> mod = new PhaseModificationInNamespace<>(EFFECTIVE_MODEL); addReq(mod); addMutation(mod); contextImpl(context).onNamespaceItemAddedAction((Class) namespace, key, mod); return mod; }
private <K, C extends StmtContext<?, ?, ?>, N extends StatementNamespace<K, ?, ?>> @NonNull AbstractPrerequisite<C> requiresCtxImpl(final StmtContext<?, ?, ?> context, final Class<N> namespace, final K key, final ModelProcessingPhase phase) { checkNotRegistered(); AddedToNamespace<C> addedToNs = new AddedToNamespace<>(phase); addReq(addedToNs); contextImpl(context).onNamespaceItemAddedAction(namespace, key, addedToNs); return addedToNs; }