KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > soot > PointsToAnalysis


1 /* Soot - a J*va Optimization Framework
2  * Copyright (C) 2002 Ondrej Lhotak
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17  * Boston, MA 02111-1307, USA.
18  */

19
20 package soot;
21
22 /** A generic interface to any type of pointer analysis.
23  * @author Ondrej Lhotak
24  */

25
26 public interface PointsToAnalysis {
27     /** Returns the set of objects pointed to by variable l. */
28     public PointsToSet reachingObjects( Local l );
29
30     /** Returns the set of objects pointed to by variable l in context c. */
31     public PointsToSet reachingObjects( Context c, Local l );
32
33     /** Returns the set of objects pointed to by static field f. */
34     public PointsToSet reachingObjects( SootField f );
35
36     /** Returns the set of objects pointed to by instance field f
37      * of the objects in the PointsToSet s. */

38     public PointsToSet reachingObjects( PointsToSet s, SootField f );
39
40     /** Returns the set of objects pointed to by instance field f
41      * of the objects pointed to by l. */

42     public PointsToSet reachingObjects( Local l, SootField f );
43
44     /** Returns the set of objects pointed to by instance field f
45      * of the objects pointed to by l in context c. */

46     public PointsToSet reachingObjects( Context c, Local l, SootField f );
47
48     /** Returns the set of objects pointed to by elements of the arrays
49      * in the PointsToSet s. */

50     public PointsToSet reachingObjectsOfArrayElement( PointsToSet s );
51
52     public static final String JavaDoc THIS_NODE = "THIS_NODE";
53     public static final int RETURN_NODE = -2;
54     public static final String JavaDoc THROW_NODE = "THROW_NODE";
55     public static final String JavaDoc ARRAY_ELEMENTS_NODE = "ARRAY_ELEMENTS_NODE";
56     public static final String JavaDoc CAST_NODE = "CAST_NODE";
57     public static final String JavaDoc STRING_ARRAY_NODE = "STRING_ARRAY_NODE";
58     public static final String JavaDoc STRING_NODE = "STRING_NODE";
59     public static final String JavaDoc STRING_NODE_LOCAL = "STRING_NODE_LOCAL";
60     public static final String JavaDoc EXCEPTION_NODE = "EXCEPTION_NODE";
61     public static final String JavaDoc RETURN_STRING_CONSTANT_NODE = "RETURN_STRING_CONSTANT_NODE";
62     public static final String JavaDoc STRING_ARRAY_NODE_LOCAL = "STRING_ARRAY_NODE_LOCAL";
63     public static final String JavaDoc MAIN_THREAD_NODE = "MAIN_THREAD_NODE";
64     public static final String JavaDoc MAIN_THREAD_NODE_LOCAL = "MAIN_THREAD_NODE_LOCAL";
65     public static final String JavaDoc MAIN_THREAD_GROUP_NODE = "MAIN_THREAD_GROUP_NODE";
66     public static final String JavaDoc MAIN_THREAD_GROUP_NODE_LOCAL = "MAIN_THREAD_GROUP_NODE_LOCAL";
67     public static final String JavaDoc MAIN_CLASS_NAME_STRING = "MAIN_CLASS_NAME_STRING";
68     public static final String JavaDoc MAIN_CLASS_NAME_STRING_LOCAL = "MAIN_CLASS_NAME_STRING_LOCAL";
69     public static final String JavaDoc DEFAULT_CLASS_LOADER = "DEFAULT_CLASS_LOADER";
70     public static final String JavaDoc DEFAULT_CLASS_LOADER_LOCAL = "DEFAULT_CLASS_LOADER_LOCAL";
71     public static final String JavaDoc FINALIZE_QUEUE = "FINALIZE_QUEUE";
72     public static final String JavaDoc CANONICAL_PATH = "CANONICAL_PATH";
73     public static final String JavaDoc CANONICAL_PATH_LOCAL = "CANONICAL_PATH_LOCAL";
74     public static final String JavaDoc PRIVILEGED_ACTION_EXCEPTION = "PRIVILEGED_ACTION_EXCEPTION";
75     public static final String JavaDoc PRIVILEGED_ACTION_EXCEPTION_LOCAL = "PRIVILEGED_ACTION_EXCEPTION_LOCAL";
76     public static final String JavaDoc PHI_NODE = "PHI_NODE";
77 }
78
79
Popular Tags