src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/ObjectFactory.java
branchJEP-349-branch
changeset 58197 0ef79bd7fb5c
parent 58145 bc54ed8d908a
child 58200 2d147d680311
equal deleted inserted replaced
58193:baf88aa4f5db 58197:0ef79bd7fb5c
    38  * Abstract factory for creating specialized types
    38  * Abstract factory for creating specialized types
    39  */
    39  */
    40 public abstract class ObjectFactory<T> {
    40 public abstract class ObjectFactory<T> {
    41     private static final JdkJfrConsumer PRIVATE_ACCESS = JdkJfrConsumer.instance();
    41     private static final JdkJfrConsumer PRIVATE_ACCESS = JdkJfrConsumer.instance();
    42 
    42 
    43     public final static String TYPE_PREFIX_VERSION_1 = "com.oracle.jfr.types.";
    43     private final static String TYPE_PREFIX_VERSION_1 = "com.oracle.jfr.types.";
    44     public final static String TYPE_PREFIX_VERSION_2 = Type.TYPES_PREFIX;
    44     private final static String TYPE_PREFIX_VERSION_2 = Type.TYPES_PREFIX;
    45     public final static String STACK_FRAME_VERSION_1 = TYPE_PREFIX_VERSION_1 + "StackFrame";
    45     public final static String STACK_FRAME_VERSION_1 = TYPE_PREFIX_VERSION_1 + "StackFrame";
    46     public final static String STACK_FRAME_VERSION_2 = TYPE_PREFIX_VERSION_2 + "StackFrame";
    46     public final static String STACK_FRAME_VERSION_2 = TYPE_PREFIX_VERSION_2 + "StackFrame";
    47 
    47 
    48     public static ObjectFactory<?> create(Type type, TimeConverter timeConverter) {
    48     static ObjectFactory<?> create(Type type, TimeConverter timeConverter) {
    49         switch (type.getName()) {
    49         switch (type.getName()) {
    50         case "java.lang.Thread":
    50         case "java.lang.Thread":
    51             return createThreadFactory(type, timeConverter);
    51             return createThreadFactory(type, timeConverter);
    52         case TYPE_PREFIX_VERSION_1 + "StackFrame":
    52         case TYPE_PREFIX_VERSION_1 + "StackFrame":
    53         case TYPE_PREFIX_VERSION_2 + "StackFrame":
    53         case TYPE_PREFIX_VERSION_2 + "StackFrame":
   134         };
   134         };
   135     }
   135     }
   136 
   136 
   137     private final ObjectContext objectContext;
   137     private final ObjectContext objectContext;
   138 
   138 
   139     ObjectFactory(Type type, TimeConverter timeConverter) {
   139     private ObjectFactory(Type type, TimeConverter timeConverter) {
   140         this.objectContext = new ObjectContext(null, type.getFields(), timeConverter);
   140         this.objectContext = new ObjectContext(null, type.getFields(), timeConverter);
   141     }
   141     }
   142 
   142 
   143     T createObject(long id, Object value) {
   143     T createObject(long id, Object value) {
   144         if (value == null) {
   144         if (value == null) {