src/jdk.jfr/share/classes/jdk/jfr/consumer/RecordedObject.java
branchJEP-349-branch
changeset 57452 6fabe73e5d9a
parent 57376 8e8a06a3059c
child 57460 bcbc53560c77
equal deleted inserted replaced
57449:099789ceff7d 57452:6fabe73e5d9a
    71                 return event.getOffsetDateTime(name);
    71                 return event.getOffsetDateTime(name);
    72             }
    72             }
    73 
    73 
    74             @Override
    74             @Override
    75             public void sort(List<RecordedEvent> events) {
    75             public void sort(List<RecordedEvent> events) {
    76                Collections.sort(events, (e1, e2) -> Long.compare(e1.endTime, e2.endTime));
    76                Collections.sort(events, (e1, e2) -> Long.compare(e1.endTimeTicks, e2.endTimeTicks));
    77             }
    77             }
    78 
    78 
    79             @Override
    79             @Override
    80             public Parser newStringParser() {
    80             public Parser newStringParser() {
    81                 return new StringParser(null, false);
    81                 return new StringParser(null, false);
    94             return o;
    94             return o;
    95         }
    95         }
    96     }
    96     }
    97 
    97 
    98     final Object[] objects;
    98     final Object[] objects;
    99     private final List<ValueDescriptor> descriptors;
    99     protected final List<ValueDescriptor> descriptors;
   100     private final TimeConverter timeConverter;
   100     protected final TimeConverter timeConverter;
   101 
   101 
   102     // package private, not to be subclassed outside this package
   102     // package private, not to be subclassed outside this package
   103     RecordedObject(List<ValueDescriptor> descriptors, Object[] objects, TimeConverter timeConverter) {
   103     RecordedObject(List<ValueDescriptor> descriptors, Object[] objects, TimeConverter timeConverter) {
   104         this.descriptors = descriptors;
   104         this.descriptors = descriptors;
   105         this.objects = objects;
   105         this.objects = objects;
   199         @SuppressWarnings("unchecked")
   199         @SuppressWarnings("unchecked")
   200         T t = (T) getValue(name, false);
   200         T t = (T) getValue(name, false);
   201         return t;
   201         return t;
   202     }
   202     }
   203 
   203 
       
   204     protected Object objectAt(int index) {
       
   205         return objects[index];
       
   206     }
       
   207 
   204     private Object getValue(String name, boolean allowUnsigned) {
   208     private Object getValue(String name, boolean allowUnsigned) {
   205         Objects.requireNonNull(name);
   209         Objects.requireNonNull(name);
   206         int index = 0;
   210         int index = 0;
   207         for (ValueDescriptor v : descriptors) {
   211         for (ValueDescriptor v : descriptors) {
   208             if (name.equals(v.getName())) {
   212             if (name.equals(v.getName())) {
   209                 Object object = objects[index];
   213                 Object object = objectAt(index);
   210                 if (object == null) {
   214                 if (object == null) {
   211                     // error or missing
   215                     // error or missing
   212                     return null;
   216                     return null;
   213                 }
   217                 }
   214                 if (v.getFields().isEmpty()) {
   218                 if (v.getFields().isEmpty()) {