All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.checkerframework.dataflow.cfg.builder.NodeWithExceptionsHolder Maven / Gradle / Ivy

Go to download

The Checker Framework enhances Java's type system to make it more powerful and useful. This lets software developers detect and prevent errors in their Java programs. The Checker Framework includes compiler plug-ins ("checkers") that find bugs or verify their absence. It also permits you to write your own compiler plug-ins.

The newest version!
package org.checkerframework.dataflow.cfg.builder;

import org.checkerframework.dataflow.cfg.builder.ExtendedNode.ExtendedNodeType;
import org.checkerframework.dataflow.cfg.node.Node;

import java.util.Map;
import java.util.Set;
import java.util.StringJoiner;

import javax.lang.model.type.TypeMirror;

/** An extended node of type {@code EXCEPTION_NODE}. */
/*package-private*/ class NodeWithExceptionsHolder extends ExtendedNode {

    /** The node to hold. */
    protected final Node node;

    /**
     * Map from exception type to labels of successors that may be reached as a result of that
     * exception.
     *
     * 

This map's keys are the exception types that a Java expression or statement is declared to * throw -- say, in the {@code throws} clause of the declaration of a method being called. The * expression might be within a {@code try} statement with {@code catch} blocks that are * different (either finer-grained or coarser). */ protected final Map> exceptions; /** * Construct a NodeWithExceptionsHolder for the given node and exceptions. * * @param node the node to hold * @param exceptions the exceptions to hold */ public NodeWithExceptionsHolder(Node node, Map> exceptions) { super(ExtendedNodeType.EXCEPTION_NODE); this.node = node; this.exceptions = exceptions; } /** * Get the exceptions for the node. * * @return exceptions for the node */ public Map> getExceptions() { return exceptions; } @Override public Node getNode() { return node; } @Override public String toString() { return "NodeWithExceptionsHolder(" + node + ")"; } @Override public String toStringDebug() { StringJoiner sj = new StringJoiner(String.format("%n ")); sj.add("NodeWithExceptionsHolder(" + node.toStringDebug() + ") {"); for (Map.Entry> entry : exceptions.entrySet()) { sj.add(entry.getKey() + " => " + entry.getValue()); } sj.add("}"); return sj.toString(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy