View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    * 
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   * 
11   * Unless required by applicable law or agreed to in writing, software 
12   * distributed under the License is distributed on an "AS IS" BASIS, 
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
14   * See the License for the specific language governing permissions and 
15   * limitations under the License.
16   */
17  
18  package org.apache.jdo.impl.enhancer.core;
19  
20  import org.apache.jdo.impl.enhancer.classfile.VMConstants;
21  import org.apache.jdo.impl.enhancer.meta.EnhancerMetaData;
22  
23  
24  /***
25   * Constant definitions for Java and JDO path prefixes.
26   */
27  interface PathConstants
28  {
29      // these constant definitions are used in the initialization of
30      // the subsequent interfaces
31  
32      String JAVA_LANG_Path = "java/lang/";
33  
34      String JDO_Path = "javax/jdo/";
35  
36      String JDO_SPI_Path = JDO_Path + "spi/";
37  }
38  
39  /***
40   * Helper methods for dealing with JVM naming conventions.
41   *
42   * Provides the JDO meta information neccessary for byte-code enhancement.
43   * <p>
44   * <b>Please note: This interface deals with fully qualified names in the
45   * JVM notation, that is, with '/' as package separator character&nbsp;
46   * (instead of '.').</b>
47   * <p>
48   * The following convention is used to specify the format of a given name:
49   * Something called ...
50   * <ul>
51   * <li>
52   * <i>name</i> represents a non-qualified name (e.g.
53   *   <code>JDOPersistenceManager_Name</code>
54   *   = "<code>PersistenceManager</code>")</li>
55   * <li>
56   * <i>type</i> represents a Java-qualified class name (e.g.
57   *   <code>JDOPersistenceManager_Path</code>
58   *   = '<code>javax.jdo.ri.PersistenceManager</code>")</li>
59   * <li>
60   * <i>path</i> represents a JVM-qualified name (e.g.
61   *   <code>JDOPersistenceManager_Path</code>
62   *   = '<code>javax/jdo/ri/PersistenceManager</code>")</li>
63   * <li>
64   * <i>sig</i> (for <i>signature</i>) represents a JVM-qualified type signature
65   *   name (e.g. <code>JDOPersistenceManager_Sig</code>
66   *   = "<code>Ljavax/jdo/ri/PersistenceManager;</code>")</li>
67   * </ul>
68   */
69  class NameHelper
70      implements PathConstants
71  {
72      static final String sigForPath(String path)
73      {
74          // assumes reference type
75          return "L" + path + ";";
76      }
77  
78      static final String pathForSig(String sig)
79      {
80          // assumes reference type
81          return (sig.charAt(0) == '['
82                  ? sig : sig.substring(1, sig.length() - 1));
83      }
84  
85      static final String typeForPath(String path)
86      {
87          return path.replace('/', '.');
88      }
89  
90      static final String pathForType(String type)
91      {
92          return type.replace('.', '/');
93      }
94  
95      static final String typeForSig(String sig)
96      {
97          return typeForPath(pathForSig(sig));
98      }
99  
100     static final String sigForType(String type)
101     {
102         return sigForPath(pathForType(type));
103     }
104 
105     static final String elementSigForSig(String sig)
106     {
107         return sig.substring(sig.lastIndexOf('[') + 1,
108                              sig.length());
109     }
110 
111     static final String elementPathForSig(String sig)
112     {
113         return pathForSig(elementSigForSig(sig));
114     }
115 
116     static final String elementTypeForSig(String sig)
117     {
118         return typeForSig(elementSigForSig(sig));
119     }
120 
121     static final String javaLangPathForType(String type)
122     {
123         return JAVA_LANG_Path + type;
124     }
125 
126     static final String constructorName()
127     {
128         return "<init>";
129     }
130 
131     static final String constructorSig()
132     {
133         return constructorSig("");
134     }
135 
136     static final String constructorSig(String argSig)
137     {
138         final String sig = (argSig == null ? "" : argSig);
139         return "(" +  sig + ")V";
140     }
141 }
142 
143 /***
144  * Helper methods for dealing with JDO naming conventions.
145  */
146 class JDONameHelper
147     extends NameHelper
148     implements PathConstants, VMConstants
149 {
150     static final String jdoPathForType(String type)
151     {
152         return JDO_Path + type;
153     }
154 
155     static final String jdoSPIPathForType(String type)
156     {
157         return JDO_SPI_Path + type;
158     }
159 
160     static final String getJDO_PC_jdoCopyField_Sig(String classPath) 
161     {
162         return "(" + sigForPath(classPath) + "I)V";
163     }
164 
165     static private final int ACCPublicPrivateProtected
166         = (ACCPublic | ACCPrivate | ACCProtected);
167 
168     static private final int ACCStaticFinal
169         = (ACCStatic | ACCFinal);
170     
171     static final String getJDO_PC_jdoAccessor_Name(String fieldName) 
172     {
173         return "jdoGet" + fieldName;
174     }
175 
176     static final String getJDO_PC_jdoAccessor_Sig(String instanceClassPath,
177                                                   String fieldSig)
178     {
179         return "(" + sigForPath(instanceClassPath) + ")" + fieldSig;
180     }
181 
182     static final int getJDO_PC_jdoAccessor_Mods(int fieldMods)
183     {
184         return (ACCStaticFinal | (fieldMods & ACCPublicPrivateProtected));
185     }
186     
187     static final String getJDO_PC_jdoMutator_Name(String fieldName) 
188     {
189         return "jdoSet" + fieldName;
190     }
191 
192     static final String getJDO_PC_jdoMutator_Sig(String instanceClassPath,
193                                                  String fieldSig)
194     {
195         return "(" + sigForPath(instanceClassPath) + fieldSig + ")V";
196     }
197 
198     static final int getJDO_PC_jdoMutator_Mods(int fieldMods)
199     {
200         return (ACCStaticFinal | (fieldMods & ACCPublicPrivateProtected));
201     }
202 }
203 
204 /***
205  * Constant definitions by the Java2 platform specification.
206  */
207 interface JAVA_ClassConstants
208     extends VMConstants
209 {
210     String JAVA_Object_Name
211         = "Object";
212     String JAVA_Object_Path
213         = NameHelper.javaLangPathForType(JAVA_Object_Name);
214     String JAVA_Object_Sig
215         = NameHelper.sigForPath(JAVA_Object_Path);
216     String JAVA_Object_Type
217         = NameHelper.typeForPath(JAVA_Object_Path);
218 
219     String JAVA_Boolean_Name
220         = "Boolean";
221     String JAVA_Boolean_Path
222         = NameHelper.javaLangPathForType(JAVA_Boolean_Name);
223     String JAVA_Boolean_Sig
224         = NameHelper.sigForPath(JAVA_Boolean_Path);
225     String JAVA_Boolean_Type
226         = NameHelper.typeForPath(JAVA_Boolean_Path);
227 
228     String JAVA_Character_Name
229         = "Character";
230     String JAVA_Character_Path
231         = NameHelper.javaLangPathForType(JAVA_Character_Name);
232     String JAVA_Character_Sig
233         = NameHelper.sigForPath(JAVA_Character_Path);
234     String JAVA_Character_Type
235         = NameHelper.typeForPath(JAVA_Character_Path);
236 
237     String JAVA_Byte_Name
238         = "Byte";
239     String JAVA_Byte_Path
240         = NameHelper.javaLangPathForType(JAVA_Byte_Name);
241     String JAVA_Byte_Sig
242         = NameHelper.sigForPath(JAVA_Byte_Path);
243     String JAVA_Byte_Type
244         = NameHelper.typeForPath(JAVA_Byte_Path);
245 
246     String JAVA_Short_Name
247         = "Short";
248     String JAVA_Short_Path
249         = NameHelper.javaLangPathForType(JAVA_Short_Name);
250     String JAVA_Short_Sig
251         = NameHelper.sigForPath(JAVA_Short_Path);
252     String JAVA_Short_Type
253         = NameHelper.typeForPath(JAVA_Short_Path);
254 
255     String JAVA_Integer_Name
256         = "Integer";
257     String JAVA_Integer_Path
258         = NameHelper.javaLangPathForType(JAVA_Integer_Name);
259     String JAVA_Integer_Sig
260         = NameHelper.sigForPath(JAVA_Integer_Path);
261     String JAVA_Integer_Type
262         = NameHelper.typeForPath(JAVA_Integer_Path);
263 
264     String JAVA_Long_Name
265         = "Long";
266     String JAVA_Long_Path
267         = NameHelper.javaLangPathForType(JAVA_Long_Name);
268     String JAVA_Long_Sig
269         = NameHelper.sigForPath(JAVA_Long_Path);
270     String JAVA_Long_Type
271         = NameHelper.typeForPath(JAVA_Long_Path);
272 
273     String JAVA_Float_Name
274         = "Float";
275     String JAVA_Float_Path
276         = NameHelper.javaLangPathForType(JAVA_Float_Name);
277     String JAVA_Float_Sig
278         = NameHelper.sigForPath(JAVA_Float_Path);
279     String JAVA_Float_Type
280         = NameHelper.typeForPath(JAVA_Float_Path);
281 
282     String JAVA_Double_Name
283         = "Double";
284     String JAVA_Double_Path
285         = NameHelper.javaLangPathForType(JAVA_Double_Name);
286     String JAVA_Double_Sig
287         = NameHelper.sigForPath(JAVA_Double_Path);
288     String JAVA_Double_Type
289         = NameHelper.typeForPath(JAVA_Double_Path);
290 
291     String JAVA_Class_Name
292         = "Class";
293     String JAVA_Class_Path
294         = NameHelper.javaLangPathForType(JAVA_Class_Name);
295     String JAVA_Class_Sig
296         = NameHelper.sigForPath(JAVA_Class_Path);
297     String JAVA_Class_Type
298         = NameHelper.typeForPath(JAVA_Class_Path);
299 
300     String JAVA_String_Name
301         = "String";
302     String JAVA_String_Path
303         = NameHelper.javaLangPathForType(JAVA_String_Name);
304     String JAVA_String_Sig
305         = NameHelper.sigForPath(JAVA_String_Path);
306     String JAVA_String_Type
307         = NameHelper.typeForPath(JAVA_String_Path);
308 
309     String JAVA_Throwable_Name
310         = "Throwable";
311     String JAVA_Throwable_Path
312         = NameHelper.javaLangPathForType(JAVA_Throwable_Name);
313     String JAVA_Throwable_Sig
314         = NameHelper.sigForPath(JAVA_Throwable_Path);
315     String JAVA_Throwable_Type
316         = NameHelper.typeForPath(JAVA_Throwable_Path);
317 
318     String JAVA_ClassNotFoundException_Name
319         = "ClassNotFoundException";
320     String JAVA_ClassNotFoundException_Path
321         = NameHelper.javaLangPathForType(JAVA_ClassNotFoundException_Name);
322     String JAVA_ClassNotFoundException_Sig
323         = NameHelper.sigForPath(JAVA_ClassNotFoundException_Path);
324     String JAVA_ClassNotFoundException_Type
325         = NameHelper.typeForPath(JAVA_ClassNotFoundException_Path);
326 
327     String JAVA_NoClassDefFoundError_Name
328         = "NoClassDefFoundError";
329     String JAVA_NoClassDefFoundError_Path
330         = NameHelper.javaLangPathForType(JAVA_NoClassDefFoundError_Name);
331     String JAVA_NoClassDefFoundError_Sig
332         = NameHelper.sigForPath(JAVA_NoClassDefFoundError_Path);
333     String JAVA_NoClassDefFoundError_Type
334         = NameHelper.typeForPath(JAVA_NoClassDefFoundError_Path);
335 
336     String JAVA_System_Name
337         = "System";
338     String JAVA_System_Path
339         = NameHelper.javaLangPathForType(JAVA_System_Name);
340     String JAVA_System_Sig
341         = NameHelper.sigForPath(JAVA_System_Path);
342     String JAVA_System_Type
343         = NameHelper.typeForPath(JAVA_System_Path);
344 
345     String JAVA_SecurityManager_Name
346         = "SecurityManager";
347     String JAVA_SecurityManager_Path
348         = NameHelper.javaLangPathForType(JAVA_SecurityManager_Name);
349     String JAVA_SecurityManager_Sig
350         = NameHelper.sigForPath(JAVA_SecurityManager_Path);
351     String JAVA_SecurityManager_Type
352         = NameHelper.typeForPath(JAVA_SecurityManager_Path);
353 
354     String JAVA_Permission_Name
355         = "Permission";
356     String JAVA_Permission_Path
357         = "java/security/" + JAVA_Permission_Name;
358     String JAVA_Permission_Sig
359         = NameHelper.sigForPath(JAVA_Permission_Path);
360     String JAVA_Permission_Type
361         = NameHelper.typeForPath(JAVA_Permission_Path);
362 
363     String JAVA_ObjectOutputStream_Name
364         = "ObjectOutputStream";
365     String JAVA_ObjectOutputStream_Path
366         = "java/io/" + JAVA_ObjectOutputStream_Name;
367     String JAVA_ObjectOutputStream_Sig
368         = NameHelper.sigForPath(JAVA_ObjectOutputStream_Path);
369     String JAVA_ObjectOutputStream_Type
370         = NameHelper.typeForPath(JAVA_ObjectOutputStream_Path);
371 
372     String JAVA_ObjectInputStream_Name
373         = "ObjectInputStream";
374     String JAVA_ObjectInputStream_Path
375         = "java/io/" + JAVA_ObjectInputStream_Name;
376     String JAVA_ObjectInputStream_Sig
377         = NameHelper.sigForPath(JAVA_ObjectInputStream_Path);
378     String JAVA_ObjectInputStream_Type
379         = NameHelper.typeForPath(JAVA_ObjectInputStream_Path);
380 
381     String JAVA_IllegalArgumentException_Name
382         = "IllegalArgumentException";
383     String JAVA_IllegalArgumentException_Path
384         = NameHelper.javaLangPathForType(JAVA_IllegalArgumentException_Name);
385     String JAVA_IllegalArgumentException_Sig
386         = NameHelper.sigForPath(JAVA_IllegalArgumentException_Path);
387     String JAVA_IllegalArgumentException_Type
388         = NameHelper.typeForPath(JAVA_IllegalArgumentException_Path);
389 
390     String JAVA_UnsupportedOperationException_Name
391         = "UnsupportedOperationException";
392     String JAVA_UnsupportedOperationException_Path
393         = NameHelper.javaLangPathForType(JAVA_UnsupportedOperationException_Name);
394     String JAVA_UnsupportedOperationException_Sig
395         = NameHelper.sigForPath(JAVA_UnsupportedOperationException_Path);
396     String JAVA_UnsupportedOperationException_Type
397         = NameHelper.typeForPath(JAVA_UnsupportedOperationException_Path);
398 
399     String JAVA_IllegalStateException_Name
400         = "IllegalStateException";
401     String JAVA_IllegalStateException_Path
402         = NameHelper.javaLangPathForType(JAVA_IllegalStateException_Name);
403     String JAVA_IllegalStateException_Sig
404         = NameHelper.sigForPath(JAVA_IllegalStateException_Path);
405     String JAVA_IllegalStateException_Type
406         = NameHelper.typeForPath(JAVA_IllegalStateException_Path);
407 
408     // void XXX.<clinit>()
409     String JAVA_clinit_Name
410         = "<clinit>";
411     String JAVA_clinit_Sig
412         = "()V";
413     int JAVA_clinit_Mods
414         = ACCStatic;
415 
416     // Object Object.clone()
417     String JAVA_Object_clone_Name
418         = "clone";
419     String JAVA_Object_clone_Sig
420         = "()" + JAVA_Object_Sig;
421 
422     // void [Object].writeObject(java.io.ObjectOutputStream)
423     //    throws IOException
424     String JAVA_Object_writeObject_Name
425         = "writeObject";
426     String JAVA_Object_writeObject_Sig
427         = "(" + JAVA_ObjectOutputStream_Sig + ")V";
428     int JAVA_Object_writeObject_Mods
429         = ACCPrivate;
430 
431     // void [ObjectOutputStream].defaultWriteObject()
432     //    throws IOException
433     String JAVA_ObjectOutputStream_defaultWriteObject_Name
434         = "defaultWriteObject";
435     String JAVA_ObjectOutputStream_defaultWriteObject_Sig
436         = "()V";
437 
438     // Object writeReplace() 
439     //    throws java.io.ObjectStreamException
440     String JAVA_Object_writeReplace_Name
441         = "writeReplace";
442     String JAVA_Object_writeReplace_Sig
443         = "()" + JAVA_Object_Sig;
444 
445     // void [Object].readObject(java.io.ObjectInputStream)
446     //    throws IOException, ClassNotFoundException
447     String JAVA_Object_readObject_Name
448         = "readObject";
449     String JAVA_Object_readObject_Sig
450         = "(" + JAVA_ObjectInputStream_Sig + ")V";
451 
452     // Class Boolean.TYPE
453     String JAVA_Boolean_TYPE_Name
454         = "TYPE";
455     String JAVA_Boolean_TYPE_Sig
456         = JAVA_Class_Sig;
457 
458     // Class Character.TYPE
459     String JAVA_Character_TYPE_Name
460         = "TYPE";
461     String JAVA_Character_TYPE_Sig
462         = JAVA_Class_Sig;
463 
464     // Class Byte.TYPE
465     String JAVA_Byte_TYPE_Name
466         = "TYPE";
467     String JAVA_Byte_TYPE_Sig
468         = JAVA_Class_Sig;
469 
470     // Class Short.TYPE
471     String JAVA_Short_TYPE_Name
472         = "TYPE";
473     String JAVA_Short_TYPE_Sig
474         = JAVA_Class_Sig;
475 
476     // Class Integer.TYPE
477     String JAVA_Integer_TYPE_Name
478         = "TYPE";
479     String JAVA_Integer_TYPE_Sig
480         = JAVA_Class_Sig;
481 
482     // Class Long.TYPE
483     String JAVA_Long_TYPE_Name
484         = "TYPE";
485     String JAVA_Long_TYPE_Sig
486         = JAVA_Class_Sig;
487 
488     // Class Float.TYPE
489     String JAVA_Float_TYPE_Name
490         = "TYPE";
491     String JAVA_Float_TYPE_Sig
492         = JAVA_Class_Sig;
493 
494     // Class Double.TYPE
495     String JAVA_Double_TYPE_Name
496         = "TYPE";
497     String JAVA_Double_TYPE_Sig
498         = JAVA_Class_Sig;
499 
500     // Class Class.forName(String)
501     String JAVA_Class_forName_Name
502         = "forName";
503     String JAVA_Class_forName_Sig
504         = "(" + JAVA_String_Sig + ")" + JAVA_Class_Sig;
505 
506     // String Throwable.getMessage()
507     String JAVA_Throwable_getMessage_Name
508         = "getMessage";
509     String JAVA_Throwable_getMessage_Sig
510         = "()" + JAVA_String_Sig;
511 
512     // NoClassDefFoundError.NoClassDefFoundError(String)
513     String JAVA_NoClassDefFoundError_NoClassDefFoundError_Name
514         = NameHelper.constructorName();
515     String JAVA_NoClassDefFoundError_NoClassDefFoundError_Sig
516         = NameHelper.constructorSig(JAVA_String_Sig);
517 
518     // SecurityManager System.getSecurityManager()
519     String JAVA_System_getSecurityManager_Name
520         = "getSecurityManager";
521     String JAVA_System_getSecurityManager_Sig
522         = "()" + JAVA_SecurityManager_Sig;
523 
524     // void SecurityManager.checkPermission(Permission)
525     String JAVA_SecurityManager_checkPermission_Name
526         = "checkPermission";
527     String JAVA_SecurityManager_checkPermission_Sig
528         = "(" + JAVA_Permission_Sig + ")V";
529 }
530 
531 /***
532  * Constant definitions for JDO classes.
533  */
534 interface JDO_ClassConstants
535     extends JAVA_ClassConstants
536 {
537     String JDO_PersistenceCapable_Name
538         = "PersistenceCapable";
539     String JDO_PersistenceCapable_Path
540         = JDONameHelper.jdoSPIPathForType(JDO_PersistenceCapable_Name);
541     String JDO_PersistenceCapable_Sig
542         = NameHelper.sigForPath(JDO_PersistenceCapable_Path);
543     String JDO_PersistenceCapable_Type
544         = NameHelper.typeForPath(JDO_PersistenceCapable_Path);
545 
546     String JDO_InstanceCallbacks_Name
547         = "InstanceCallbacks";
548     String JDO_InstanceCallbacks_Path
549         = JDONameHelper.jdoPathForType(JDO_InstanceCallbacks_Name);
550     String JDO_InstanceCallbacks_Sig
551         = NameHelper.sigForPath(JDO_InstanceCallbacks_Path);
552     String JDO_InstanceCallbacks_Type
553         = NameHelper.typeForPath(JDO_InstanceCallbacks_Path);
554 
555 /*
556     String JDO_SecondClassObjectBase_Name
557         = "SCO";
558     String JDO_SecondClassObjectBase_Path
559         = JDONameHelper.jdoPathForType(JDO_SecondClassObjectBase_Name);
560     String JDO_SecondClassObjectBase_Sig
561         = NameHelper.sigForPath(JDO_SecondClassObjectBase_Path);
562     String JDO_SecondClassObjectBase_Type
563         = NameHelper.typeForPath(JDO_SecondClassObjectBase_Path)
564 */
565 
566     String JDO_JDOPermission_Name
567         = "JDOPermission";
568     String JDO_JDOPermission_Path
569         = JDONameHelper.jdoSPIPathForType(JDO_JDOPermission_Name);
570     String JDO_JDOPermission_Sig
571         = NameHelper.sigForPath(JDO_JDOPermission_Path);
572     String JDO_JDOPermission_Type
573         = NameHelper.typeForPath(JDO_JDOPermission_Path);
574 
575     String JDO_PersistenceManager_Name
576         = "PersistenceManager";
577     String JDO_PersistenceManager_Path
578         = JDONameHelper.jdoPathForType(JDO_PersistenceManager_Name);
579     String JDO_PersistenceManager_Sig
580         = NameHelper.sigForPath(JDO_PersistenceManager_Path);
581     String JDO_PersistenceManager_Type
582         = NameHelper.typeForPath(JDO_PersistenceManager_Path);
583 
584     String JDO_StateManager_Name
585         = "StateManager";
586     String JDO_StateManager_Path
587         = JDONameHelper.jdoSPIPathForType(JDO_StateManager_Name);
588     String JDO_StateManager_Sig
589         = NameHelper.sigForPath(JDO_StateManager_Path);
590     String JDO_StateManager_Type
591         = NameHelper.typeForPath(JDO_StateManager_Path);
592 
593     String JDO_ObjectIdFieldSupplier_Name
594         = "ObjectIdFieldSupplier";
595     String JDO_ObjectIdFieldSupplier_Path
596         = JDONameHelper.jdoSPIPathForType(JDO_PersistenceCapable_Name
597                                           + "$"
598                                           + JDO_ObjectIdFieldSupplier_Name);
599     String JDO_ObjectIdFieldSupplier_Sig
600         = NameHelper.sigForPath(JDO_ObjectIdFieldSupplier_Path);
601     String JDO_ObjectIdFieldSupplier_Type
602         = NameHelper.typeForPath(JDO_ObjectIdFieldSupplier_Path);
603 
604     String JDO_ObjectIdFieldConsumer_Name
605         = "ObjectIdFieldConsumer";
606     String JDO_ObjectIdFieldConsumer_Path
607         = JDONameHelper.jdoSPIPathForType(JDO_PersistenceCapable_Name
608                                           + "$"
609                                           + JDO_ObjectIdFieldConsumer_Name);
610     String JDO_ObjectIdFieldConsumer_Sig
611         = NameHelper.sigForPath(JDO_ObjectIdFieldConsumer_Path);
612     String JDO_ObjectIdFieldConsumer_Type
613         = NameHelper.typeForPath(JDO_ObjectIdFieldConsumer_Path);
614 
615     String JDO_JDOImplHelper_Name
616         = "JDOImplHelper";
617     String JDO_JDOImplHelper_Path
618         = JDONameHelper.jdoSPIPathForType(JDO_JDOImplHelper_Name);
619     String JDO_JDOImplHelper_Sig
620         = NameHelper.sigForPath(JDO_JDOImplHelper_Path);
621     String JDO_JDOImplHelper_Type
622         = NameHelper.typeForPath(JDO_JDOImplHelper_Path);
623 
624     String JDO_JDOFatalInternalException_Name
625         = "JDOFatalInternalException";
626     String JDO_JDOFatalInternalException_Path
627         = JDONameHelper.jdoPathForType(JDO_JDOFatalInternalException_Name);
628     String JDO_JDOFatalInternalException_Sig
629         = NameHelper.sigForPath(JDO_JDOFatalInternalException_Path);
630     String JDO_JDOFatalInternalException_Type
631         = NameHelper.typeForPath(JDO_JDOFatalInternalException_Path);
632 
633     // string constant for JDOPermission
634     String JDO_JDOPermission_setStateManager_Name
635         = "setStateManager";
636 
637     // JDOPermission.JDOPermission(String)
638     String JDO_JDOPermission_JDOPermission_Name
639         = NameHelper.constructorName();
640     String JDO_JDOPermission_JDOPermission_Sig
641         = NameHelper.constructorSig(JAVA_String_Sig);
642 }
643 
644 /***
645  * Constant definitions for members of the PersistenceCapable interface.
646  */
647 interface JDO_PC_MemberConstants
648     extends JAVA_ClassConstants, JDO_ClassConstants, VMConstants
649 {
650     // JDO flags values
651     //byte READ_WRITE_OK = 0;
652     //byte LOAD_REQUIRED = 1;
653     //byte READ_OK = -1;
654 
655     // JDO field access flags
656     int CHECK_READ     = EnhancerMetaData.CHECK_READ;
657     int MEDIATE_READ   = EnhancerMetaData.MEDIATE_READ;
658     int CHECK_WRITE    = EnhancerMetaData.CHECK_WRITE;
659     int MEDIATE_WRITE  = EnhancerMetaData.MEDIATE_WRITE;
660     int SERIALIZABLE   = EnhancerMetaData.SERIALIZABLE;
661 
662     // Generic Augmentation
663 
664     // StateManager jdoStateManager
665     String JDO_PC_jdoStateManager_Name
666         = "jdoStateManager";
667     String JDO_PC_jdoStateManager_Sig
668         = JDO_StateManager_Sig;
669     int JDO_PC_jdoStateManager_Mods
670         = (ACCProtected | ACCTransient);
671 
672     // byte jdoFlags
673     String JDO_PC_jdoFlags_Name
674         = "jdoFlags";
675     String JDO_PC_jdoFlags_Sig
676         = "B";
677     int JDO_PC_jdoFlags_Mods
678         = (ACCProtected | ACCTransient);
679 
680     // void jdoReplaceStateManager(StateManager)
681     String JDO_PC_jdoReplaceStateManager_Name
682         = "jdoReplaceStateManager";
683     String JDO_PC_jdoReplaceStateManager_Sig
684         = "(" + JDO_StateManager_Sig + ")V";
685     int JDO_PC_jdoReplaceStateManager_Mods
686         = (ACCPublic | ACCFinal | ACCSynchronized);
687 
688     // void jdoReplaceFlags()
689     String JDO_PC_jdoReplaceFlags_Name
690         = "jdoReplaceFlags";
691     String JDO_PC_jdoReplaceFlags_Sig
692         = "()V";
693     int JDO_PC_jdoReplaceFlags_Mods
694         = (ACCPublic | ACCFinal);
695 
696     // PersistenceManager jdoGetPersistenceManager()
697     String JDO_PC_jdoGetPersistenceManager_Name
698         = "jdoGetPersistenceManager";
699     String JDO_PC_jdoGetPersistenceManager_Sig
700         = "()" + JDO_PersistenceManager_Sig;
701     int JDO_PC_jdoGetPersistenceManager_Mods
702         = (ACCPublic | ACCFinal);
703 
704     // Object jdoGetObjectId()
705     String JDO_PC_jdoGetObjectId_Name
706         = "jdoGetObjectId";
707     String JDO_PC_jdoGetObjectId_Sig
708         = "()" + JAVA_Object_Sig;
709     int JDO_PC_jdoGetObjectId_Mods
710         = (ACCPublic | ACCFinal);
711 
712     // Object jdoGetTransactionalObjectId()
713     String JDO_PC_jdoGetTransactionalObjectId_Name
714         = "jdoGetTransactionalObjectId";
715     String JDO_PC_jdoGetTransactionalObjectId_Sig
716         = "()" + JAVA_Object_Sig;
717     int JDO_PC_jdoGetTransactionalObjectId_Mods
718         = (ACCPublic | ACCFinal);
719 
720     // Object jdoGetVersion()
721     String JDO_PC_jdoGetVersion_Name
722         = "jdoGetVersion";
723     String JDO_PC_jdoGetVersion_Sig
724         = "()" + JAVA_Object_Sig;
725     int JDO_PC_jdoGetVersion_Mods
726         = (ACCPublic | ACCFinal);
727 
728     // boolean jdoIsPersistent()
729     String JDO_PC_jdoIsPersistent_Name
730         = "jdoIsPersistent";
731     String JDO_PC_jdoIsPersistent_Sig
732         = "()Z";
733     int JDO_PC_jdoIsPersistent_Mods
734         = (ACCPublic | ACCFinal);
735 
736     // boolean jdoIsTransactional()
737     String JDO_PC_jdoIsTransactional_Name
738         = "jdoIsTransactional";
739     String JDO_PC_jdoIsTransactional_Sig
740         = "()Z";
741     int JDO_PC_jdoIsTransactional_Mods
742         = (ACCPublic | ACCFinal);
743 
744     // boolean jdoIsNew()
745     String JDO_PC_jdoIsNew_Name
746         = "jdoIsNew";
747     String JDO_PC_jdoIsNew_Sig
748         = "()Z";
749     int JDO_PC_jdoIsNew_Mods
750         = (ACCPublic | ACCFinal);
751 
752     // boolean jdoIsDeleted()
753     String JDO_PC_jdoIsDeleted_Name
754         = "jdoIsDeleted";
755     String JDO_PC_jdoIsDeleted_Sig
756         = "()Z";
757     int JDO_PC_jdoIsDeleted_Mods
758         = (ACCPublic | ACCFinal);
759 
760     // boolean jdoIsDirty()
761     String JDO_PC_jdoIsDirty_Name
762         = "jdoIsDirty";
763     String JDO_PC_jdoIsDirty_Sig
764         = "()Z";
765     int JDO_PC_jdoIsDirty_Mods
766         = (ACCPublic | ACCFinal);
767 
768     // boolean jdoIsDetached()
769     String JDO_PC_jdoIsDetached_Name
770         = "jdoIsDetached";
771     String JDO_PC_jdoIsDetached_Sig
772         = "()Z";
773     int JDO_PC_jdoIsDetached_Mods
774         = (ACCPublic | ACCFinal);
775 
776     // void jdoMakeDirty(String)
777     String JDO_PC_jdoMakeDirty_Name
778         = "jdoMakeDirty";
779     String JDO_PC_jdoMakeDirty_Sig
780         = "(" + JAVA_String_Sig + ")V";
781     int JDO_PC_jdoMakeDirty_Mods
782         = (ACCPublic | ACCFinal);
783 
784     // void jdoProvideFields(int[])
785     String JDO_PC_jdoProvideFields_Name
786         = "jdoProvideFields";
787     String JDO_PC_jdoProvideFields_Sig
788         = "([I)V";
789     int JDO_PC_jdoProvideFields_Mods
790         = (ACCPublic | ACCFinal);
791 
792     // void jdoReplaceFields(int[])
793     String JDO_PC_jdoReplaceFields_Name
794         = "jdoReplaceFields";
795     String JDO_PC_jdoReplaceFields_Sig
796         = "([I)V";
797     int JDO_PC_jdoReplaceFields_Mods
798         = (ACCPublic | ACCFinal);
799 
800     // void jdoPreSerialize()
801     // augmented, but not a member of the PC interface
802     String JDO_PC_jdoPreSerialize_Name
803         = "jdoPreSerialize";
804     String JDO_PC_jdoPreSerialize_Sig
805         = "()V";
806     int JDO_PC_jdoPreSerialize_Mods
807         = (ACCProtected | ACCFinal);
808 
809 
810     // Specific Augmentation
811 
812     // private static final int jdoInheritedFieldCount
813     String JDO_PC_jdoInheritedFieldCount_Name
814         = "jdoInheritedFieldCount";
815     String JDO_PC_jdoInheritedFieldCount_Sig
816         = "I";
817     int JDO_PC_jdoInheritedFieldCount_Mods
818         = (ACCStatic | ACCPrivate | ACCFinal);
819 
820     // private static final String[] jdoFieldNames
821     String JDO_PC_jdoFieldNames_Name
822         = "jdoFieldNames";
823     String JDO_PC_jdoFieldNames_Sig
824         = "[" + JAVA_String_Sig;
825     int JDO_PC_jdoFieldNames_Mods
826         = (ACCStatic | ACCPrivate | ACCFinal);
827 
828     // private static final Class[] jdoFieldTypes
829     String JDO_PC_jdoFieldTypes_Name
830         = "jdoFieldTypes";
831     String JDO_PC_jdoFieldTypes_Sig
832         = "[" + JAVA_Class_Sig;
833     int JDO_PC_jdoFieldTypes_Mods
834         = (ACCStatic | ACCPrivate | ACCFinal);
835 
836     // private static final byte[] jdoFieldFlags
837     String JDO_PC_jdoFieldFlags_Name
838         = "jdoFieldFlags";
839     String JDO_PC_jdoFieldFlags_Sig
840         = "[B";
841     int JDO_PC_jdoFieldFlags_Mods
842         = (ACCStatic | ACCPrivate | ACCFinal);
843 
844     // private static final Class jdoPersistenceCapableSuperclass
845     String JDO_PC_jdoPersistenceCapableSuperclass_Name
846         = "jdoPersistenceCapableSuperclass";
847     String JDO_PC_jdoPersistenceCapableSuperclass_Sig
848         = JAVA_Class_Sig;
849     int JDO_PC_jdoPersistenceCapableSuperclass_Mods
850         = (ACCStatic | ACCPrivate | ACCFinal);
851 
852     // protected static int jdoGetManagedFieldCount()
853     String JDO_PC_jdoGetManagedFieldCount_Name
854         = "jdoGetManagedFieldCount";
855     String JDO_PC_jdoGetManagedFieldCount_Sig
856         = "()I";
857     int JDO_PC_jdoGetManagedFieldCount_Mods
858         = (ACCStatic | ACCProtected);
859 
860     // void jdoCopyFields(Object,int[])
861     String JDO_PC_jdoCopyFields_Name
862         = "jdoCopyFields";
863     String JDO_PC_jdoCopyFields_Sig
864         = "(" + JAVA_Object_Sig + "[I)V";
865     int JDO_PC_jdoCopyFields_Mods
866         = (ACCPublic);
867 
868     // protected final void jdoCopyField(XXX pc, int fieldnumber)
869     String JDO_PC_jdoCopyField_Name
870         = "jdoCopyField";
871     //String JDO_PC_jdoCopyField_Sig
872     //    = "(XXXI)V";
873     int JDO_PC_jdoCopyField_Mods
874         = (ACCProtected | ACCFinal);
875 
876     // void jdoProvideField(int)
877     String JDO_PC_jdoProvideField_Name
878         = "jdoProvideField";
879     String JDO_PC_jdoProvideField_Sig
880         = "(I)V";
881     int JDO_PC_jdoProvideField_Mods
882         = (ACCPublic);
883 
884     // void jdoReplaceField(int)
885     String JDO_PC_jdoReplaceField_Name
886         = "jdoReplaceField";
887     String JDO_PC_jdoReplaceField_Sig
888         = "(I)V";
889     int JDO_PC_jdoReplaceField_Mods
890         = (ACCPublic);
891 
892     // PersistenceCapable jdoNewInstance(StateManager)
893     String JDO_PC_jdoNewInstance_Name
894         = "jdoNewInstance";
895     String JDO_PC_jdoNewInstance_Sig
896         = "(" + JDO_StateManager_Sig + ")" + JDO_PersistenceCapable_Sig;
897     int JDO_PC_jdoNewInstance_Mods
898         = (ACCPublic);
899 
900     // PersistenceCapable jdoNewInstance(StateManager,Object)
901     String JDO_PC_jdoNewInstance_Object_Name
902         = "jdoNewInstance";
903     String JDO_PC_jdoNewInstance_Object_Sig
904         = "(" + JDO_StateManager_Sig + JAVA_Object_Sig + ")" + JDO_PersistenceCapable_Sig;
905     int JDO_PC_jdoNewInstance_Object_Mods
906         = (ACCPublic);
907 
908     // Object jdoNewObjectIdInstance()
909     String JDO_PC_jdoNewObjectIdInstance_Name
910         = "jdoNewObjectIdInstance";
911     String JDO_PC_jdoNewObjectIdInstance_Sig
912         = "()" + JAVA_Object_Sig;
913     int JDO_PC_jdoNewObjectIdInstance_Mods
914         = (ACCPublic);
915 
916     // Object jdoNewObjectIdInstance(Object)
917     String JDO_PC_jdoNewObjectIdInstance_Object_Name
918         = "jdoNewObjectIdInstance";
919     String JDO_PC_jdoNewObjectIdInstance_Object_Sig
920         = "(" + JAVA_Object_Sig + ")" + JAVA_Object_Sig;
921     int JDO_PC_jdoNewObjectIdInstance_Object_Mods
922         = (ACCPublic);
923 
924     // void jdoCopyKeyFieldsToObjectId(Object)
925     String JDO_PC_jdoCopyKeyFieldsToObjectId_Name
926         = "jdoCopyKeyFieldsToObjectId";
927     String JDO_PC_jdoCopyKeyFieldsToObjectId_Sig
928         = "(" + JAVA_Object_Sig + ")V";
929     int JDO_PC_jdoCopyKeyFieldsToObjectId_Mods
930         = (ACCPublic);
931 
932     // void jdoCopyKeyFieldsFromObjectId(Object)
933     String JDO_PC_jdoCopyKeyFieldsFromObjectId_Name
934         = "jdoCopyKeyFieldsFromObjectId";
935     String JDO_PC_jdoCopyKeyFieldsFromObjectId_Sig
936         = "(" + JAVA_Object_Sig + ")V";
937     int JDO_PC_jdoCopyKeyFieldsFromObjectId_Mods
938         = (ACCProtected);
939 
940     // void jdoCopyKeyFieldsToObjectId(ObjectIdFieldSupplier,Object)
941     String JDO_PC_jdoCopyKeyFieldsToObjectId_OIFS_Name
942         = "jdoCopyKeyFieldsToObjectId";
943     String JDO_PC_jdoCopyKeyFieldsToObjectId_OIFS_Sig
944         = "(" + JDO_ObjectIdFieldSupplier_Sig + JAVA_Object_Sig + ")V";
945     int JDO_PC_jdoCopyKeyFieldsToObjectId_OIFS_Mods
946         = (ACCPublic);
947 
948     // void jdoCopyKeyFieldsFromObjectId(ObjectIdFieldConsumer,Object)
949     String JDO_PC_jdoCopyKeyFieldsFromObjectId_OIFC_Name
950         = "jdoCopyKeyFieldsFromObjectId";
951     String JDO_PC_jdoCopyKeyFieldsFromObjectId_OIFC_Sig
952         = "(" + JDO_ObjectIdFieldConsumer_Sig + JAVA_Object_Sig + ")V";
953     int JDO_PC_jdoCopyKeyFieldsFromObjectId_OIFC_Mods
954         = (ACCPublic);
955 }
956 
957 /***
958  * Constant definitions for members of the ObjectIdFieldSuppplier interface.
959  */
960 interface JDO_IC_MemberConstants
961     extends JAVA_ClassConstants
962 {
963     // void jdoPostLoad()
964     String JDO_IC_jdoPostLoad_Name
965         = "jdoPostLoad";
966     String JDO_IC_jdoPostLoad_Sig
967         = "()V";
968     int JDO_IC_jdoPostLoad_Mods
969         = (ACCPublic);
970 
971     // void jdoPreStore()
972     String JDO_IC_jdoPreStore_Name
973         = "jdoPreStore";
974     String JDO_IC_jdoPreStore_Sig
975         = "()V";
976     int JDO_IC_jdoPreStore_Mods
977         = (ACCPublic);
978 
979     // void jdoPreClear()
980     String JDO_IC_jdoPreClear_Name
981         = "jdoPreClear";
982     String JDO_IC_jdoPreClear_Sig
983         = "()V";
984     int JDO_IC_jdoPreClear_Mods
985         = (ACCPublic);
986 
987     // void jdoPreDelete()
988     String JDO_IC_jdoPreDelete_Name
989         = "jdoPreDelete";
990     String JDO_IC_jdoPreDelete_Sig
991         = "()V";
992     int JDO_IC_jdoPreDelete_Mods
993         = (ACCPublic);
994 }
995 
996 /***
997  * Constant definitions for members of the ObjectIdFieldSuppplier interface.
998  */
999 interface JDO_OIFS_MemberConstants
1000     extends JAVA_ClassConstants
1001 {
1002     // boolean fetchBooleanField(int)
1003     String JDO_OIFS_fetchBooleanField_Name
1004         = "fetchBooleanField";
1005     String JDO_OIFS_fetchBooleanField_Sig
1006         = "(I)Z";
1007 
1008     // char fetchCharField(int)
1009     String JDO_OIFS_fetchCharField_Name
1010         = "fetchCharField";
1011     String JDO_OIFS_fetchCharField_Sig
1012         = "(I)C";
1013 
1014     // byte fetchByteField(int)
1015     String JDO_OIFS_fetchByteField_Name
1016         = "fetchByteField";
1017     String JDO_OIFS_fetchByteField_Sig
1018         = "(I)B";
1019 
1020     // short fetchShortField(int)
1021     String JDO_OIFS_fetchShortField_Name
1022         = "fetchShortField";
1023     String JDO_OIFS_fetchShortField_Sig
1024         = "(I)S";
1025 
1026     // int fetchIntField(int)
1027     String JDO_OIFS_fetchIntField_Name
1028         = "fetchIntField";
1029     String JDO_OIFS_fetchIntField_Sig
1030         = "(I)I";
1031 
1032     // long fetchLongField(int)
1033     String JDO_OIFS_fetchLongField_Name
1034         = "fetchLongField";
1035     String JDO_OIFS_fetchLongField_Sig
1036         = "(I)J";
1037 
1038     // float fetchFloatField(int)
1039     String JDO_OIFS_fetchFloatField_Name
1040         = "fetchFloatField";
1041     String JDO_OIFS_fetchFloatField_Sig
1042         = "(I)F";
1043 
1044     // double fetchDoubleField(int)
1045     String JDO_OIFS_fetchDoubleField_Name
1046         = "fetchDoubleField";
1047     String JDO_OIFS_fetchDoubleField_Sig
1048         = "(I)D";
1049 
1050     // String fetchStringField(int)
1051     String JDO_OIFS_fetchStringField_Name
1052         = "fetchStringField";
1053     String JDO_OIFS_fetchStringField_Sig
1054         = "(I)" + JAVA_String_Sig;
1055 
1056     // Object fetchObjectField(int)
1057     String JDO_OIFS_fetchObjectField_Name
1058         = "fetchObjectField";
1059     String JDO_OIFS_fetchObjectField_Sig
1060         = "(I)" + JAVA_Object_Sig;
1061 }
1062 
1063 /***
1064  * Constant definitions for members of the ObjectIdFieldConsumer interface.
1065  */
1066 interface JDO_OIFC_MemberConstants
1067     extends JAVA_ClassConstants
1068 {
1069     // void storeBooleanField(int,boolean)
1070     String JDO_OIFC_storeBooleanField_Name
1071         = "storeBooleanField";
1072     String JDO_OIFC_storeBooleanField_Sig
1073         = "(IZ)V";
1074 
1075     // void storeCharField(int,char)
1076     String JDO_OIFC_storeCharField_Name
1077         = "storeCharField";
1078     String JDO_OIFC_storeCharField_Sig
1079         = "(IC)V";
1080 
1081     // void storeByteField(int,byte)
1082     String JDO_OIFC_storeByteField_Name
1083         = "storeByteField";
1084     String JDO_OIFC_storeByteField_Sig
1085         = "(IB)V";
1086 
1087     // void storeShortField(int,short)
1088     String JDO_OIFC_storeShortField_Name
1089         = "storeShortField";
1090     String JDO_OIFC_storeShortField_Sig
1091         = "(IS)V";
1092 
1093     // void storeIntField(int,int)
1094     String JDO_OIFC_storeIntField_Name
1095         = "storeIntField";
1096     String JDO_OIFC_storeIntField_Sig
1097         = "(II)V";
1098 
1099     // void storeLongField(int,long)
1100     String JDO_OIFC_storeLongField_Name
1101         = "storeLongField";
1102     String JDO_OIFC_storeLongField_Sig
1103         = "(IJ)V";
1104 
1105     // void storeFloatField(int,float)
1106     String JDO_OIFC_storeFloatField_Name
1107         = "storeFloatField";
1108     String JDO_OIFC_storeFloatField_Sig
1109         = "(IF)V";
1110 
1111     // void storeDoubleField(int,double)
1112     String JDO_OIFC_storeDoubleField_Name
1113         = "storeDoubleField";
1114     String JDO_OIFC_storeDoubleField_Sig
1115         = "(ID)V";
1116 
1117     // void storeStringField(int,String)
1118     String JDO_OIFC_storeStringField_Name
1119         = "storeStringField";
1120     String JDO_OIFC_storeStringField_Sig
1121         = "(I" + JAVA_String_Sig + ")V";
1122 
1123     // void storeObjectField(int,Object)
1124     String JDO_OIFC_storeObjectField_Name
1125         = "storeObjectField";
1126     String JDO_OIFC_storeObjectField_Sig
1127         = "(I" + JAVA_Object_Sig + ")V";
1128 }
1129 
1130 /***
1131  * Constant definitions for members of the StateManager interface.
1132  */
1133 interface JDO_SM_MemberConstants
1134     extends JAVA_ClassConstants, JDO_ClassConstants
1135 {
1136     // byte replacingFlags(PersistenceCapable);
1137     String JDO_SM_replacingFlags_Name
1138         = "replacingFlags";
1139     String JDO_SM_replacingFlags_Sig
1140         = "(" + JDO_PersistenceCapable_Sig + ")B";
1141 
1142     // StateManager replacingStateManager(PersistenceCapable,StateManager);
1143     String JDO_SM_replacingStateManager_Name
1144         = "replacingStateManager";
1145     String JDO_SM_replacingStateManager_Sig
1146         = "(" + JDO_PersistenceCapable_Sig + JDO_StateManager_Sig + ")" + JDO_StateManager_Sig;
1147 
1148     // boolean isDirty(PersistenceCapable);
1149     String JDO_SM_isDirty_Name
1150         = "isDirty";
1151     String JDO_SM_isDirty_Sig
1152         = "(" + JDO_PersistenceCapable_Sig + ")Z";
1153 
1154     // boolean isTransactional(PersistenceCapable);
1155     String JDO_SM_isTransactional_Name
1156         = "isTransactional";
1157     String JDO_SM_isTransactional_Sig
1158         = "(" + JDO_PersistenceCapable_Sig + ")Z";
1159 
1160     // boolean isPersistent(PersistenceCapable);
1161     String JDO_SM_isPersistent_Name
1162         = "isPersistent";
1163     String JDO_SM_isPersistent_Sig
1164         = "(" + JDO_PersistenceCapable_Sig + ")Z";
1165 
1166     // boolean isNew(PersistenceCapable);
1167     String JDO_SM_isNew_Name
1168         = "isNew";
1169     String JDO_SM_isNew_Sig
1170         = "(" + JDO_PersistenceCapable_Sig + ")Z";
1171 
1172     // boolean isDeleted(PersistenceCapable);
1173     String JDO_SM_isDeleted_Name
1174         = "isDeleted";
1175     String JDO_SM_isDeleted_Sig
1176         = "(" + JDO_PersistenceCapable_Sig + ")Z";
1177 
1178     // PersistenceManager getPersistenceManager(PersistenceCapable);
1179     String JDO_SM_getPersistenceManager_Name
1180         = "getPersistenceManager";
1181     String JDO_SM_getPersistenceManager_Sig
1182         = "(" + JDO_PersistenceCapable_Sig + ")" + JDO_PersistenceManager_Sig;
1183 
1184     // void makeDirty(PersistenceCapable,String);
1185     String JDO_SM_makeDirty_Name
1186         = "makeDirty";
1187     String JDO_SM_makeDirty_Sig
1188         = "(" + JDO_PersistenceCapable_Sig + JAVA_String_Sig + ")V";
1189 
1190     // Object getObjectId(PersistenceCapable);
1191     String JDO_SM_getObjectId_Name
1192         = "getObjectId";
1193     String JDO_SM_getObjectId_Sig
1194         = "(" + JDO_PersistenceCapable_Sig + ")" + JAVA_Object_Sig;
1195 
1196     // Object getTransactionalObjectId(PersistenceCapable);
1197     String JDO_SM_getTransactionalObjectId_Name
1198         = "getTransactionalObjectId";
1199     String JDO_SM_getTransactionalObjectId_Sig
1200         = "(" + JDO_PersistenceCapable_Sig + ")" + JAVA_Object_Sig;
1201 
1202     // boolean isLoaded(PersistenceCapable,int);
1203     String JDO_SM_isLoaded_Name
1204         = "isLoaded";
1205     String JDO_SM_isLoaded_Sig
1206         = "(" + JDO_PersistenceCapable_Sig + "I)Z";
1207 
1208     // void preSerialize(PersistenceCapable);
1209     String JDO_SM_preSerialize_Name
1210         = "preSerialize";
1211     String JDO_SM_preSerialize_Sig
1212         = "(" + JDO_PersistenceCapable_Sig + ")V";
1213 
1214     // boolean getBooleanField(PersistenceCapable,int,boolean);
1215     String JDO_SM_getBooleanField_Name
1216         = "getBooleanField";
1217     String JDO_SM_getBooleanField_Sig
1218         = "(" + JDO_PersistenceCapable_Sig + "IZ)Z";
1219 
1220     // char getCharField(PersistenceCapable,int,char);
1221     String JDO_SM_getCharField_Name
1222         = "getCharField";
1223     String JDO_SM_getCharField_Sig
1224         = "(" + JDO_PersistenceCapable_Sig + "IC)C";
1225 
1226     // byte getByteField(PersistenceCapable,int,byte);
1227     String JDO_SM_getByteField_Name
1228         = "getByteField";
1229     String JDO_SM_getByteField_Sig
1230         = "(" + JDO_PersistenceCapable_Sig + "IB)B";
1231 
1232     // short getShortField(PersistenceCapable,int,short);
1233     String JDO_SM_getShortField_Name
1234         = "getShortField";
1235     String JDO_SM_getShortField_Sig
1236         = "(" + JDO_PersistenceCapable_Sig + "IS)S";
1237 
1238     // int getIntField(PersistenceCapable,int,int);
1239     String JDO_SM_getIntField_Name
1240         = "getIntField";
1241     String JDO_SM_getIntField_Sig
1242         = "(" + JDO_PersistenceCapable_Sig + "II)I";
1243 
1244     // long getLongField(PersistenceCapable,int,long);
1245     String JDO_SM_getLongField_Name
1246         = "getLongField";
1247     String JDO_SM_getLongField_Sig
1248         = "(" + JDO_PersistenceCapable_Sig + "IJ)J";
1249 
1250     // float getFloatField(PersistenceCapable,int,float);
1251     String JDO_SM_getFloatField_Name
1252         = "getFloatField";
1253     String JDO_SM_getFloatField_Sig
1254         = "(" + JDO_PersistenceCapable_Sig + "IF)F";
1255 
1256     // double getDoubleField(PersistenceCapable,int,double);
1257     String JDO_SM_getDoubleField_Name
1258         = "getDoubleField";
1259     String JDO_SM_getDoubleField_Sig
1260         = "(" + JDO_PersistenceCapable_Sig + "ID)D";
1261 
1262     // String getStringField(PersistenceCapable,int,String);
1263     String JDO_SM_getStringField_Name
1264         = "getStringField";
1265     String JDO_SM_getStringField_Sig
1266         = "(" + JDO_PersistenceCapable_Sig + "I" + JAVA_String_Sig + ")" + JAVA_String_Sig;
1267 
1268     // Object getObjectField(PersistenceCapable,int,Object);
1269     String JDO_SM_getObjectField_Name
1270         = "getObjectField";
1271     String JDO_SM_getObjectField_Sig
1272         = "(" + JDO_PersistenceCapable_Sig + "I" + JAVA_Object_Sig + ")" + JAVA_Object_Sig;
1273 
1274     // void setBooleanField(PersistenceCapable,int,boolean,boolean);
1275     String JDO_SM_setBooleanField_Name
1276         = "setBooleanField";
1277     String JDO_SM_setBooleanField_Sig
1278         = "(" + JDO_PersistenceCapable_Sig + "IZZ)V";
1279 
1280     // void setCharField(PersistenceCapable,int,char,char);
1281     String JDO_SM_setCharField_Name
1282         = "setCharField";
1283     String JDO_SM_setCharField_Sig
1284         = "(" + JDO_PersistenceCapable_Sig + "ICC)V";
1285 
1286     // void setByteField(PersistenceCapable,int,byte,byte);
1287     String JDO_SM_setByteField_Name
1288         = "setByteField";
1289     String JDO_SM_setByteField_Sig
1290         = "(" + JDO_PersistenceCapable_Sig + "IBB)V";
1291 
1292     // void setShortField(PersistenceCapable,int,short,short);
1293     String JDO_SM_setShortField_Name
1294         = "setShortField";
1295     String JDO_SM_setShortField_Sig
1296         = "(" + JDO_PersistenceCapable_Sig + "ISS)V";
1297 
1298     // void setIntField(PersistenceCapable,int,int,int);
1299     String JDO_SM_setIntField_Name
1300         = "setIntField";
1301     String JDO_SM_setIntField_Sig
1302         = "(" + JDO_PersistenceCapable_Sig + "III)V";
1303 
1304     // void setLongField(PersistenceCapable,int,long,long);
1305     String JDO_SM_setLongField_Name
1306         = "setLongField";
1307     String JDO_SM_setLongField_Sig
1308         = "(" + JDO_PersistenceCapable_Sig + "IJJ)V";
1309 
1310     // void setFloatField(PersistenceCapable,int,float,float);
1311     String JDO_SM_setFloatField_Name
1312         = "setFloatField";
1313     String JDO_SM_setFloatField_Sig
1314         = "(" + JDO_PersistenceCapable_Sig + "IFF)V";
1315 
1316     // void setDoubleField(PersistenceCapable,int,double,double);
1317     String JDO_SM_setDoubleField_Name
1318         = "setDoubleField";
1319     String JDO_SM_setDoubleField_Sig
1320         = "(" + JDO_PersistenceCapable_Sig + "IDD)V";
1321 
1322     // void setStringField(PersistenceCapable,int,String,String);
1323     String JDO_SM_setStringField_Name
1324         = "setStringField";
1325     String JDO_SM_setStringField_Sig
1326         = "(" + JDO_PersistenceCapable_Sig + "I" + JAVA_String_Sig + JAVA_String_Sig + ")V";
1327 
1328     // void setObjectField(PersistenceCapable,int,Object,Object);
1329     String JDO_SM_setObjectField_Name
1330         = "setObjectField";
1331     String JDO_SM_setObjectField_Sig
1332         = "(" + JDO_PersistenceCapable_Sig + "I" + JAVA_Object_Sig + JAVA_Object_Sig + ")V";
1333 
1334     // void providedBooleanField(PersistenceCapable,int,boolean);
1335     String JDO_SM_providedBooleanField_Name
1336         = "providedBooleanField";
1337     String JDO_SM_providedBooleanField_Sig
1338         = "(" + JDO_PersistenceCapable_Sig + "IZ)V";
1339 
1340     // void providedCharField(PersistenceCapable,int,char);
1341     String JDO_SM_providedCharField_Name
1342         = "providedCharField";
1343     String JDO_SM_providedCharField_Sig
1344         = "(" + JDO_PersistenceCapable_Sig + "IC)V";
1345 
1346     // void providedByteField(PersistenceCapable,int,byte);
1347     String JDO_SM_providedByteField_Name
1348         = "providedByteField";
1349     String JDO_SM_providedByteField_Sig
1350         = "(" + JDO_PersistenceCapable_Sig + "IB)V";
1351 
1352     // void providedShortField(PersistenceCapable,int,short);
1353     String JDO_SM_providedShortField_Name
1354         = "providedShortField";
1355     String JDO_SM_providedShortField_Sig
1356         = "(" + JDO_PersistenceCapable_Sig + "IS)V";
1357 
1358     // void providedIntField(PersistenceCapable,int,int);
1359     String JDO_SM_providedIntField_Name
1360         = "providedIntField";
1361     String JDO_SM_providedIntField_Sig
1362         = "(" + JDO_PersistenceCapable_Sig + "II)V";
1363 
1364     // void providedLongField(PersistenceCapable,int,long);
1365     String JDO_SM_providedLongField_Name
1366         = "providedLongField";
1367     String JDO_SM_providedLongField_Sig
1368         = "(" + JDO_PersistenceCapable_Sig + "IJ)V";
1369 
1370     // void providedFloatField(PersistenceCapable,int,float);
1371     String JDO_SM_providedFloatField_Name
1372         = "providedFloatField";
1373     String JDO_SM_providedFloatField_Sig
1374         = "(" + JDO_PersistenceCapable_Sig + "IF)V";
1375 
1376     // void providedDoubleField(PersistenceCapable,int,double);
1377     String JDO_SM_providedDoubleField_Name
1378         = "providedDoubleField";
1379     String JDO_SM_providedDoubleField_Sig
1380         = "(" + JDO_PersistenceCapable_Sig + "ID)V";
1381 
1382     // void providedStringField(PersistenceCapable,int,String);
1383     String JDO_SM_providedStringField_Name
1384         = "providedStringField";
1385     String JDO_SM_providedStringField_Sig
1386         = "(" + JDO_PersistenceCapable_Sig + "I" + JAVA_String_Sig + ")V";
1387 
1388     // void providedObjectField(PersistenceCapable,int,Object);
1389     String JDO_SM_providedObjectField_Name
1390         = "providedObjectField";
1391     String JDO_SM_providedObjectField_Sig
1392         = "(" + JDO_PersistenceCapable_Sig + "I" + JAVA_Object_Sig + ")V";
1393 
1394     // boolean replacingBooleanField(PersistenceCapable,int);
1395     String JDO_SM_replacingBooleanField_Name
1396         = "replacingBooleanField";
1397     String JDO_SM_replacingBooleanField_Sig
1398         = "(" + JDO_PersistenceCapable_Sig + "I)Z";
1399 
1400     // char replacingCharField(PersistenceCapable,int);
1401     String JDO_SM_replacingCharField_Name
1402         = "replacingCharField";
1403     String JDO_SM_replacingCharField_Sig
1404         = "(" + JDO_PersistenceCapable_Sig + "I)C";
1405 
1406     // byte replacingByteField(PersistenceCapable,int);
1407     String JDO_SM_replacingByteField_Name
1408         = "replacingByteField";
1409     String JDO_SM_replacingByteField_Sig
1410         = "(" + JDO_PersistenceCapable_Sig + "I)B";
1411 
1412     // short replacingShortField(PersistenceCapable,int);
1413     String JDO_SM_replacingShortField_Name
1414         = "replacingShortField";
1415     String JDO_SM_replacingShortField_Sig
1416         = "(" + JDO_PersistenceCapable_Sig + "I)S";
1417 
1418     // int replacingIntField(PersistenceCapable,int);
1419     String JDO_SM_replacingIntField_Name
1420         = "replacingIntField";
1421     String JDO_SM_replacingIntField_Sig
1422         = "(" + JDO_PersistenceCapable_Sig + "I)I";
1423 
1424     // long replacingLongField(PersistenceCapable,int);
1425     String JDO_SM_replacingLongField_Name
1426         = "replacingLongField";
1427     String JDO_SM_replacingLongField_Sig
1428         = "(" + JDO_PersistenceCapable_Sig + "I)J";
1429 
1430     // float replacingFloatField(PersistenceCapable,int);
1431     String JDO_SM_replacingFloatField_Name
1432         = "replacingFloatField";
1433     String JDO_SM_replacingFloatField_Sig
1434         = "(" + JDO_PersistenceCapable_Sig + "I)F";
1435 
1436     // double replacingDoubleField(PersistenceCapable,int);
1437     String JDO_SM_replacingDoubleField_Name
1438         = "replacingDoubleField";
1439     String JDO_SM_replacingDoubleField_Sig
1440         = "(" + JDO_PersistenceCapable_Sig + "I)D";
1441 
1442     // String replacingStringField(PersistenceCapable,int);
1443     String JDO_SM_replacingStringField_Name
1444         = "replacingStringField";
1445     String JDO_SM_replacingStringField_Sig
1446         = "(" + JDO_PersistenceCapable_Sig + "I)" + JAVA_String_Sig;
1447 
1448     // Object replacingObjectField(PersistenceCapable,int);
1449     String JDO_SM_replacingObjectField_Name
1450         = "replacingObjectField";
1451     String JDO_SM_replacingObjectField_Sig
1452         = "(" + JDO_PersistenceCapable_Sig + "I)" + JAVA_Object_Sig;
1453 }
1454 
1455 /***
1456  * Constant definitions for members of the ImplementationHelper class.
1457  */
1458 interface JDO_IH_MemberConstants
1459     extends JAVA_ClassConstants, JDO_ClassConstants
1460 {
1461     // void registerClass(Class,String[],Class[],byte[],Class,PersistenceCapable)
1462     String JDO_JDOImplHelper_registerClass_Name
1463         = "registerClass";
1464     String JDO_JDOImplHelper_registerClass_Sig
1465         = "(" + JAVA_Class_Sig + "[" + JAVA_String_Sig + "[" + JAVA_Class_Sig + "[B" + JAVA_Class_Sig + JDO_PersistenceCapable_Sig + ")V";
1466 
1467     // void checkAuthorizedStateManager(StateManager)
1468     String JDO_JDOImplHelper_checkAuthorizedStateManager_Name
1469         = "checkAuthorizedStateManager";
1470     String JDO_JDOImplHelper_checkAuthorizedStateManager_Sig
1471         = "(" + JDO_StateManager_Sig + ")V";
1472 }
1473 
1474 /***
1475  * Constant definitions for members of the JDOFatalInternalException class.
1476  */
1477 interface JDO_FIE_MemberConstants
1478     extends JAVA_ClassConstants, JDO_ClassConstants
1479 {
1480     // JDOFatalInternalException(String)
1481     String JDO_JDOFatalInternalException_JDOFatalInternalException_Name
1482         = NameHelper.constructorName();
1483     String JDO_JDOFatalInternalException_JDOFatalInternalException_Sig
1484         = NameHelper.constructorSig();
1485 }
1486 
1487 /***
1488  * All constant definitions by the JDO specification.
1489  */
1490 interface JDOConstants
1491     extends JDO_ClassConstants,
1492             JDO_PC_MemberConstants,
1493             JDO_IC_MemberConstants,
1494             JDO_OIFC_MemberConstants,
1495             JDO_OIFS_MemberConstants,
1496             JDO_SM_MemberConstants,
1497             JDO_IH_MemberConstants,
1498             JDO_FIE_MemberConstants
1499 {}
1500 
1501 /***
1502  * Constant definitions specific to this enhancer implementation.
1503  */
1504 interface EnhancerConstants
1505     extends JAVA_ClassConstants
1506 {
1507     // constants for the class level enhancement attribute
1508     String SUNJDO_PC_EnhancedAttribute
1509         = "com.sun.jdori.enhancer.enhanced";
1510     short SUNJDO_PC_EnhancedVersion
1511         = 1;
1512 
1513     // Class sunjdoClassForName(String)
1514     String SUNJDO_PC_sunjdoClassForName_Name
1515         = "sunjdo$classForName$";
1516     String SUNJDO_PC_sunjdoClassForName_Sig
1517         = "(" + JAVA_String_Sig + ")" + JAVA_Class_Sig;
1518     int SUNJDO_PC_sunjdoClassForName_Mods
1519         = (ACCStatic | ACCProtected | ACCFinal);
1520 }