Initial import
[jpf-core.git] / src / classes / gov / nasa / jpf / SerializationConstructor.java
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;
20
21 import java.lang.reflect.Constructor;
22
23 public class SerializationConstructor<T> extends Constructor<T> {
24
25   // those are set by the the sun.reflect.ReflectionFactory
26   Class<T> mdc;
27   Constructor<?> firstNonSerializableCtor;
28   
29   @Override
30   public Class<T> getDeclaringClass() {
31     return mdc;
32   }
33   
34   // this has to be native because we need to create a new object of the
35   // mdc without initializing it
36   @Override
37   public native T newInstance (Object... args);
38   
39   @Override
40   public boolean isSynthetic () {
41     return true;
42   }
43
44 }