void hookOnto(final StmtContext<?, ?, ?> context, final Class<?> namespace) { checkArgument(it.hasNext(), "Namespace %s keys may not be empty", namespace); hookOnto(contextImpl(context), namespace, it.next()); }
@Override public void namespaceItemAdded(final StatementContextBase<?, ?, ?> context, final Class<?> namespace, final Object key, final Object value) { LOG.debug("Action for {} got key {}", keys, key); final StatementContextBase<?, ?, ?> target = contextImpl(value); if (!it.hasNext()) { target.addMutation(modPhase, this); resolvePrereq((C) value); return; } hookOnto(target, namespace, it.next()); }
@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; }