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;
21 import gov.nasa.jpf.SystemAttribute;
22 import gov.nasa.jpf.util.IntTable;
25 * auxiliary class that captures the main entry and classloader context
28 public class ApplicationContext implements SystemAttribute {
31 final String mainClassName;
32 final String mainEntry;
36 final SystemClassLoaderInfo sysCl;
39 FinalizerThreadInfo finalizerThread;
40 IntTable<String> internStrings;
42 ApplicationContext (int id, String mainClassName, String mainEntry, String[] args, String host, SystemClassLoaderInfo sysCl){
44 this.mainClassName = mainClassName;
45 this.mainEntry = mainEntry;
49 this.internStrings = new IntTable<String>(8);
52 void setEntryMethod (MethodInfo miEntry){
53 this.miEntry = miEntry;
56 MethodInfo getEntryMethod(){
64 public String getMainClassName(){
68 public String getHost() {
72 public String[] getArgs(){
76 public SystemClassLoaderInfo getSystemClassLoader(){
80 public FinalizerThreadInfo getFinalizerThread() {
81 return finalizerThread;
84 public void setFinalizerThread(ThreadInfo ti) {
85 finalizerThread = (FinalizerThreadInfo)ti;
88 public IntTable<String> getInternStrings() {
93 public String toString(){
94 StringBuffer sb = new StringBuffer();
95 sb.append("ApplicationContext {mainClassName=");
96 sb.append(mainClassName);
97 sb.append(",mainEntry=");
102 sb.append(",args=[");
103 for (int i=0; i<args.length; i++){
104 if (i>0) sb.append(',');
107 sb.append("], miMain=");
108 if (miEntry != null){
109 sb.append(miEntry.getFullName());
115 return sb.toString();