Mercurial > hg > Members > kono > jpf-core
comparison src/main/gov/nasa/jpf/tool/Run.java @ 0:61d41facf527
initial v8 import (history reset)
author | Peter Mehlitz <Peter.C.Mehlitz@nasa.gov> |
---|---|
date | Fri, 23 Jan 2015 10:14:01 -0800 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:61d41facf527 |
---|---|
1 /* | |
2 * Copyright (C) 2014, United States Government, as represented by the | |
3 * Administrator of the National Aeronautics and Space Administration. | |
4 * All rights reserved. | |
5 * | |
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 | |
9 * | |
10 * http://www.apache.org/licenses/LICENSE-2.0. | |
11 * | |
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. | |
17 */ | |
18 | |
19 package gov.nasa.jpf.tool; | |
20 | |
21 import java.lang.reflect.InvocationTargetException; | |
22 import java.lang.reflect.Method; | |
23 import java.lang.reflect.Modifier; | |
24 | |
25 /** | |
26 * common base for Run* classes | |
27 */ | |
28 public class Run { | |
29 | |
30 protected static void error (String msg){ | |
31 System.err.print("error: "); | |
32 System.err.println(msg); | |
33 System.exit(1); | |
34 } | |
35 | |
36 protected static void warning (String msg){ | |
37 System.err.print("warning: "); | |
38 System.err.println(msg); | |
39 } | |
40 | |
41 // filter out leading '+' arguments (Config initialization) | |
42 protected static String[] removeConfigArgs(String[]args){ | |
43 int i; | |
44 for (i=0; i<args.length; i++){ | |
45 String a = args[i]; | |
46 if (a != null && a.length() > 0 && a.charAt(0) != '+'){ | |
47 break; | |
48 } | |
49 } | |
50 | |
51 String[] newArgs = new String[args.length - i]; | |
52 System.arraycopy(args,i,newArgs,0,newArgs.length); | |
53 | |
54 return newArgs; | |
55 } | |
56 | |
57 protected static String checkClassName (String cls){ | |
58 if (cls == null || cls.isEmpty()){ | |
59 return null; | |
60 } | |
61 | |
62 if (cls.charAt(0) == '.'){ | |
63 cls = "gov.nasa.jpf" + cls; | |
64 } | |
65 | |
66 return cls; | |
67 } | |
68 | |
69 protected static boolean call( Class<?> cls, String mthName, Object[] args) throws InvocationTargetException { | |
70 try { | |
71 Class<?>[] argTypes = new Class<?>[args.length]; | |
72 for (int i=0; i<args.length; i++){ | |
73 argTypes[i] = args[i].getClass(); | |
74 } | |
75 | |
76 Method m = cls.getMethod(mthName, argTypes); | |
77 | |
78 int modifiers = m.getModifiers(); | |
79 if (Modifier.isStatic(modifiers) && Modifier.isPublic(modifiers)){ | |
80 m.invoke(null, args); | |
81 return true; | |
82 } | |
83 | |
84 } catch (NoSuchMethodException nsmx){ | |
85 return false; | |
86 } catch (IllegalAccessException iax){ | |
87 return false; | |
88 } | |
89 | |
90 return false; | |
91 } | |
92 | |
93 } |