View Javadoc

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