576 lines
15 KiB
Java
576 lines
15 KiB
Java
/*******************************************************************************
|
|
* 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.ipa.callgraph;
|
|
|
|
/**
|
|
* This just exists to enforce strong typing.
|
|
*/
|
|
public interface ContextKey {
|
|
|
|
/**
|
|
* A property of contexts that might be generally useful: the "caller" method ... used for call-string context schemes.
|
|
*/
|
|
public final static ContextKey CALLER = new ContextKey() {
|
|
};
|
|
|
|
/**
|
|
* A property of contexts that might be generally useful: the "target" method.
|
|
*/
|
|
public final static ContextKey TARGET = new ContextKey() {
|
|
};
|
|
|
|
/**
|
|
* A property of contexts that might be generally useful: the "name".
|
|
*/
|
|
public final static ContextKey NAME = new ContextKey() {
|
|
};
|
|
|
|
/**
|
|
* A property of contexts that might be generally useful: the "call site" method ... used for call-string context schemes.
|
|
*/
|
|
public final static ContextKey CALLSITE = new ContextKey() {
|
|
};
|
|
|
|
/**
|
|
* A property of contexts that might be generally useful: an identifier for the receiver object ... used for object-sensitivity
|
|
* context policies.
|
|
*
|
|
* Known implementations (ContextItems) for RECEIVER include TypeAbstraction and InstanceKey
|
|
*/
|
|
public final static ContextKey RECEIVER = new ContextKey() {
|
|
};
|
|
|
|
/**
|
|
* context key representing some parameter index, useful, e.g. for CPA-style
|
|
* context-sensitivity policies.
|
|
*/
|
|
static class ParameterKey implements ContextKey {
|
|
public final int index;
|
|
|
|
private ParameterKey(int index) {
|
|
this.index = index;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "P" + index;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Generally useful constants for possible parameter indices
|
|
*/
|
|
public static final ContextKey PARAMETERS[] = new ContextKey[]{
|
|
new ParameterKey(0),
|
|
new ParameterKey(1),
|
|
new ParameterKey(2),
|
|
new ParameterKey(3),
|
|
new ParameterKey(4),
|
|
new ParameterKey(5),
|
|
new ParameterKey(6),
|
|
new ParameterKey(7),
|
|
new ParameterKey(8),
|
|
new ParameterKey(9),
|
|
new ParameterKey(10),
|
|
new ParameterKey(11),
|
|
new ParameterKey(12),
|
|
new ParameterKey(13),
|
|
new ParameterKey(14),
|
|
new ParameterKey(15),
|
|
new ParameterKey(16),
|
|
new ParameterKey(17),
|
|
new ParameterKey(18),
|
|
new ParameterKey(19),
|
|
new ParameterKey(20),
|
|
new ParameterKey(21),
|
|
new ParameterKey(22),
|
|
new ParameterKey(23),
|
|
new ParameterKey(24),
|
|
new ParameterKey(25),
|
|
new ParameterKey(26),
|
|
new ParameterKey(27),
|
|
new ParameterKey(28),
|
|
new ParameterKey(29),
|
|
new ParameterKey(30),
|
|
new ParameterKey(31),
|
|
new ParameterKey(32),
|
|
new ParameterKey(33),
|
|
new ParameterKey(34),
|
|
new ParameterKey(35),
|
|
new ParameterKey(36),
|
|
new ParameterKey(37),
|
|
new ParameterKey(38),
|
|
new ParameterKey(39),
|
|
new ParameterKey(40),
|
|
new ParameterKey(41),
|
|
new ParameterKey(42),
|
|
new ParameterKey(43),
|
|
new ParameterKey(44),
|
|
new ParameterKey(45),
|
|
new ParameterKey(46),
|
|
new ParameterKey(47),
|
|
new ParameterKey(48),
|
|
new ParameterKey(49),
|
|
//added based on functions seen in the wild...
|
|
//---------
|
|
new ParameterKey(50),
|
|
new ParameterKey(51),
|
|
new ParameterKey(52),
|
|
new ParameterKey(53),
|
|
new ParameterKey(54),
|
|
new ParameterKey(55),
|
|
new ParameterKey(56),
|
|
new ParameterKey(57),
|
|
new ParameterKey(58),
|
|
new ParameterKey(59),
|
|
new ParameterKey(60),
|
|
new ParameterKey(61),
|
|
new ParameterKey(62),
|
|
new ParameterKey(63),
|
|
new ParameterKey(64),
|
|
new ParameterKey(65),
|
|
new ParameterKey(66),
|
|
new ParameterKey(67),
|
|
new ParameterKey(68),
|
|
new ParameterKey(69),
|
|
new ParameterKey(70),
|
|
new ParameterKey(71),
|
|
new ParameterKey(72),
|
|
new ParameterKey(73),
|
|
new ParameterKey(74),
|
|
new ParameterKey(75),
|
|
new ParameterKey(76),
|
|
new ParameterKey(77),
|
|
new ParameterKey(78),
|
|
new ParameterKey(79),
|
|
new ParameterKey(80),
|
|
new ParameterKey(81),
|
|
new ParameterKey(82),
|
|
new ParameterKey(83),
|
|
new ParameterKey(84),
|
|
new ParameterKey(85),
|
|
new ParameterKey(86),
|
|
new ParameterKey(87),
|
|
new ParameterKey(88),
|
|
new ParameterKey(89),
|
|
new ParameterKey(90),
|
|
new ParameterKey(91),
|
|
new ParameterKey(92),
|
|
new ParameterKey(93),
|
|
new ParameterKey(94),
|
|
new ParameterKey(95),
|
|
new ParameterKey(96),
|
|
new ParameterKey(97),
|
|
new ParameterKey(98),
|
|
new ParameterKey(99),
|
|
new ParameterKey(100),
|
|
new ParameterKey(101),
|
|
new ParameterKey(102),
|
|
new ParameterKey(103),
|
|
new ParameterKey(104),
|
|
new ParameterKey(105),
|
|
new ParameterKey(106),
|
|
new ParameterKey(107),
|
|
new ParameterKey(108),
|
|
new ParameterKey(109),
|
|
new ParameterKey(110),
|
|
new ParameterKey(111),
|
|
new ParameterKey(112),
|
|
new ParameterKey(113),
|
|
new ParameterKey(114),
|
|
new ParameterKey(115),
|
|
new ParameterKey(116),
|
|
new ParameterKey(117),
|
|
new ParameterKey(118),
|
|
new ParameterKey(119),
|
|
new ParameterKey(120),
|
|
new ParameterKey(121),
|
|
new ParameterKey(122),
|
|
new ParameterKey(123),
|
|
new ParameterKey(124),
|
|
new ParameterKey(125),
|
|
new ParameterKey(126),
|
|
new ParameterKey(127),
|
|
new ParameterKey(128),
|
|
new ParameterKey(129),
|
|
new ParameterKey(130),
|
|
new ParameterKey(131),
|
|
new ParameterKey(132),
|
|
new ParameterKey(133),
|
|
new ParameterKey(134),
|
|
new ParameterKey(135),
|
|
new ParameterKey(136),
|
|
new ParameterKey(137),
|
|
new ParameterKey(138),
|
|
new ParameterKey(139),
|
|
new ParameterKey(140),
|
|
new ParameterKey(141),
|
|
new ParameterKey(142),
|
|
new ParameterKey(143),
|
|
new ParameterKey(144),
|
|
new ParameterKey(145),
|
|
new ParameterKey(146),
|
|
new ParameterKey(147),
|
|
new ParameterKey(148),
|
|
new ParameterKey(149),
|
|
new ParameterKey(150),
|
|
new ParameterKey(151),
|
|
new ParameterKey(152),
|
|
new ParameterKey(153),
|
|
new ParameterKey(154),
|
|
new ParameterKey(155),
|
|
new ParameterKey(156),
|
|
new ParameterKey(157),
|
|
new ParameterKey(158),
|
|
new ParameterKey(159),
|
|
new ParameterKey(160),
|
|
new ParameterKey(161),
|
|
new ParameterKey(162),
|
|
new ParameterKey(163),
|
|
new ParameterKey(164),
|
|
new ParameterKey(165),
|
|
new ParameterKey(166),
|
|
new ParameterKey(167),
|
|
new ParameterKey(168),
|
|
new ParameterKey(169),
|
|
new ParameterKey(170),
|
|
new ParameterKey(171),
|
|
new ParameterKey(172),
|
|
new ParameterKey(173),
|
|
new ParameterKey(174),
|
|
new ParameterKey(175),
|
|
new ParameterKey(176),
|
|
new ParameterKey(177),
|
|
new ParameterKey(178),
|
|
new ParameterKey(179),
|
|
new ParameterKey(180),
|
|
new ParameterKey(181),
|
|
new ParameterKey(182),
|
|
new ParameterKey(183),
|
|
new ParameterKey(184),
|
|
new ParameterKey(185),
|
|
new ParameterKey(186),
|
|
new ParameterKey(187),
|
|
new ParameterKey(188),
|
|
new ParameterKey(189),
|
|
new ParameterKey(190),
|
|
new ParameterKey(191),
|
|
new ParameterKey(192),
|
|
new ParameterKey(193),
|
|
new ParameterKey(194),
|
|
new ParameterKey(195),
|
|
new ParameterKey(196),
|
|
new ParameterKey(197),
|
|
new ParameterKey(198),
|
|
new ParameterKey(199),
|
|
new ParameterKey(200),
|
|
new ParameterKey(201),
|
|
new ParameterKey(202),
|
|
new ParameterKey(203),
|
|
new ParameterKey(204),
|
|
new ParameterKey(205),
|
|
new ParameterKey(206),
|
|
new ParameterKey(207),
|
|
new ParameterKey(208),
|
|
new ParameterKey(209),
|
|
new ParameterKey(210),
|
|
new ParameterKey(211),
|
|
new ParameterKey(212),
|
|
new ParameterKey(213),
|
|
new ParameterKey(214),
|
|
new ParameterKey(215),
|
|
new ParameterKey(216),
|
|
new ParameterKey(217),
|
|
new ParameterKey(218),
|
|
new ParameterKey(219),
|
|
new ParameterKey(220),
|
|
new ParameterKey(221),
|
|
new ParameterKey(222),
|
|
new ParameterKey(223),
|
|
new ParameterKey(224),
|
|
new ParameterKey(225),
|
|
new ParameterKey(226),
|
|
new ParameterKey(227),
|
|
new ParameterKey(228),
|
|
new ParameterKey(229),
|
|
new ParameterKey(230),
|
|
new ParameterKey(231),
|
|
new ParameterKey(232),
|
|
new ParameterKey(233),
|
|
new ParameterKey(234),
|
|
new ParameterKey(235),
|
|
new ParameterKey(236),
|
|
new ParameterKey(237),
|
|
new ParameterKey(238),
|
|
new ParameterKey(239),
|
|
new ParameterKey(240),
|
|
new ParameterKey(241),
|
|
new ParameterKey(242),
|
|
new ParameterKey(243),
|
|
new ParameterKey(244),
|
|
new ParameterKey(245),
|
|
new ParameterKey(246),
|
|
new ParameterKey(247),
|
|
new ParameterKey(248),
|
|
new ParameterKey(249),
|
|
new ParameterKey(250),
|
|
new ParameterKey(251),
|
|
new ParameterKey(252),
|
|
new ParameterKey(253),
|
|
new ParameterKey(254),
|
|
new ParameterKey(255),
|
|
new ParameterKey(256),
|
|
new ParameterKey(257),
|
|
new ParameterKey(258),
|
|
new ParameterKey(259),
|
|
new ParameterKey(260),
|
|
new ParameterKey(261),
|
|
new ParameterKey(262),
|
|
new ParameterKey(263),
|
|
new ParameterKey(264),
|
|
new ParameterKey(265),
|
|
new ParameterKey(266),
|
|
new ParameterKey(267),
|
|
new ParameterKey(268),
|
|
new ParameterKey(269),
|
|
new ParameterKey(270),
|
|
new ParameterKey(271),
|
|
new ParameterKey(272),
|
|
new ParameterKey(273),
|
|
new ParameterKey(274),
|
|
new ParameterKey(275),
|
|
new ParameterKey(276),
|
|
new ParameterKey(277),
|
|
new ParameterKey(278),
|
|
new ParameterKey(279),
|
|
new ParameterKey(280),
|
|
new ParameterKey(281),
|
|
new ParameterKey(282),
|
|
new ParameterKey(283),
|
|
new ParameterKey(284),
|
|
new ParameterKey(285),
|
|
new ParameterKey(286),
|
|
new ParameterKey(287),
|
|
new ParameterKey(288),
|
|
new ParameterKey(289),
|
|
new ParameterKey(290),
|
|
new ParameterKey(291),
|
|
new ParameterKey(292),
|
|
new ParameterKey(293),
|
|
new ParameterKey(294),
|
|
new ParameterKey(295),
|
|
new ParameterKey(296),
|
|
new ParameterKey(297),
|
|
new ParameterKey(298),
|
|
new ParameterKey(299),
|
|
new ParameterKey(300),
|
|
new ParameterKey(301),
|
|
new ParameterKey(302),
|
|
new ParameterKey(303),
|
|
new ParameterKey(304),
|
|
new ParameterKey(305),
|
|
new ParameterKey(306),
|
|
new ParameterKey(307),
|
|
new ParameterKey(308),
|
|
new ParameterKey(309),
|
|
new ParameterKey(310),
|
|
new ParameterKey(311),
|
|
new ParameterKey(312),
|
|
new ParameterKey(313),
|
|
new ParameterKey(314),
|
|
new ParameterKey(315),
|
|
new ParameterKey(316),
|
|
new ParameterKey(317),
|
|
new ParameterKey(318),
|
|
new ParameterKey(319),
|
|
new ParameterKey(320),
|
|
new ParameterKey(321),
|
|
new ParameterKey(322),
|
|
new ParameterKey(323),
|
|
new ParameterKey(324),
|
|
new ParameterKey(325),
|
|
new ParameterKey(326),
|
|
new ParameterKey(327),
|
|
new ParameterKey(328),
|
|
new ParameterKey(329),
|
|
new ParameterKey(330),
|
|
new ParameterKey(331),
|
|
new ParameterKey(332),
|
|
new ParameterKey(333),
|
|
new ParameterKey(334),
|
|
new ParameterKey(335),
|
|
new ParameterKey(336),
|
|
new ParameterKey(337),
|
|
new ParameterKey(338),
|
|
new ParameterKey(339),
|
|
new ParameterKey(340),
|
|
new ParameterKey(341),
|
|
new ParameterKey(342),
|
|
new ParameterKey(343),
|
|
new ParameterKey(344),
|
|
new ParameterKey(345),
|
|
new ParameterKey(346),
|
|
new ParameterKey(347),
|
|
new ParameterKey(348),
|
|
new ParameterKey(349),
|
|
new ParameterKey(350),
|
|
new ParameterKey(351),
|
|
new ParameterKey(352),
|
|
new ParameterKey(353),
|
|
new ParameterKey(354),
|
|
new ParameterKey(355),
|
|
new ParameterKey(356),
|
|
new ParameterKey(357),
|
|
new ParameterKey(358),
|
|
new ParameterKey(359),
|
|
new ParameterKey(360),
|
|
new ParameterKey(361),
|
|
new ParameterKey(362),
|
|
new ParameterKey(363),
|
|
new ParameterKey(364),
|
|
new ParameterKey(365),
|
|
new ParameterKey(366),
|
|
new ParameterKey(367),
|
|
new ParameterKey(368),
|
|
new ParameterKey(369),
|
|
new ParameterKey(370),
|
|
new ParameterKey(371),
|
|
new ParameterKey(372),
|
|
new ParameterKey(373),
|
|
new ParameterKey(374),
|
|
new ParameterKey(375),
|
|
new ParameterKey(376),
|
|
new ParameterKey(377),
|
|
new ParameterKey(378),
|
|
new ParameterKey(379),
|
|
new ParameterKey(380),
|
|
new ParameterKey(381),
|
|
new ParameterKey(382),
|
|
new ParameterKey(383),
|
|
new ParameterKey(384),
|
|
new ParameterKey(385),
|
|
new ParameterKey(386),
|
|
new ParameterKey(387),
|
|
new ParameterKey(388),
|
|
new ParameterKey(389),
|
|
new ParameterKey(390),
|
|
new ParameterKey(391),
|
|
new ParameterKey(392),
|
|
new ParameterKey(393),
|
|
new ParameterKey(394),
|
|
new ParameterKey(395),
|
|
new ParameterKey(396),
|
|
new ParameterKey(397),
|
|
new ParameterKey(398),
|
|
new ParameterKey(399),
|
|
new ParameterKey(400),
|
|
new ParameterKey(401),
|
|
new ParameterKey(402),
|
|
new ParameterKey(403),
|
|
new ParameterKey(404),
|
|
new ParameterKey(405),
|
|
new ParameterKey(406),
|
|
new ParameterKey(407),
|
|
new ParameterKey(408),
|
|
new ParameterKey(409),
|
|
new ParameterKey(410),
|
|
new ParameterKey(411),
|
|
new ParameterKey(412),
|
|
new ParameterKey(413),
|
|
new ParameterKey(414),
|
|
new ParameterKey(415),
|
|
new ParameterKey(416),
|
|
new ParameterKey(417),
|
|
new ParameterKey(418),
|
|
new ParameterKey(419),
|
|
new ParameterKey(420),
|
|
new ParameterKey(421),
|
|
new ParameterKey(422),
|
|
new ParameterKey(423),
|
|
new ParameterKey(424),
|
|
new ParameterKey(425),
|
|
new ParameterKey(426),
|
|
new ParameterKey(427),
|
|
new ParameterKey(428),
|
|
new ParameterKey(429),
|
|
new ParameterKey(430),
|
|
new ParameterKey(431),
|
|
new ParameterKey(432),
|
|
new ParameterKey(433),
|
|
new ParameterKey(434),
|
|
new ParameterKey(435),
|
|
new ParameterKey(436),
|
|
new ParameterKey(437),
|
|
new ParameterKey(438),
|
|
new ParameterKey(439),
|
|
new ParameterKey(440),
|
|
new ParameterKey(441),
|
|
new ParameterKey(442),
|
|
new ParameterKey(443),
|
|
new ParameterKey(444),
|
|
new ParameterKey(445),
|
|
new ParameterKey(446),
|
|
new ParameterKey(447),
|
|
new ParameterKey(448),
|
|
new ParameterKey(449),
|
|
new ParameterKey(450),
|
|
new ParameterKey(451),
|
|
new ParameterKey(452),
|
|
new ParameterKey(453),
|
|
new ParameterKey(454),
|
|
new ParameterKey(455),
|
|
new ParameterKey(456),
|
|
new ParameterKey(457),
|
|
new ParameterKey(458),
|
|
new ParameterKey(459),
|
|
new ParameterKey(460),
|
|
new ParameterKey(461),
|
|
new ParameterKey(462),
|
|
new ParameterKey(463),
|
|
new ParameterKey(464),
|
|
new ParameterKey(465),
|
|
new ParameterKey(466),
|
|
new ParameterKey(467),
|
|
new ParameterKey(468),
|
|
new ParameterKey(469),
|
|
new ParameterKey(470),
|
|
new ParameterKey(471),
|
|
new ParameterKey(472),
|
|
new ParameterKey(473),
|
|
new ParameterKey(474),
|
|
new ParameterKey(475),
|
|
new ParameterKey(476),
|
|
new ParameterKey(477),
|
|
new ParameterKey(478),
|
|
new ParameterKey(479),
|
|
new ParameterKey(480),
|
|
new ParameterKey(481),
|
|
new ParameterKey(482),
|
|
new ParameterKey(483),
|
|
new ParameterKey(484),
|
|
new ParameterKey(485),
|
|
new ParameterKey(486),
|
|
new ParameterKey(487),
|
|
new ParameterKey(488),
|
|
new ParameterKey(489),
|
|
new ParameterKey(490),
|
|
new ParameterKey(491),
|
|
new ParameterKey(492),
|
|
new ParameterKey(493),
|
|
new ParameterKey(494),
|
|
new ParameterKey(495),
|
|
new ParameterKey(496),
|
|
new ParameterKey(497),
|
|
new ParameterKey(498),
|
|
new ParameterKey(499)
|
|
};
|
|
}
|