All Downloads are FREE. Search and download functionalities are using the official Maven repository.

main.shark.ActualMatchingReferenceReaderFactory.kt Maven / Gradle / Ivy

package shark

/**
 * Creates [ReferenceReader] instances that will follow references from all [HeapObject]s,
 * applying matching rules provided by [referenceMatchers], and not creating any virtual reference.
 */
class ActualMatchingReferenceReaderFactory(
  private val referenceMatchers: List
) : ReferenceReader.Factory {
  override fun createFor(heapGraph: HeapGraph): ReferenceReader {
    return DelegatingObjectReferenceReader(
      classReferenceReader = ClassReferenceReader(heapGraph, referenceMatchers),
      instanceReferenceReader = ChainingInstanceReferenceReader(
        virtualRefReaders = listOf(JavaLocalReferenceReader(heapGraph, referenceMatchers)),
        flatteningInstanceReader = null,
        fieldRefReader = FieldInstanceReferenceReader(heapGraph, referenceMatchers)
      ), objectArrayReferenceReader = ObjectArrayReferenceReader()
    )
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy