docs: public InternalFactHandle newFactHandle( final int id,
                                               final Object object,
                                               final long recency,
                                               final ObjectTypeConf conf,
                                               final InternalWorkingMemory workingMemory,
                                               final WorkingMemoryEntryPoint wmEntryPoint ) {
          if ( conf != null && conf.isEvent() ) {
              TypeDeclaration type = conf.getTypeDeclaration();
              long timestamp;
              if ( type != null && type.getTimestampExtractor() != null ) {
                  timestamp = type.getTimestampExtractor().getLongValue( workingMemory,
                                                                         object );
              } else {
                  timestamp = workingMemory.getTimerService().getCurrentTime();
              }
              long duration = 0;
              if ( type != null && type.getDurationExtractor() != null ) {
                  duration = type.getDurationExtractor().getLongValue( workingMemory,
                                                                       object );
              }
              return new EventFactHandle( id,
                                          object,
                                          recency,
                                          timestamp,
                                          duration,
                                          wmEntryPoint != null ? wmEntryPoint : workingMemory,
                                          conf != null && conf.isTrait() );
          } else {
              return new DefaultFactHandle( id,
                                            object,
                                            recency,
                                            wmEntryPoint != null ? wmEntryPoint : workingMemory,
                                            conf != null && conf.isTrait() );
          }
      }