2 * Copyright (C) 2014, United States Government, as represented by the
3 * Administrator of the National Aeronautics and Space Administration.
6 * The Java Pathfinder core (jpf-core) platform is licensed under the
7 * Apache License, Version 2.0 (the "License"); you may not use this file except
8 * in compliance with the License. You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0.
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
19 package gov.nasa.jpf.vm.bytecode;
21 import gov.nasa.jpf.util.Attributable;
22 import gov.nasa.jpf.vm.Instruction;
23 import gov.nasa.jpf.vm.MethodInfo;
24 import gov.nasa.jpf.vm.ThreadInfo;
27 * we use that to access Instruction methods from xInstruction interfaces
29 * NOTE - this has to be kept in sync with Instruction
31 public interface InstructionInterface extends Attributable {
34 * this is for cases where we need the Instruction type. Try to use InstructionInterface in clients
36 Instruction asInstruction();
39 boolean isFirstInstruction();
41 boolean isExtendedInstruction();
42 Instruction getNext();
43 int getInstructionIndex();
45 MethodInfo getMethodInfo();
47 Instruction getPrev();
48 boolean isCompleted(ThreadInfo ti);
49 String getSourceLine();
50 String getSourceLocation();
51 Instruction execute(ThreadInfo ti);
52 String toPostExecString();
55 String getFileLocation();
57 Instruction getNext (ThreadInfo ti);
61 //.. and probably a lot still missing