@SuppressWarnings("unchecked") public static <A, D extends DeclaredStatement<A>> A firstAttributeOf( final Iterable<? extends StmtContext<?, ?, ?>> contexts, final Class<D> declaredType) { for (final StmtContext<?, ?, ?> ctx : contexts) { if (producesDeclared(ctx, declaredType)) { return (A) ctx.getStatementArgument(); } } return null; }
@SuppressWarnings("unchecked") public static <A, D extends DeclaredStatement<A>> A firstAttributeOf(final StmtContext<?, ?, ?> ctx, final Class<D> declaredType) { return producesDeclared(ctx, declaredType) ? (A) ctx.getStatementArgument() : null; }
@SuppressWarnings("unchecked") public static <A, D extends DeclaredStatement<A>> Collection<StmtContext<A, D, ?>> findAllDeclaredSubstatements( final StmtContext<?, ?, ?> stmtContext, final Class<D> declaredType) { final ImmutableList.Builder<StmtContext<A, D, ?>> listBuilder = ImmutableList.builder(); for (final StmtContext<?, ?, ?> subStmtContext : stmtContext.declaredSubstatements()) { if (producesDeclared(subStmtContext, declaredType)) { listBuilder.add((StmtContext<A, D, ?>) subStmtContext); } } return listBuilder.build(); }
@SuppressWarnings("unchecked") public static <A, D extends DeclaredStatement<A>> StmtContext<A, ?, ?> findFirstDeclaredSubstatement( final StmtContext<?, ?, ?> stmtContext, final Class<D> declaredType) { for (final StmtContext<?, ?, ?> subStmtContext : stmtContext.declaredSubstatements()) { if (producesDeclared(subStmtContext, declaredType)) { return (StmtContext<A, ?, ?>) subStmtContext; } } return null; }
@SuppressWarnings("unchecked") public static <A, D extends DeclaredStatement<A>> Collection<StmtContext<A, D, ?>> findAllEffectiveSubstatements( final StmtContext<?, ?, ?> stmtContext, final Class<D> type) { final ImmutableList.Builder<StmtContext<A, D, ?>> listBuilder = ImmutableList.builder(); for (final StmtContext<?, ?, ?> subStmtContext : stmtContext.effectiveSubstatements()) { if (producesDeclared(subStmtContext, type)) { listBuilder.add((StmtContext<A, D, ?>) subStmtContext); } } return listBuilder.build(); }
@SuppressWarnings("unchecked") public static <A, D extends DeclaredStatement<A>> StmtContext<A, ?, ?> findFirstEffectiveSubstatement( final StmtContext<?, ?, ?> stmtContext, final Class<D> declaredType) { for (final StmtContext<?, ?, ?> subStmtContext : stmtContext.effectiveSubstatements()) { if (producesDeclared(subStmtContext, declaredType)) { return (StmtContext<A, ?, ?>) subStmtContext; } } return null; }
@SafeVarargs public static StmtContext<?, ?, ?> findFirstDeclaredSubstatement(final StmtContext<?, ?, ?> stmtContext, int startIndex, final Class<? extends DeclaredStatement<?>>... types) { if (startIndex >= types.length) { return null; } for (final StmtContext<?, ?, ?> subStmtContext : stmtContext.declaredSubstatements()) { if (producesDeclared(subStmtContext, types[startIndex])) { return startIndex + 1 == types.length ? subStmtContext : findFirstDeclaredSubstatement(subStmtContext, ++startIndex, types); } } return null; }
public static <D extends DeclaredStatement<?>> StmtContext<?, ?, ?> findDeepFirstDeclaredSubstatement( final StmtContext<?, ?, ?> stmtContext, final Class<D> declaredType) { for (final StmtContext<?, ?, ?> subStmtContext : stmtContext.declaredSubstatements()) { if (producesDeclared(subStmtContext, declaredType)) { return subStmtContext; } final StmtContext<?, ?, ?> result = findDeepFirstDeclaredSubstatement(subStmtContext, declaredType); if (result != null) { return result; } } return null; }
public static <D extends DeclaredStatement<?>> StmtContext<?, ?, ?> findFirstDeclaredSubstatementOnSublevel( final StmtContext<?, ?, ?> stmtContext, final Class<D> declaredType, int sublevel) { for (final StmtContext<?, ?, ?> subStmtContext : stmtContext.declaredSubstatements()) { if (sublevel == 1 && producesDeclared(subStmtContext, declaredType)) { return subStmtContext; } if (sublevel > 1) { final StmtContext<?, ?, ?> result = findFirstDeclaredSubstatementOnSublevel(subStmtContext, declaredType, --sublevel); if (result != null) { return result; } } } return null; }
public static QNameModule getRootModuleQName(final StmtContext<?, ?, ?> ctx) { if (ctx == null) { return null; } final StmtContext<?, ?, ?> rootCtx = ctx.getRoot(); final QNameModule qnameModule; if (producesDeclared(rootCtx, ModuleStatement.class)) { qnameModule = rootCtx.getFromNamespace(ModuleCtxToModuleQName.class, rootCtx); } else if (producesDeclared(rootCtx, SubmoduleStatement.class)) { final String belongsToModuleName = firstAttributeOf(rootCtx.declaredSubstatements(), BelongsToStatement.class); qnameModule = rootCtx.getFromNamespace(ModuleNameToModuleQName.class, belongsToModuleName); } else { qnameModule = null; } checkArgument(qnameModule != null, "Failed to look up root QNameModule for %s", ctx); return qnameModule; }
public static void resolveUsesNode( final Mutable<QName, UsesStatement, EffectiveStatement<QName, UsesStatement>> usesNode, final StmtContext<?, ?, ?> targetNodeStmtCtx) { for (final Mutable<?, ?, ?> subStmtCtx : usesNode.mutableDeclaredSubstatements()) { if (StmtContextUtils.producesDeclared(subStmtCtx, RefineStatement.class) && areFeaturesSupported(subStmtCtx)) { performRefine(subStmtCtx, targetNodeStmtCtx); } } }
if (StmtContextUtils.producesDeclared(this, UsesStatement.class)) { return maybeParentPath.orElse(null); if ((StmtContextUtils.producesDeclared(parent, ChoiceStatement.class) || Boolean.TRUE.equals(parent.getFromNamespace(AugmentToChoiceNamespace.class, parent))) && isSupportedAsShorthandCase()) { && (StmtContextUtils.producesDeclared(this, AugmentStatement.class) || StmtContextUtils.producesDeclared(this, RefineStatement.class) || StmtContextUtils.producesDeclared(this, DeviationStatement.class))) {
public static QNameModule getModuleQNameByPrefix(final StmtContext<?, ?, ?> ctx, final String prefix) { final StmtContext<?, ?, ?> importedModule = ctx.getRoot().getFromNamespace(ImportPrefixToModuleCtx.class, prefix); final QNameModule qnameModule = ctx.getFromNamespace(ModuleCtxToModuleQName.class, importedModule); if (qnameModule != null) { return qnameModule; } if (producesDeclared(ctx.getRoot(), SubmoduleStatement.class)) { final String moduleName = ctx.getRoot().getFromNamespace(BelongsToPrefixToModuleName.class, prefix); return ctx.getFromNamespace(ModuleNameToModuleQName.class, moduleName); } return null; }
final Mutable<QName, BaseStatement, EffectiveStatement<QName, BaseStatement>> baseStmtCtx) { final Mutable<?, ?, ?> baseParentCtx = baseStmtCtx.getParentContext(); if (StmtContextUtils.producesDeclared(baseParentCtx, IdentityStatement.class)) {