/******************************************************************************* * Copyright (c) 2002,2006 IBM Corporation. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package com.ibm.wala.shrikeBT.analysis; /** * This interface provides information about the class hierarchy to some consumer, such as a bytecode verifier. * * All class names are given in JVM type format, e.g., Ljava/lang/Object;. */ public interface ClassHierarchyProvider { /** * @return the superclass of the given class, or null if the superclass is not known or cl is java.lang.Object */ public String getSuperClass(String cl); /** * @return the superinterfaces of the given class, or null if they are not known */ public String[] getSuperInterfaces(String cl); /** * @return the complete set of direct subclasses or implementors of cl, or null if the complete set is not known */ public String[] getSubClasses(String cl); /** * @return whether or not cl is an interface, or Constants.MAYBE if not known */ public int isInterface(String cl); }