package edu.neu.ccs.demeter.aplib;

import java.util.Collection;

/** A relation whose domain is symbolic names in an encapsulated strategy
    and whose range is nodes and edge labels in a class graph. */
public interface NameMapI {
  /** A collection of nodes in class graph G corresponding to symbolic
      node name l in the strategy, or null if l is a wildcard (all
      nodes in the class graph). */
  Collection get(String l, ClassGraphI G)
    throws NoSuchClassGraphNodeException;

  /** Does symbolic node name l map to class graph node cgv? */
  boolean match(String l, Object cgv);

  /** Does symbolic edge label l map to class graph edge label cgl? */
  boolean match(String l, String cgl);
}

