diff --git a/scip-java-proto/src/main/protobuf/scip.proto b/scip-java-proto/src/main/protobuf/scip.proto index 09f510ba7..6504ad740 100644 --- a/scip-java-proto/src/main/protobuf/scip.proto +++ b/scip-java-proto/src/main/protobuf/scip.proto @@ -191,6 +191,23 @@ message Relationship { bool is_implementation = 3; // Similar to `references_symbols` but for "Go to type definition". bool is_type_definition = 4; + // Allows overriding the behavior of "Go to definition" and "Find references" + // for symbols which do not have a definition of their own or could + // potentially have multiple definitions. + // + // For example, in a language with single inheritance and no field overriding, + // inherited fields can reuse the same symbol as the ancestor which declares + // the field. In such a situation, is_definition is not needed. + // + // On the other hand, in languages with single inheritance and some form + // of mixins, you can use is_definition to relate the symbol to the + // matching symbol in ancestor classes, and is_reference to relate the + // symbol to the matching symbol in mixins. + // + // NOTE: At the moment, due to limitations of the SCIP to LSIF conversion, + // only global symbols in an index are allowed to use is_definition. + // The relationship may not get recorded if either symbol is local. + bool is_definition = 5; } // SymbolRole declares what "role" a symbol has in an occurrence. A role is diff --git a/scip-java/src/main/scala/com/sourcegraph/scip_java/ScipPrinters.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/ScipPrinters.scala new file mode 100644 index 000000000..fce98ecc4 --- /dev/null +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/ScipPrinters.scala @@ -0,0 +1,196 @@ +package com.sourcegraph.scip_java + +import com.sourcegraph.Scip +import com.sourcegraph.Scip.{SymbolInformation, SymbolRole} +import com.sourcegraph.scip_java.commands.CommentSyntax +import moped.reporters.{Input, Position, RangePosition} + +import scala.collection.mutable +import scala.jdk.CollectionConverters.CollectionHasAsScala +import scala.math.Ordering.Implicits.seqOrdering + +object ScipPrinters { + + def printTextDocument( + doc: Scip.Document, + text: String, + comments: CommentSyntax = CommentSyntax.default + ): String = { + val out = new mutable.StringBuilder() + val occurrencesByLine = doc + .getOccurrencesList + .asScala + .groupBy(_.getRange(0)) + val symtab = + doc.getSymbolsList.asScala.map(info => info.getSymbol -> info).toMap + + val syntheticDefinitions = + doc + .getSymbolsList + .asScala + .flatMap { info => + info + .getRelationshipsList + .asScala + .collect { + case relationship if relationship.getIsDefinition => + info -> relationship + } + } + .groupBy { case (_, relationship) => + relationship.getSymbol + } + .view + .mapValues( + _.map { case (info, _) => + info + } + ) + .toMap + val extension = doc.getRelativePath.split("\\.").lastOption.getOrElse("") + val commentSyntax = comments.extensionSyntax(extension) + val input = Input.filename(doc.getRelativePath, text) + text + .linesWithSeparators + .zipWithIndex + .foreach { case (line, i) => + out.append(line.replace("\t", "→")) + val occurrences = occurrencesByLine + .getOrElse(i, Nil) + .toSeq + .sortBy(o => o.getRangeList.asScala.toList.map(_.toInt)) + occurrences.foreach { occ => + formatOccurrence(input, out, occ, line, symtab, commentSyntax) + if ((occ.getSymbolRoles & SymbolRole.Definition_VALUE) > 0) { + syntheticDefinitions + .getOrElse(occ.getSymbol, Nil) + .foreach { syntheticDefinition => + formatOccurrence( + input, + out, + occ, + line, + symtab, + commentSyntax, + syntheticDefinition = Some(syntheticDefinition) + ) + } + } + } + } + out.toString() + } + + private def mopedPosition(input: Input, occ: Scip.Occurrence): Position = { + if (occ.getRangeCount == 3) + Position.range( + input, + occ.getRange(0), + occ.getRange(1), + occ.getRange(0), + occ.getRange(2) + ) + else if (occ.getRangeCount == 4) + Position.range( + input, + occ.getRange(0), + occ.getRange(1), + occ.getRange(2), + occ.getRange(3) + ) + else + throw new IllegalArgumentException(s"Invalid range: $occ") + } + + private def formatOccurrence( + input: Input, + out: mutable.StringBuilder, + occ: Scip.Occurrence, + line: String, + symtab: Map[String, Scip.SymbolInformation], + comment: String, + syntheticDefinition: Option[Scip.SymbolInformation] = None + ): Unit = { + val pos = mopedPosition(input, occ) + val isMultiline = pos.startLine != pos.endLine + val width = + if (isMultiline) { + line.length - pos.startColumn - 1 + } else { + math.max(1, pos.endColumn - pos.startColumn) + } + + val isDefinition = + (occ.getSymbolRoles & SymbolRole.Definition.getNumber) > 0 + val role = + if (syntheticDefinition.isDefined) + "synthetic_definition" + else if (isDefinition) + "definition" + else + "reference" + val indent = + if (pos.startColumn > comment.length) + " " * (pos.startColumn - comment.length) + else + "" + val caretCharacter = + if (syntheticDefinition.isDefined) + "_" + else + "^" + val carets = + if (pos.startColumn == 1) + caretCharacter * (width - 1) + else + caretCharacter * width + + val symbol = syntheticDefinition.fold(occ.getSymbol)(_.getSymbol) + out + .append(comment) + .append(indent) + .append(carets) + .append(" ") + .append(role) + .append(" ") + .append(symbol) + if (isMultiline) { + out.append(s" ${pos.endLine - pos.startLine}:${pos.endColumn}") + } + out.append("\n") + + syntheticDefinition.orElse(symtab.get(occ.getSymbol)) match { + case Some(info) if isDefinition => + val prefix = + comment + (" " * indent.length) + (" " * carets.length) + " " + 0.until(info.getDocumentationCount) + .foreach { n => + val documentation = info.getDocumentation(n) + out + .append(prefix) + .append("documentation ") + .append(documentation.replace("\n", "\\n").replace("\t", "\\t")) + .append("\n") + } + 0.until(info.getRelationshipsCount) + .foreach { n => + val relationship = info.getRelationships(n) + out.append(prefix).append("relationship") + if (relationship.getIsReference) { + out.append(" is_reference") + } + if (relationship.getIsDefinition) { + out.append(" is_definition") + } + if (relationship.getIsImplementation) { + out.append(" is_implementation") + } + if (relationship.getIsTypeDefinition) { + out.append(" is_type_definition") + } + out.append(" ").append(relationship.getSymbol).append("\n") + } + case _ => + } + } +} diff --git a/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ScipBuildTool.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ScipBuildTool.scala index 7358ef8e0..4c16529f1 100644 --- a/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ScipBuildTool.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/buildtools/ScipBuildTool.scala @@ -385,7 +385,8 @@ class ScipBuildTool(index: IndexCommand) extends BuildTool("SCIP", index) { .getOrElse { throw new IllegalArgumentException( s"failed to infer the Scala version from the dependencies: " + - pprint.PPrinter.BlackWhite.tokenize(deps.classpath).mkString + pprint.PPrinter.BlackWhite.tokenize(deps.classpath).mkString + + s"\n\nTo fix this, consider adding 'org.scala-lang:scala-library:${BuildInfo.scalaVersion}' to the list of dependencies." ) } val mtags = Dependencies.resolveDependencies( diff --git a/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/IndexDependencyCommand.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/IndexDependencyCommand.scala index 2cc197b18..aef10833a 100644 --- a/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/IndexDependencyCommand.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/IndexDependencyCommand.scala @@ -65,6 +65,11 @@ final case class IndexDependencyCommand( 1 case Some(jvmVersion) => val exit = indexJar(jvmVersion) + pprint.log(dependency) + pprint.log(snapshot) + pprint.log(indexTarget) + pprint.log(snapshotTarget) + pprint.log(exit) if (exit == 0 && snapshot) { try { snapshotCommand diff --git a/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/SnapshotCommand.scala b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/SnapshotCommand.scala index 30dd7110d..1fb51e033 100644 --- a/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/SnapshotCommand.scala +++ b/scip-java/src/main/scala/com/sourcegraph/scip_java/commands/SnapshotCommand.scala @@ -73,6 +73,7 @@ case class SnapshotCommand( ) } + pprint.log(semanticdbFiles.map(_.getUri)) semanticdbFiles.foreach { doc => SnapshotCommand.writeSnapshot(doc, output) } diff --git a/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipSemanticdb.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipSemanticdb.java index 3545a42d0..1d332e4e1 100644 --- a/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipSemanticdb.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipSemanticdb.java @@ -68,6 +68,9 @@ private void runTyped(List files, PackageTable packages) { } private String typedSymbol(String symbol, Package pkg) { + if (symbol.isEmpty()) { + return ""; + } if (symbol.startsWith("local")) { return "local " + symbol.substring("local".length()); } @@ -91,6 +94,9 @@ private void processTypedDocument(Path path, PackageTable packages) { .collect(Collectors.joining("/")); Scip.Document.Builder tdoc = Scip.Document.newBuilder().setRelativePath(relativePath); for (SymbolOccurrence occ : doc.sortedSymbolOccurrences()) { + if (occ.getSymbol().isEmpty()) { + continue; + } int role = 0; if (isDefinitionRole(occ.getRole())) { role |= Scip.SymbolRole.Definition_VALUE; @@ -116,11 +122,35 @@ private void processTypedDocument(Path path, PackageTable packages) { } Symtab symtab = new Symtab(doc.semanticdb); for (SymbolInformation info : doc.semanticdb.getSymbolsList()) { + if (info.getSymbol().isEmpty()) { + continue; + } Package pkg = packages.packageForSymbol(info.getSymbol()).orElse(Package.EMPTY); Scip.SymbolInformation.Builder tinfo = Scip.SymbolInformation.newBuilder().setSymbol(typedSymbol(info.getSymbol(), pkg)); - for (String overriddenSymbol : info.getOverriddenSymbolsList()) { + for (int i = 0; i < info.getDefinitionRelationshipsCount(); i++) { + String definitionSymbol = info.getDefinitionRelationships(i); + if (definitionSymbol.isEmpty()) { + continue; + } + Package definitionSymbolPkg = + packages.packageForSymbol(definitionSymbol).orElse(Package.EMPTY); + SymbolInformation definitionInfo = symtab.symbols.get(definitionSymbol); + tinfo.addRelationships( + Scip.Relationship.newBuilder() + .setSymbol(typedSymbol(definitionSymbol, definitionSymbolPkg)) + .setIsDefinition(true) + .setIsReference( + definitionInfo != null + && definitionInfo.getDisplayName().equals(info.getDisplayName()) + && supportsReferenceRelationship(info))); + } + for (int i = 0; i < info.getOverriddenSymbolsCount(); i++) { + String overriddenSymbol = info.getOverriddenSymbols(0); + if (overriddenSymbol.isEmpty()) { + continue; + } if (isIgnoredOverriddenSymbol(overriddenSymbol)) { continue; } @@ -224,82 +254,85 @@ private Integer processDocumentUnsafe( Set rangeIds = new LinkedHashSet<>(); for (SymbolOccurrence occ : doc.sortedSymbolOccurrences()) { - SymbolInformation symbolInformation = - doc.symbols.getOrDefault(occ.getSymbol(), SymbolInformation.getDefaultInstance()); - ResultIds ids = results.getOrInsertResultSet(occ.getSymbol()); - int rangeId = writer.emitRange(occ.getRange()); - rangeIds.add(rangeId); - - // Range - if (occ.getRole() != Role.SYNTHETIC_DEFINITION) { - writer.emitNext(rangeId, ids.resultSet); - } - - // Reference - writer.emitItem(ids.referenceResult, rangeId, doc.id); - - // Definition - if (isDefinitionRole(occ.getRole())) { - if (ids.isDefinitionDefined()) { - writer.emitItem(ids.definitionResult, rangeId, doc.id); - } else { - options.reporter.error( - new NoSuchElementException( - String.format("no definition ID for symbol '%s'", occ.getSymbol()))); + for (String symbol : occ.getSymbol().split(";")) { + SymbolInformation symbolInformation = + doc.symbols.getOrDefault(symbol, SymbolInformation.getDefaultInstance()); + ResultIds ids = results.getOrInsertResultSet(symbol); + int rangeId = writer.emitRange(occ.getRange()); + rangeIds.add(rangeId); + + // Range + if (occ.getRole() != Role.SYNTHETIC_DEFINITION) { + writer.emitNext(rangeId, ids.resultSet); } - // Hover 1: signature - String documentation = symbolInformation.getDocumentation().getMessage(); - StringBuilder markupContent = new StringBuilder(documentation.length()); - if (symbolInformation.hasSignature()) { - String language = - doc.semanticdb.getLanguage().toString().toLowerCase(Locale.ROOT).intern(); - String signature = new SignatureFormatter(symbolInformation, symtab).formatSymbol(); - markupContent - .append("```") - .append(language) - .append('\n') - .append(signature) - .append("\n```"); - } + // Reference + writer.emitItem(ids.referenceResult, rangeId, doc.id); - // Hover 2: docstring - if (!documentation.isEmpty()) { - if (markupContent.length() != 0) markupContent.append("\n---\n"); - markupContent.append(documentation.replaceAll("\n", "\n\n")); - } + // Definition + if (isDefinitionRole(occ.getRole())) { + if (ids.isDefinitionDefined()) { + writer.emitItem(ids.definitionResult, rangeId, doc.id); + } else { + options.reporter.error( + new NoSuchElementException( + String.format("no definition ID for symbol '%s'", symbol))); + } - if (markupContent.length() == 0) { - // Always emit a non-empty hover message to prevent Sourcegraph from falling back to - // Search-Based hover messages. - markupContent.append(symbolInformation.getDisplayName()); - } + // Hover 1: signature + String documentation = symbolInformation.getDocumentation().getMessage(); + StringBuilder markupContent = new StringBuilder(documentation.length()); + if (symbolInformation.hasSignature()) { + String language = + doc.semanticdb.getLanguage().toString().toLowerCase(Locale.ROOT).intern(); + String signature = new SignatureFormatter(symbolInformation, symtab).formatSymbol(); + markupContent + .append("```") + .append(language) + .append('\n') + .append(signature) + .append("\n```"); + } - int hoverId = - writer.emitHoverResult( - new MarkupContent(MarkupKind.MARKDOWN, markupContent.toString())); - writer.emitHoverEdge(ids.resultSet, hoverId); - } + // Hover 2: docstring + if (!documentation.isEmpty()) { + if (markupContent.length() != 0) markupContent.append("\n---\n"); + markupContent.append(documentation.replaceAll("\n", "\n\n")); + } - // Overrides - if (symbolInformation.getOverriddenSymbolsCount() > 0 - && supportsReferenceRelationship(symbolInformation) - && occ.getRole() == Role.DEFINITION) { - List overriddenReferenceResultIds = - new ArrayList<>(symbolInformation.getOverriddenSymbolsCount()); - for (int i = 0; i < symbolInformation.getOverriddenSymbolsCount(); i++) { - String overriddenSymbol = symbolInformation.getOverriddenSymbols(i); - if (isIgnoredOverriddenSymbol(overriddenSymbol)) { - continue; + if (markupContent.length() == 0) { + // Always emit a non-empty hover message to prevent Sourcegraph from falling + // back to + // Search-Based hover messages. + markupContent.append(symbolInformation.getDisplayName()); } - ResultIds overriddenIds = results.getOrInsertResultSet(overriddenSymbol); - overriddenReferenceResultIds.add(overriddenIds.referenceResult); - writer.emitReferenceResultsItemEdge( - overriddenIds.referenceResult, Collections.singletonList(rangeId), doc.id); + + int hoverId = + writer.emitHoverResult( + new MarkupContent(MarkupKind.MARKDOWN, markupContent.toString())); + writer.emitHoverEdge(ids.resultSet, hoverId); } - if (overriddenReferenceResultIds.size() > 0) { - writer.emitReferenceResultsItemEdge( - ids.referenceResult, overriddenReferenceResultIds, doc.id); + + // Overrides + if (symbolInformation.getOverriddenSymbolsCount() > 0 + && supportsReferenceRelationship(symbolInformation) + && occ.getRole() == Role.DEFINITION) { + List overriddenReferenceResultIds = + new ArrayList<>(symbolInformation.getOverriddenSymbolsCount()); + for (int i = 0; i < symbolInformation.getOverriddenSymbolsCount(); i++) { + String overriddenSymbol = symbolInformation.getOverriddenSymbols(i); + if (isIgnoredOverriddenSymbol(overriddenSymbol)) { + continue; + } + ResultIds overriddenIds = results.getOrInsertResultSet(overriddenSymbol); + overriddenReferenceResultIds.add(overriddenIds.referenceResult); + writer.emitReferenceResultsItemEdge( + overriddenIds.referenceResult, Collections.singletonList(rangeId), doc.id); + } + if (overriddenReferenceResultIds.size() > 0) { + writer.emitReferenceResultsItemEdge( + ids.referenceResult, overriddenReferenceResultIds, doc.id); + } } } } @@ -362,8 +395,10 @@ private Semanticdb.TextDocuments textDocumentsParseFromBytes(byte[] bytes) throw in.setRecursionLimit(1000); return Semanticdb.TextDocuments.parseFrom(in); } catch (NoSuchMethodError ignored) { - // NOTE(olafur): For some reason, NoSuchMethodError gets thrown when running `snapshots/run` - // in the sbt build. I'm unable to reproduce the error in `snapshots/test` or when running the + // NOTE(olafur): For some reason, NoSuchMethodError gets thrown when running + // `snapshots/run` + // in the sbt build. I'm unable to reproduce the error in `snapshots/test` or + // when running the // published version // of `scip-java index`. return Semanticdb.TextDocuments.parseFrom(bytes); @@ -371,7 +406,8 @@ private Semanticdb.TextDocuments textDocumentsParseFromBytes(byte[] bytes) throw } private boolean isIgnoredOverriddenSymbol(String symbol) { - // Skip java/lang/Object# and similar symbols from Scala since it's the parent of all classes + // Skip java/lang/Object# and similar symbols from Scala since it's the parent + // of all classes // making it noisy for "find implementations" results. return symbol.equals("java/lang/Object#"); } diff --git a/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipTextDocument.java b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipTextDocument.java index ab89b10c4..bdba59006 100644 --- a/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipTextDocument.java +++ b/scip-semanticdb/src/main/java/com/sourcegraph/scip_semanticdb/ScipTextDocument.java @@ -87,6 +87,7 @@ public static Semanticdb.TextDocument manifestOccurrencesForSyntheticSymbols( return semanticdb; } Semanticdb.TextDocument.Builder builder = Semanticdb.TextDocument.newBuilder(semanticdb); + builder.clearSymbols(); HashMap definitionOccurrences = new HashMap<>(); for (Semanticdb.SymbolOccurrence occ : semanticdb.getOccurrencesList()) { if (occ.getRole() == Semanticdb.SymbolOccurrence.Role.DEFINITION) { @@ -94,22 +95,21 @@ public static Semanticdb.TextDocument manifestOccurrencesForSyntheticSymbols( } } for (Semanticdb.SymbolInformation info : semanticdb.getSymbolsList()) { + Semanticdb.SymbolInformation.Builder newInfo = Semanticdb.SymbolInformation.newBuilder(info); Semanticdb.SymbolOccurrence definition = definitionOccurrences.get(info.getSymbol()); if (definition != null) { + builder.addSymbols(newInfo); continue; } for (Semanticdb.SymbolOccurrence alternativeSymbol : alternativeSymbols(info)) { Semanticdb.SymbolOccurrence alternativeDefinition = definitionOccurrences.get(alternativeSymbol.getSymbol()); if (alternativeDefinition != null) { - builder.addOccurrences( - Semanticdb.SymbolOccurrence.newBuilder() - .setRange(alternativeDefinition.getRange()) - .setRole(alternativeSymbol.getRole()) - .setSymbol(info.getSymbol())); + newInfo.addDefinitionRelationships(alternativeDefinition.getSymbol()); break; } } + builder.addSymbols(newInfo); } return builder.build(); } diff --git a/semanticdb-java/src/main/protobuf/semanticdb.proto b/semanticdb-java/src/main/protobuf/semanticdb.proto index e8fea62d1..4fefea160 100644 --- a/semanticdb-java/src/main/protobuf/semanticdb.proto +++ b/semanticdb-java/src/main/protobuf/semanticdb.proto @@ -114,7 +114,7 @@ message SymbolInformation { ENUM = 0x4000; DEFAULT = 0x8000; } - reserved 2, 6, 7, 8, 9, 10, 11, 12, 14, 15; + reserved 2, 6, 7, 8, 9, 10, 11, 12, 14;// 15; string symbol = 1; Language language = 16; Kind kind = 3; @@ -127,6 +127,10 @@ message SymbolInformation { Access access = 18; repeated string overridden_symbols = 19; Documentation documentation = 20; + + // -- OUT OF SPEC -- // + repeated string definition_relationships = 15; + // -- OUT OF SPEC -- // } message Access { diff --git a/tests/minimized-scala/src/main/scala/minimized/MinimizedScalaSignatures.scala b/tests/minimized-scala/src/main/scala/minimized/MinimizedScalaSignatures.scala index 7535692da..c34143cef 100644 --- a/tests/minimized-scala/src/main/scala/minimized/MinimizedScalaSignatures.scala +++ b/tests/minimized-scala/src/main/scala/minimized/MinimizedScalaSignatures.scala @@ -4,7 +4,12 @@ package minimized case class MinimizedCaseClass(value: String) { - def this() = this("value") + def this() = this(value = "value") +} +object MinimizedCaseClass { + def main(): Unit = { + println(MinimizedCaseClass.apply(value = "value1").copy(value = "value2").value) + } } trait MinimizedTrait[T] extends AutoCloseable { diff --git a/tests/snapshots/src/main/generated/BaseByteRenderer.scala b/tests/snapshots/src/main/generated/BaseByteRenderer.scala deleted file mode 100644 index b7cc0a2e1..000000000 --- a/tests/snapshots/src/main/generated/BaseByteRenderer.scala +++ /dev/null @@ -1,476 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ -import scala.annotation.switch -// ^^^^^ reference scala/ -// ^^^^^^^^^^ reference scala/annotation/ -// ^^^^^^ reference scala/annotation/switch# -import upickle.core.{ArrVisitor, ObjVisitor} -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^ reference upickle/core/ArrVisitor# -// ^^^^^^^^^^ reference upickle/core/ObjVisitor# - -/** - * A specialized JSON renderer that can render Bytes (Chars or Bytes) directly - * to a [[java.io.Writer]] or [[java.io.OutputStream]] - * - * Note that we use an internal `ByteBuilder` to buffer the output internally - * before sending it to [[out]] in batches. This lets us benefit from the high - * performance and minimal overhead of `ByteBuilder` in the fast path of - * pushing characters, and avoid the synchronization/polymorphism overhead of - * [[out]] on the fast path. Most [[out]]s would also have performance - * benefits from receiving data in batches, rather than elem by elem. - */ -class BaseByteRenderer[T <: upickle.core.ByteOps.Output] -// ^^^^^^^^^^^^^^^^ definition ujson/BaseByteRenderer# class BaseByteRenderer[T <: Output] -// ^^^^^^^^^^^^^^^^ definition ujson/BaseByteRenderer. object BaseByteRenderer -// ^ definition ujson/BaseByteRenderer#[T] T <: Output -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^ reference upickle/core/ByteOps. -// ^^^^^^ reference upickle/core/ByteOps.Output# - (out: T, -// ^^^ definition ujson/BaseByteRenderer#out. private[this] val out: T -// ^^^ definition ujson/BaseByteRenderer#``().(out) out: T -// ^ reference ujson/BaseByteRenderer#[T] - indent: Int = -1, -// ^^^^^^ definition ujson/BaseByteRenderer#indent. private[this] val indent: Int -// ^^^^^^ definition ujson/BaseByteRenderer#``().(indent) default indent: Int -// ^^^ reference scala/Int# - escapeUnicode: Boolean = false) extends JsVisitor[T, T]{ -// ^^^^^^^^^^^^^ definition ujson/BaseByteRenderer#escapeUnicode. private[this] val escapeUnicode: Boolean -// ^^^^^^^^^^^^^ definition ujson/BaseByteRenderer#``().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# -// ^^^^^^^^^ reference ujson/JsVisitor# -// ^ reference ujson/BaseByteRenderer#[T] -// ^ reference ujson/BaseByteRenderer#[T] -// reference java/lang/Object#``(). - private[this] val elemBuilder = new upickle.core.ByteBuilder -// ^^^^^^^^^^^ definition ujson/BaseByteRenderer#elemBuilder. private[this] val elemBuilder: ByteBuilder -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/ByteBuilder# -// reference upickle/core/ByteBuilder#``(). - private[this] val unicodeCharBuilder = new upickle.core.CharBuilder() -// ^^^^^^^^^^^^^^^^^^ definition ujson/BaseByteRenderer#unicodeCharBuilder. private[this] val unicodeCharBuilder: CharBuilder -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/CharBuilder# -// reference upickle/core/CharBuilder#``(). - def flushByteBuilder() = { -// ^^^^^^^^^^^^^^^^ definition ujson/BaseByteRenderer#flushByteBuilder(). def flushByteBuilder(): Unit - elemBuilder.writeOutToIfLongerThan(out, if (depth == 0) 0 else 1000) -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/ByteBuilder#writeOutToIfLongerThan(). -// ^^^ reference ujson/BaseByteRenderer#out. -// ^^^^^ reference ujson/BaseByteRenderer#depth(). -// ^^ reference scala/Int#`==`(+3). - } - - private[this] var depth: Int = 0 -// ^^^^^ definition ujson/BaseByteRenderer#depth(). private[this] var depth: Int -// ^^^^^ definition ujson/BaseByteRenderer#`depth_=`(). private[this] var depth_=(x$1: Int): Unit -// ^^^ reference scala/Int# - - - private[this] var commaBuffered = false -// ^^^^^^^^^^^^^ definition ujson/BaseByteRenderer#commaBuffered(). private[this] var commaBuffered: Boolean -// ^^^^^^^^^^^^^ definition ujson/BaseByteRenderer#`commaBuffered_=`(). private[this] var commaBuffered_=(x$1: Boolean): Unit - - def flushBuffer() = { -// ^^^^^^^^^^^ definition ujson/BaseByteRenderer#flushBuffer(). def flushBuffer(): Unit - if (commaBuffered) { -// ^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#commaBuffered(). - commaBuffered = false -// ^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#commaBuffered(). - elemBuilder.append(',') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). - renderIndent() -// ^^^^^^^^^^^^ reference ujson/BaseByteRenderer#renderIndent(). - } - } - def visitArray(length: Int, index: Int) = new ArrVisitor[T, T] { -// ^^^^^^^^^^ definition ujson/BaseByteRenderer#visitArray(). def visitArray(length: Int, index: Int): { def subVisitor: BaseByteRenderer[T] } -// ^^^^^^ definition ujson/BaseByteRenderer#visitArray().(length) length: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/BaseByteRenderer#visitArray().(index) index: Int -// ^^^ reference scala/Int# -// definition local1 final class $anon -// ^^^^^^^^^^ reference upickle/core/ArrVisitor# -// ^ reference ujson/BaseByteRenderer#[T] -// ^ reference ujson/BaseByteRenderer#[T] -// reference java/lang/Object#``(). - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushBuffer(). - elemBuilder.append('[') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). - - depth += 1 -// ^^^^^ reference ujson/BaseByteRenderer#depth(). -// ^^ reference scala/Int#`+`(+4). - renderIndent() -// ^^^^^^^^^^^^ reference ujson/BaseByteRenderer#renderIndent(). - def subVisitor = BaseByteRenderer.this -// ^^^^^^^^^^ definition local0 def subVisitor: BaseByteRenderer[T] -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer# - def visitValue(v: T, index: Int): Unit = { -// ^^^^^^^^^^ definition local2 def visitValue(v: T, index: Int): Unit -// ^ definition local4 v: T -// ^ reference ujson/BaseByteRenderer#[T] -// ^^^^^ definition local5 index: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Unit# - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushBuffer(). - commaBuffered = true -// ^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#commaBuffered(). - } - def visitEnd(index: Int) = { -// ^^^^^^^^ definition local3 def visitEnd(index: Int): T -// ^^^^^ definition local6 index: Int -// ^^^ reference scala/Int# - commaBuffered = false -// ^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#commaBuffered(). - depth -= 1 -// ^^^^^ reference ujson/BaseByteRenderer#depth(). -// ^^ reference scala/Int#`-`(+3). - renderIndent() -// ^^^^^^^^^^^^ reference ujson/BaseByteRenderer#renderIndent(). - elemBuilder.append(']') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). - flushByteBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushByteBuilder(). - out -// ^^^ reference ujson/BaseByteRenderer#out. - } - } - - def visitObject(length: Int, index: Int) = new ObjVisitor[T, T] { -// ^^^^^^^^^^^ definition ujson/BaseByteRenderer#visitObject(). def visitObject(length: Int, index: Int): { def subVisitor: BaseByteRenderer[T]; def visitKey(index: Int): BaseByteRenderer[T] } -// ^^^^^^ definition ujson/BaseByteRenderer#visitObject().(length) length: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/BaseByteRenderer#visitObject().(index) index: Int -// ^^^ reference scala/Int# -// definition local10 final class $anon -// ^^^^^^^^^^ reference upickle/core/ObjVisitor# -// ^ reference ujson/BaseByteRenderer#[T] -// ^ reference ujson/BaseByteRenderer#[T] -// reference java/lang/Object#``(). - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushBuffer(). - elemBuilder.append('{') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). - depth += 1 -// ^^^^^ reference ujson/BaseByteRenderer#depth(). -// ^^ reference scala/Int#`+`(+4). - renderIndent() -// ^^^^^^^^^^^^ reference ujson/BaseByteRenderer#renderIndent(). - def subVisitor = BaseByteRenderer.this -// ^^^^^^^^^^ definition local7 def subVisitor: BaseByteRenderer[T] -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer# - def visitKey(index: Int) = BaseByteRenderer.this -// ^^^^^^^^ definition local8 def visitKey(index: Int): BaseByteRenderer[T] -// ^^^^^ definition local9 index: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer# - def visitKeyValue(s: Any): Unit = { -// ^^^^^^^^^^^^^ definition local11 def visitKeyValue(s: Any): Unit -// ^ definition local14 s: Any -// ^^^ reference scala/Any# -// ^^^^ reference scala/Unit# - elemBuilder.append(':') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). - if (indent != -1) elemBuilder.append(' ') -// ^^^^^^ reference ujson/BaseByteRenderer#indent. -// ^^ reference scala/Int#`!=`(+3). -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). - } - def visitValue(v: T, index: Int): Unit = { -// ^^^^^^^^^^ definition local12 def visitValue(v: T, index: Int): Unit -// ^ definition local15 v: T -// ^ reference ujson/BaseByteRenderer#[T] -// ^^^^^ definition local16 index: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Unit# - commaBuffered = true -// ^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#commaBuffered(). - } - def visitEnd(index: Int) = { -// ^^^^^^^^ definition local13 def visitEnd(index: Int): T -// ^^^^^ definition local17 index: Int -// ^^^ reference scala/Int# - commaBuffered = false -// ^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#commaBuffered(). - depth -= 1 -// ^^^^^ reference ujson/BaseByteRenderer#depth(). -// ^^ reference scala/Int#`-`(+3). - renderIndent() -// ^^^^^^^^^^^^ reference ujson/BaseByteRenderer#renderIndent(). - elemBuilder.append('}') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). - flushByteBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushByteBuilder(). - out -// ^^^ reference ujson/BaseByteRenderer#out. - } - } - - def visitNull(index: Int) = { -// ^^^^^^^^^ definition ujson/BaseByteRenderer#visitNull(). def visitNull(index: Int): T -// ^^^^^ definition ujson/BaseByteRenderer#visitNull().(index) index: Int -// ^^^ reference scala/Int# - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushBuffer(). - elemBuilder.ensureLength(4) -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#ensureLength(). - elemBuilder.appendUnsafe('n') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('u') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('l') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('l') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - flushByteBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushByteBuilder(). - out -// ^^^ reference ujson/BaseByteRenderer#out. - } - - def visitFalse(index: Int) = { -// ^^^^^^^^^^ definition ujson/BaseByteRenderer#visitFalse(). def visitFalse(index: Int): T -// ^^^^^ definition ujson/BaseByteRenderer#visitFalse().(index) index: Int -// ^^^ reference scala/Int# - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushBuffer(). - elemBuilder.ensureLength(5) -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#ensureLength(). - elemBuilder.appendUnsafe('f') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('a') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('l') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('s') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('e') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - flushByteBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushByteBuilder(). - out -// ^^^ reference ujson/BaseByteRenderer#out. - } - - def visitTrue(index: Int) = { -// ^^^^^^^^^ definition ujson/BaseByteRenderer#visitTrue(). def visitTrue(index: Int): T -// ^^^^^ definition ujson/BaseByteRenderer#visitTrue().(index) index: Int -// ^^^ reference scala/Int# - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushBuffer(). - elemBuilder.ensureLength(4) -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#ensureLength(). - elemBuilder.appendUnsafe('t') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('r') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('u') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('e') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - flushByteBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushByteBuilder(). - out -// ^^^ reference ujson/BaseByteRenderer#out. - } - - def visitFloat64StringParts(s: CharSequence, decIndex: Int, expIndex: Int, index: Int) = { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition ujson/BaseByteRenderer#visitFloat64StringParts(). def visitFloat64StringParts(s: CharSequence, decIndex: Int, expIndex: Int, index: Int): T -// ^ definition ujson/BaseByteRenderer#visitFloat64StringParts().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^ definition ujson/BaseByteRenderer#visitFloat64StringParts().(decIndex) decIndex: Int -// ^^^ reference scala/Int# -// ^^^^^^^^ definition ujson/BaseByteRenderer#visitFloat64StringParts().(expIndex) expIndex: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/BaseByteRenderer#visitFloat64StringParts().(index) index: Int -// ^^^ reference scala/Int# - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushBuffer(). - elemBuilder.ensureLength(s.length()) -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#ensureLength(). -// ^ reference ujson/BaseByteRenderer#visitFloat64StringParts().(s) -// ^^^^^^ reference java/lang/CharSequence#length(). - var i = 0 -// ^ definition local18 i: Int - val sLength = s.length -// ^^^^^^^ definition local19 sLength: Int -// ^ reference ujson/BaseByteRenderer#visitFloat64StringParts().(s) -// ^^^^^^ reference java/lang/CharSequence#length(). - while(i < sLength){ -// ^ reference local18 -// ^ reference scala/Int#`<`(+3). -// ^^^^^^^ reference local19 - elemBuilder.appendUnsafeC(s.charAt(i)) -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafeC(). -// ^ reference ujson/BaseByteRenderer#visitFloat64StringParts().(s) -// ^^^^^^ reference java/lang/CharSequence#charAt(). -// ^ reference local18 - i += 1 -// ^ reference local18 -// ^^ reference scala/Int#`+`(+4). - } - flushByteBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushByteBuilder(). - out -// ^^^ reference ujson/BaseByteRenderer#out. - } - - override def visitFloat64(d: Double, index: Int) = { -// ^^^^^^^^^^^^ definition ujson/BaseByteRenderer#visitFloat64(). def visitFloat64(d: Double, index: Int): T -// ^ definition ujson/BaseByteRenderer#visitFloat64().(d) d: Double -// ^^^^^^ reference scala/Double# -// ^^^^^ definition ujson/BaseByteRenderer#visitFloat64().(index) index: Int -// ^^^ reference scala/Int# - d match{ -// ^ reference ujson/BaseByteRenderer#visitFloat64().(d) - case Double.PositiveInfinity => visitNonNullString("Infinity", -1) -// ^^^^^^ reference scala/Double. -// ^^^^^^^^^^^^^^^^ reference scala/Double.PositiveInfinity. -// ^^^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#visitNonNullString(). - case Double.NegativeInfinity => visitNonNullString("-Infinity", -1) -// ^^^^^^ reference scala/Double. -// ^^^^^^^^^^^^^^^^ reference scala/Double.NegativeInfinity. -// ^^^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#visitNonNullString(). - case d if java.lang.Double.isNaN(d) => visitNonNullString("NaN", -1) -// ^ definition local21 d: Double -// ^^^^ reference java/ -// ^^^^ reference java/lang/ -// ^^^^^^ reference java/lang/Double# -// ^^^^^ reference java/lang/Double#isNaN(+1). -// ^ reference local21 -// ^^^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#visitNonNullString(). - case d => -// ^ definition local22 d: Double - val i = d.toInt -// ^ definition local23 i: Int -// ^ reference local22 -// ^^^^^ reference scala/Double#toInt(). - if (d == i) visitFloat64StringParts(i.toString, -1, -1, index) -// ^ reference local22 -// ^^ reference scala/Double#`==`(+3). -// ^ reference local23 -// ^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#visitFloat64StringParts(). -// ^ reference local23 -// ^^^^^^^^ reference scala/Any#toString(). -// ^^^^^ reference ujson/BaseByteRenderer#visitFloat64().(index) - else super.visitFloat64(d, index) -// ^^^^^^^^^^^^ reference ujson/JsVisitor#visitFloat64(). -// ^ reference local22 -// ^^^^^ reference ujson/BaseByteRenderer#visitFloat64().(index) - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushBuffer(). - } - flushByteBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushByteBuilder(). - out -// ^^^ reference ujson/BaseByteRenderer#out. - } - - - def visitString(s: CharSequence, index: Int) = { -// ^^^^^^^^^^^ definition ujson/BaseByteRenderer#visitString(). def visitString(s: CharSequence, index: Int): T -// ^ definition ujson/BaseByteRenderer#visitString().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^ definition ujson/BaseByteRenderer#visitString().(index) index: Int -// ^^^ reference scala/Int# - - if (s eq null) visitNull(index) -// ^ reference ujson/BaseByteRenderer#visitString().(s) -// ^^ reference java/lang/Object#eq(). -// ^^^^^^^^^ reference ujson/BaseByteRenderer#visitNull(). -// ^^^^^ reference ujson/BaseByteRenderer#visitString().(index) - else visitNonNullString(s, index) -// ^^^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#visitNonNullString(). -// ^ reference ujson/BaseByteRenderer#visitString().(s) -// ^^^^^ reference ujson/BaseByteRenderer#visitString().(index) - } - - def visitNonNullString(s: CharSequence, index: Int) = { -// ^^^^^^^^^^^^^^^^^^ definition ujson/BaseByteRenderer#visitNonNullString(). def visitNonNullString(s: CharSequence, index: Int): T -// ^ definition ujson/BaseByteRenderer#visitNonNullString().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^ definition ujson/BaseByteRenderer#visitNonNullString().(index) index: Int -// ^^^ reference scala/Int# - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushBuffer(). - upickle.core.RenderUtils.escapeByte(unicodeCharBuilder, elemBuilder, s, escapeUnicode) -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/RenderUtils. -// ^^^^^^^^^^ reference upickle/core/RenderUtils.escapeByte(). -// ^^^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#unicodeCharBuilder. -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^ reference ujson/BaseByteRenderer#visitNonNullString().(s) -// ^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#escapeUnicode. - flushByteBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer#flushByteBuilder(). - out -// ^^^ reference ujson/BaseByteRenderer#out. - } - - final def renderIndent() = { -// ^^^^^^^^^^^^ definition ujson/BaseByteRenderer#renderIndent(). final def renderIndent(): Unit - if (indent == -1) () -// ^^^^^^ reference ujson/BaseByteRenderer#indent. -// ^^ reference scala/Int#`==`(+3). - else { - var i = indent * depth -// ^ definition local24 i: Int -// ^^^^^^ reference ujson/BaseByteRenderer#indent. -// ^ reference scala/Int#`*`(+3). -// ^^^^^ reference ujson/BaseByteRenderer#depth(). - elemBuilder.ensureLength(i + 1) -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#ensureLength(). -// ^ reference local24 -// ^ reference scala/Int#`+`(+4). - elemBuilder.appendUnsafe('\n') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - while(i > 0) { -// ^ reference local24 -// ^ reference scala/Int#`>`(+3). - elemBuilder.appendUnsafe(' ') -// ^^^^^^^^^^^ reference ujson/BaseByteRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/ByteBuilder#appendUnsafe(). - i -= 1 -// ^ reference local24 -// ^^ reference scala/Int#`-`(+3). - } - } - } -} diff --git a/tests/snapshots/src/main/generated/BaseCharRenderer.scala b/tests/snapshots/src/main/generated/BaseCharRenderer.scala deleted file mode 100644 index 70a6c70a3..000000000 --- a/tests/snapshots/src/main/generated/BaseCharRenderer.scala +++ /dev/null @@ -1,476 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ -import scala.annotation.switch -// ^^^^^ reference scala/ -// ^^^^^^^^^^ reference scala/annotation/ -// ^^^^^^ reference scala/annotation/switch# -import upickle.core.{ArrVisitor, ObjVisitor} -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^ reference upickle/core/ArrVisitor# -// ^^^^^^^^^^ reference upickle/core/ObjVisitor# - -/** - * A specialized JSON renderer that can render Chars (Chars or Bytes) directly - * to a [[java.io.Writer]] or [[java.io.OutputStream]] - * - * Note that we use an internal `CharBuilder` to buffer the output internally - * before sending it to [[out]] in batches. This lets us benefit from the high - * performance and minimal overhead of `CharBuilder` in the fast path of - * pushing characters, and avoid the synchronization/polymorphism overhead of - * [[out]] on the fast path. Most [[out]]s would also have performance - * benefits from receiving data in batches, rather than elem by elem. - */ -class BaseCharRenderer[T <: upickle.core.CharOps.Output] -// ^^^^^^^^^^^^^^^^ definition ujson/BaseCharRenderer# class BaseCharRenderer[T <: Output] -// ^^^^^^^^^^^^^^^^ definition ujson/BaseCharRenderer. object BaseCharRenderer -// ^ definition ujson/BaseCharRenderer#[T] T <: Output -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^ reference upickle/core/CharOps. -// ^^^^^^ reference upickle/core/CharOps.Output# - (out: T, -// ^^^ definition ujson/BaseCharRenderer#out. private[this] val out: T -// ^^^ definition ujson/BaseCharRenderer#``().(out) out: T -// ^ reference ujson/BaseCharRenderer#[T] - indent: Int = -1, -// ^^^^^^ definition ujson/BaseCharRenderer#indent. private[this] val indent: Int -// ^^^^^^ definition ujson/BaseCharRenderer#``().(indent) default indent: Int -// ^^^ reference scala/Int# - escapeUnicode: Boolean = false) extends JsVisitor[T, T]{ -// ^^^^^^^^^^^^^ definition ujson/BaseCharRenderer#escapeUnicode. private[this] val escapeUnicode: Boolean -// ^^^^^^^^^^^^^ definition ujson/BaseCharRenderer#``().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# -// ^^^^^^^^^ reference ujson/JsVisitor# -// ^ reference ujson/BaseCharRenderer#[T] -// ^ reference ujson/BaseCharRenderer#[T] -// reference java/lang/Object#``(). - private[this] val elemBuilder = new upickle.core.CharBuilder -// ^^^^^^^^^^^ definition ujson/BaseCharRenderer#elemBuilder. private[this] val elemBuilder: CharBuilder -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/CharBuilder# -// reference upickle/core/CharBuilder#``(). - private[this] val unicodeCharBuilder = new upickle.core.CharBuilder() -// ^^^^^^^^^^^^^^^^^^ definition ujson/BaseCharRenderer#unicodeCharBuilder. private[this] val unicodeCharBuilder: CharBuilder -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/CharBuilder# -// reference upickle/core/CharBuilder#``(). - def flushCharBuilder() = { -// ^^^^^^^^^^^^^^^^ definition ujson/BaseCharRenderer#flushCharBuilder(). def flushCharBuilder(): Unit - elemBuilder.writeOutToIfLongerThan(out, if (depth == 0) 0 else 1000) -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/CharBuilder#writeOutToIfLongerThan(). -// ^^^ reference ujson/BaseCharRenderer#out. -// ^^^^^ reference ujson/BaseCharRenderer#depth(). -// ^^ reference scala/Int#`==`(+3). - } - - private[this] var depth: Int = 0 -// ^^^^^ definition ujson/BaseCharRenderer#depth(). private[this] var depth: Int -// ^^^^^ definition ujson/BaseCharRenderer#`depth_=`(). private[this] var depth_=(x$1: Int): Unit -// ^^^ reference scala/Int# - - - private[this] var commaBuffered = false -// ^^^^^^^^^^^^^ definition ujson/BaseCharRenderer#commaBuffered(). private[this] var commaBuffered: Boolean -// ^^^^^^^^^^^^^ definition ujson/BaseCharRenderer#`commaBuffered_=`(). private[this] var commaBuffered_=(x$1: Boolean): Unit - - def flushBuffer() = { -// ^^^^^^^^^^^ definition ujson/BaseCharRenderer#flushBuffer(). def flushBuffer(): Unit - if (commaBuffered) { -// ^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#commaBuffered(). - commaBuffered = false -// ^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#commaBuffered(). - elemBuilder.append(',') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). - renderIndent() -// ^^^^^^^^^^^^ reference ujson/BaseCharRenderer#renderIndent(). - } - } - def visitArray(length: Int, index: Int) = new ArrVisitor[T, T] { -// ^^^^^^^^^^ definition ujson/BaseCharRenderer#visitArray(). def visitArray(length: Int, index: Int): { def subVisitor: BaseCharRenderer[T] } -// ^^^^^^ definition ujson/BaseCharRenderer#visitArray().(length) length: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/BaseCharRenderer#visitArray().(index) index: Int -// ^^^ reference scala/Int# -// definition local1 final class $anon -// ^^^^^^^^^^ reference upickle/core/ArrVisitor# -// ^ reference ujson/BaseCharRenderer#[T] -// ^ reference ujson/BaseCharRenderer#[T] -// reference java/lang/Object#``(). - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushBuffer(). - elemBuilder.append('[') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). - - depth += 1 -// ^^^^^ reference ujson/BaseCharRenderer#depth(). -// ^^ reference scala/Int#`+`(+4). - renderIndent() -// ^^^^^^^^^^^^ reference ujson/BaseCharRenderer#renderIndent(). - def subVisitor = BaseCharRenderer.this -// ^^^^^^^^^^ definition local0 def subVisitor: BaseCharRenderer[T] -// ^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer# - def visitValue(v: T, index: Int): Unit = { -// ^^^^^^^^^^ definition local2 def visitValue(v: T, index: Int): Unit -// ^ definition local4 v: T -// ^ reference ujson/BaseCharRenderer#[T] -// ^^^^^ definition local5 index: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Unit# - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushBuffer(). - commaBuffered = true -// ^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#commaBuffered(). - } - def visitEnd(index: Int) = { -// ^^^^^^^^ definition local3 def visitEnd(index: Int): T -// ^^^^^ definition local6 index: Int -// ^^^ reference scala/Int# - commaBuffered = false -// ^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#commaBuffered(). - depth -= 1 -// ^^^^^ reference ujson/BaseCharRenderer#depth(). -// ^^ reference scala/Int#`-`(+3). - renderIndent() -// ^^^^^^^^^^^^ reference ujson/BaseCharRenderer#renderIndent(). - elemBuilder.append(']') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). - flushCharBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushCharBuilder(). - out -// ^^^ reference ujson/BaseCharRenderer#out. - } - } - - def visitObject(length: Int, index: Int) = new ObjVisitor[T, T] { -// ^^^^^^^^^^^ definition ujson/BaseCharRenderer#visitObject(). def visitObject(length: Int, index: Int): { def subVisitor: BaseCharRenderer[T]; def visitKey(index: Int): BaseCharRenderer[T] } -// ^^^^^^ definition ujson/BaseCharRenderer#visitObject().(length) length: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/BaseCharRenderer#visitObject().(index) index: Int -// ^^^ reference scala/Int# -// definition local10 final class $anon -// ^^^^^^^^^^ reference upickle/core/ObjVisitor# -// ^ reference ujson/BaseCharRenderer#[T] -// ^ reference ujson/BaseCharRenderer#[T] -// reference java/lang/Object#``(). - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushBuffer(). - elemBuilder.append('{') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). - depth += 1 -// ^^^^^ reference ujson/BaseCharRenderer#depth(). -// ^^ reference scala/Int#`+`(+4). - renderIndent() -// ^^^^^^^^^^^^ reference ujson/BaseCharRenderer#renderIndent(). - def subVisitor = BaseCharRenderer.this -// ^^^^^^^^^^ definition local7 def subVisitor: BaseCharRenderer[T] -// ^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer# - def visitKey(index: Int) = BaseCharRenderer.this -// ^^^^^^^^ definition local8 def visitKey(index: Int): BaseCharRenderer[T] -// ^^^^^ definition local9 index: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer# - def visitKeyValue(s: Any): Unit = { -// ^^^^^^^^^^^^^ definition local11 def visitKeyValue(s: Any): Unit -// ^ definition local14 s: Any -// ^^^ reference scala/Any# -// ^^^^ reference scala/Unit# - elemBuilder.append(':') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). - if (indent != -1) elemBuilder.append(' ') -// ^^^^^^ reference ujson/BaseCharRenderer#indent. -// ^^ reference scala/Int#`!=`(+3). -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). - } - def visitValue(v: T, index: Int): Unit = { -// ^^^^^^^^^^ definition local12 def visitValue(v: T, index: Int): Unit -// ^ definition local15 v: T -// ^ reference ujson/BaseCharRenderer#[T] -// ^^^^^ definition local16 index: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Unit# - commaBuffered = true -// ^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#commaBuffered(). - } - def visitEnd(index: Int) = { -// ^^^^^^^^ definition local13 def visitEnd(index: Int): T -// ^^^^^ definition local17 index: Int -// ^^^ reference scala/Int# - commaBuffered = false -// ^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#commaBuffered(). - depth -= 1 -// ^^^^^ reference ujson/BaseCharRenderer#depth(). -// ^^ reference scala/Int#`-`(+3). - renderIndent() -// ^^^^^^^^^^^^ reference ujson/BaseCharRenderer#renderIndent(). - elemBuilder.append('}') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). - flushCharBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushCharBuilder(). - out -// ^^^ reference ujson/BaseCharRenderer#out. - } - } - - def visitNull(index: Int) = { -// ^^^^^^^^^ definition ujson/BaseCharRenderer#visitNull(). def visitNull(index: Int): T -// ^^^^^ definition ujson/BaseCharRenderer#visitNull().(index) index: Int -// ^^^ reference scala/Int# - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushBuffer(). - elemBuilder.ensureLength(4) -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#ensureLength(). - elemBuilder.appendUnsafe('n') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('u') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('l') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('l') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - flushCharBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushCharBuilder(). - out -// ^^^ reference ujson/BaseCharRenderer#out. - } - - def visitFalse(index: Int) = { -// ^^^^^^^^^^ definition ujson/BaseCharRenderer#visitFalse(). def visitFalse(index: Int): T -// ^^^^^ definition ujson/BaseCharRenderer#visitFalse().(index) index: Int -// ^^^ reference scala/Int# - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushBuffer(). - elemBuilder.ensureLength(5) -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#ensureLength(). - elemBuilder.appendUnsafe('f') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('a') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('l') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('s') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('e') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - flushCharBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushCharBuilder(). - out -// ^^^ reference ujson/BaseCharRenderer#out. - } - - def visitTrue(index: Int) = { -// ^^^^^^^^^ definition ujson/BaseCharRenderer#visitTrue(). def visitTrue(index: Int): T -// ^^^^^ definition ujson/BaseCharRenderer#visitTrue().(index) index: Int -// ^^^ reference scala/Int# - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushBuffer(). - elemBuilder.ensureLength(4) -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#ensureLength(). - elemBuilder.appendUnsafe('t') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('r') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('u') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - elemBuilder.appendUnsafe('e') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - flushCharBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushCharBuilder(). - out -// ^^^ reference ujson/BaseCharRenderer#out. - } - - def visitFloat64StringParts(s: CharSequence, decIndex: Int, expIndex: Int, index: Int) = { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition ujson/BaseCharRenderer#visitFloat64StringParts(). def visitFloat64StringParts(s: CharSequence, decIndex: Int, expIndex: Int, index: Int): T -// ^ definition ujson/BaseCharRenderer#visitFloat64StringParts().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^ definition ujson/BaseCharRenderer#visitFloat64StringParts().(decIndex) decIndex: Int -// ^^^ reference scala/Int# -// ^^^^^^^^ definition ujson/BaseCharRenderer#visitFloat64StringParts().(expIndex) expIndex: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/BaseCharRenderer#visitFloat64StringParts().(index) index: Int -// ^^^ reference scala/Int# - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushBuffer(). - elemBuilder.ensureLength(s.length()) -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#ensureLength(). -// ^ reference ujson/BaseCharRenderer#visitFloat64StringParts().(s) -// ^^^^^^ reference java/lang/CharSequence#length(). - var i = 0 -// ^ definition local18 i: Int - val sLength = s.length -// ^^^^^^^ definition local19 sLength: Int -// ^ reference ujson/BaseCharRenderer#visitFloat64StringParts().(s) -// ^^^^^^ reference java/lang/CharSequence#length(). - while(i < sLength){ -// ^ reference local18 -// ^ reference scala/Int#`<`(+3). -// ^^^^^^^ reference local19 - elemBuilder.appendUnsafeC(s.charAt(i)) -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafeC(). -// ^ reference ujson/BaseCharRenderer#visitFloat64StringParts().(s) -// ^^^^^^ reference java/lang/CharSequence#charAt(). -// ^ reference local18 - i += 1 -// ^ reference local18 -// ^^ reference scala/Int#`+`(+4). - } - flushCharBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushCharBuilder(). - out -// ^^^ reference ujson/BaseCharRenderer#out. - } - - override def visitFloat64(d: Double, index: Int) = { -// ^^^^^^^^^^^^ definition ujson/BaseCharRenderer#visitFloat64(). def visitFloat64(d: Double, index: Int): T -// ^ definition ujson/BaseCharRenderer#visitFloat64().(d) d: Double -// ^^^^^^ reference scala/Double# -// ^^^^^ definition ujson/BaseCharRenderer#visitFloat64().(index) index: Int -// ^^^ reference scala/Int# - d match{ -// ^ reference ujson/BaseCharRenderer#visitFloat64().(d) - case Double.PositiveInfinity => visitNonNullString("Infinity", -1) -// ^^^^^^ reference scala/Double. -// ^^^^^^^^^^^^^^^^ reference scala/Double.PositiveInfinity. -// ^^^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#visitNonNullString(). - case Double.NegativeInfinity => visitNonNullString("-Infinity", -1) -// ^^^^^^ reference scala/Double. -// ^^^^^^^^^^^^^^^^ reference scala/Double.NegativeInfinity. -// ^^^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#visitNonNullString(). - case d if java.lang.Double.isNaN(d) => visitNonNullString("NaN", -1) -// ^ definition local21 d: Double -// ^^^^ reference java/ -// ^^^^ reference java/lang/ -// ^^^^^^ reference java/lang/Double# -// ^^^^^ reference java/lang/Double#isNaN(+1). -// ^ reference local21 -// ^^^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#visitNonNullString(). - case d => -// ^ definition local22 d: Double - val i = d.toInt -// ^ definition local23 i: Int -// ^ reference local22 -// ^^^^^ reference scala/Double#toInt(). - if (d == i) visitFloat64StringParts(i.toString, -1, -1, index) -// ^ reference local22 -// ^^ reference scala/Double#`==`(+3). -// ^ reference local23 -// ^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#visitFloat64StringParts(). -// ^ reference local23 -// ^^^^^^^^ reference scala/Any#toString(). -// ^^^^^ reference ujson/BaseCharRenderer#visitFloat64().(index) - else super.visitFloat64(d, index) -// ^^^^^^^^^^^^ reference ujson/JsVisitor#visitFloat64(). -// ^ reference local22 -// ^^^^^ reference ujson/BaseCharRenderer#visitFloat64().(index) - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushBuffer(). - } - flushCharBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushCharBuilder(). - out -// ^^^ reference ujson/BaseCharRenderer#out. - } - - - def visitString(s: CharSequence, index: Int) = { -// ^^^^^^^^^^^ definition ujson/BaseCharRenderer#visitString(). def visitString(s: CharSequence, index: Int): T -// ^ definition ujson/BaseCharRenderer#visitString().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^ definition ujson/BaseCharRenderer#visitString().(index) index: Int -// ^^^ reference scala/Int# - - if (s eq null) visitNull(index) -// ^ reference ujson/BaseCharRenderer#visitString().(s) -// ^^ reference java/lang/Object#eq(). -// ^^^^^^^^^ reference ujson/BaseCharRenderer#visitNull(). -// ^^^^^ reference ujson/BaseCharRenderer#visitString().(index) - else visitNonNullString(s, index) -// ^^^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#visitNonNullString(). -// ^ reference ujson/BaseCharRenderer#visitString().(s) -// ^^^^^ reference ujson/BaseCharRenderer#visitString().(index) - } - - def visitNonNullString(s: CharSequence, index: Int) = { -// ^^^^^^^^^^^^^^^^^^ definition ujson/BaseCharRenderer#visitNonNullString(). def visitNonNullString(s: CharSequence, index: Int): T -// ^ definition ujson/BaseCharRenderer#visitNonNullString().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^ definition ujson/BaseCharRenderer#visitNonNullString().(index) index: Int -// ^^^ reference scala/Int# - flushBuffer() -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushBuffer(). - upickle.core.RenderUtils.escapeChar(unicodeCharBuilder, elemBuilder, s, escapeUnicode) -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/RenderUtils. -// ^^^^^^^^^^ reference upickle/core/RenderUtils.escapeChar(). -// ^^^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#unicodeCharBuilder. -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^ reference ujson/BaseCharRenderer#visitNonNullString().(s) -// ^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#escapeUnicode. - flushCharBuilder() -// ^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer#flushCharBuilder(). - out -// ^^^ reference ujson/BaseCharRenderer#out. - } - - final def renderIndent() = { -// ^^^^^^^^^^^^ definition ujson/BaseCharRenderer#renderIndent(). final def renderIndent(): Unit - if (indent == -1) () -// ^^^^^^ reference ujson/BaseCharRenderer#indent. -// ^^ reference scala/Int#`==`(+3). - else { - var i = indent * depth -// ^ definition local24 i: Int -// ^^^^^^ reference ujson/BaseCharRenderer#indent. -// ^ reference scala/Int#`*`(+3). -// ^^^^^ reference ujson/BaseCharRenderer#depth(). - elemBuilder.ensureLength(i + 1) -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#ensureLength(). -// ^ reference local24 -// ^ reference scala/Int#`+`(+4). - elemBuilder.appendUnsafe('\n') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - while(i > 0) { -// ^ reference local24 -// ^ reference scala/Int#`>`(+3). - elemBuilder.appendUnsafe(' ') -// ^^^^^^^^^^^ reference ujson/BaseCharRenderer#elemBuilder. -// ^^^^^^^^^^^^ reference upickle/core/CharBuilder#appendUnsafe(). - i -= 1 -// ^ reference local24 -// ^^ reference scala/Int#`-`(+3). - } - } - } -} diff --git a/tests/snapshots/src/main/generated/ByteParser.scala b/tests/snapshots/src/main/generated/ByteParser.scala deleted file mode 100644 index 46ac91bea..000000000 --- a/tests/snapshots/src/main/generated/ByteParser.scala +++ /dev/null @@ -1,1931 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ -import java.io.StringWriter -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^^ reference java/io/StringWriter# - -import upickle.core.{Abort, AbortException, ObjArrVisitor, ObjVisitor, Visitor} -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^ reference upickle/core/Abort. -// ^^^^^ reference upickle/core/Abort# -// ^^^^^^^^^^^^^^ reference upickle/core/AbortException. -// ^^^^^^^^^^^^^^ reference upickle/core/AbortException# -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^^^^^^^^^^ reference upickle/core/ObjVisitor# -// ^^^^^^^ reference upickle/core/Visitor. -// ^^^^^^^ reference upickle/core/Visitor# -import java.nio.charset.Charset -// ^^^^ reference java/ -// ^^^ reference java/nio/ -// ^^^^^^^ reference java/nio/charset/ -// ^^^^^^^ reference java/nio/charset/Charset# - - -import scala.annotation.{switch, tailrec} -// ^^^^^ reference scala/ -// ^^^^^^^^^^ reference scala/annotation/ -// ^^^^^^ reference scala/annotation/switch# -// ^^^^^^^ reference scala/annotation/tailrec# - -/** - * A specialized JSON parse that can parse Bytes (Chars or Bytes), sending - * method calls to the given [[upickle.core.Visitor]]. - * - * Generally has a lot of tricks for performance: e.g. having duplicate - * implementations for nested v.s. top-level parsing, using an `ByteBuilder` - * to construct the `CharSequences` that `visitString` requires, etc. - */ -abstract class ByteParser[J] extends upickle.core.BufferingByteParser{ -// ^^^^^^^^^^ definition ujson/ByteParser# abstract class ByteParser[J] -// ^ definition ujson/ByteParser#[J] J -// definition ujson/ByteParser#``(). def this() -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser# - private[this] val elemOps = upickle.core.ByteOps -// ^^^^^^^ definition ujson/ByteParser#elemOps. private[this] val elemOps: -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^ reference upickle/core/ByteOps. - private[this] val outputBuilder = new upickle.core.ByteBuilder() -// ^^^^^^^^^^^^^ definition ujson/ByteParser#outputBuilder. private[this] val outputBuilder: ByteBuilder -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/ByteBuilder# -// reference upickle/core/ByteBuilder#``(). - - def requestUntilOrThrow(i: Int) = { -// ^^^^^^^^^^^^^^^^^^^ definition ujson/ByteParser#requestUntilOrThrow(). def requestUntilOrThrow(i: Int): Unit -// ^ definition ujson/ByteParser#requestUntilOrThrow().(i) i: Int -// ^^^ reference scala/Int# - if (requestUntil(i)) throw new IncompleteParseException("exhausted input") -// ^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#requestUntil(). -// ^ reference ujson/ByteParser#requestUntilOrThrow().(i) -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/IncompleteParseException# -// reference ujson/IncompleteParseException#``(). - } - override def getByteSafe(i: Int): Byte = { -// ^^^^^^^^^^^ definition ujson/ByteParser#getByteSafe(). def getByteSafe(i: Int): Byte -// ^ definition ujson/ByteParser#getByteSafe().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Byte# - requestUntilOrThrow(i) -// ^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#requestUntilOrThrow(). -// ^ reference ujson/ByteParser#getByteSafe().(i) - getByteUnsafe(i) -// ^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#getByteUnsafe(). -// ^ reference ujson/ByteParser#getByteSafe().(i) - } - - /** - * Return true iff 'i' is at or beyond the end of the input (EOF). - */ - protected[this] def atEof(i: Int) = requestUntil(i) -// ^^^^^ definition ujson/ByteParser#atEof(). def atEof(i: Int): Boolean -// ^ definition ujson/ByteParser#atEof().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#requestUntil(). -// ^ reference ujson/ByteParser#atEof().(i) - - /** - * Should be called when parsing is finished. - */ - protected[this] def close(): Unit -// ^^^^^ definition ujson/ByteParser#close(). def close(): Unit -// ^^^^ reference scala/Unit# - - /** - * Valid parser states. - */ - @inline private[this] final val ARRBEG = 6 -// ^^^^^^ reference scala/inline# -// reference scala/inline#``(). -// ^^^^^^ definition ujson/ByteParser#ARRBEG. @inline private[this] final val ARRBEG: 6 - @inline private[this] final val OBJBEG = 7 -// ^^^^^^ reference scala/inline# -// reference scala/inline#``(). -// ^^^^^^ definition ujson/ByteParser#OBJBEG. @inline private[this] final val OBJBEG: 7 - @inline private[this] final val DATA = 1 -// ^^^^^^ reference scala/inline# -// reference scala/inline#``(). -// ^^^^ definition ujson/ByteParser#DATA. @inline private[this] final val DATA: 1 - @inline private[this] final val KEY = 2 -// ^^^^^^ reference scala/inline# -// reference scala/inline#``(). -// ^^^ definition ujson/ByteParser#KEY. @inline private[this] final val KEY: 2 - @inline private[this] final val COLON = 3 -// ^^^^^^ reference scala/inline# -// reference scala/inline#``(). -// ^^^^^ definition ujson/ByteParser#COLON. @inline private[this] final val COLON: 3 - @inline private[this] final val ARREND = 4 -// ^^^^^^ reference scala/inline# -// reference scala/inline#``(). -// ^^^^^^ definition ujson/ByteParser#ARREND. @inline private[this] final val ARREND: 4 - @inline private[this] final val OBJEND = 5 -// ^^^^^^ reference scala/inline# -// reference scala/inline#``(). -// ^^^^^^ definition ujson/ByteParser#OBJEND. @inline private[this] final val OBJEND: 5 - - /** - * Parse the JSON document into a single JSON value. - * - * The parser considers documents like '333', 'true', and '"foo"' to be - * valid, as well as more traditional documents like [1,2,3,4,5]. However, - * multiple top-level objects are not allowed. - */ - final def parse(facade: Visitor[_, J]): J = { -// ^^^^^ definition ujson/ByteParser#parse(). final def parse(facade: Visitor[local0, J[): J -// ^^^^^^ definition ujson/ByteParser#parse().(facade) facade: Visitor[local0, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] -// ^ reference ujson/ByteParser#[J] - val (value, i) = parseTopLevel(0, facade) -// ^^^^^ definition local2 value: J -// ^ definition local3 i: Int -// ^^^^^^^^^^^^^ reference ujson/ByteParser#parseTopLevel(). -// ^^^^^^ reference ujson/ByteParser#parse().(facade) - var j = i -// ^ definition local4 j: Int -// ^ reference local3 - while (!atEof(j)) { -// ^ reference scala/Boolean#`unary_!`(). -// ^^^^^ reference ujson/ByteParser#atEof(). -// ^ reference local4 - (getByteSafe(j): @switch) match { -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local4 - case '\n' | ' ' | '\t' | '\r' => j += 1 -// ^ reference local4 -// ^^ reference scala/Int#`+`(+4). - case _ => die(j, "expected whitespace or eof") -// ^^^ reference ujson/ByteParser#die(). -// ^ reference local4 - } - } - if (!atEof(j)) die(j, "expected eof") -// ^ reference scala/Boolean#`unary_!`(). -// ^^^^^ reference ujson/ByteParser#atEof(). -// ^ reference local4 -// ^^^ reference ujson/ByteParser#die(). -// ^ reference local4 - close() -// ^^^^^ reference ujson/ByteParser#close(). - value -// ^^^^^ reference local2 - } - - /** - * Used to generate error messages with character info and offsets. - */ - protected[this] def die(i: Int, msg: String): Nothing = { -// ^^^ definition ujson/ByteParser#die(). def die(i: Int, msg: String): Nothing -// ^ definition ujson/ByteParser#die().(i) i: Int -// ^^^ reference scala/Int# -// ^^^ definition ujson/ByteParser#die().(msg) msg: String -// ^^^^^^ reference scala/Predef.String# -// ^^^^^^^ reference scala/Nothing# - val out = new upickle.core.ByteBuilder() -// ^^^ definition local6 out: ByteBuilder -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/ByteBuilder# -// reference upickle/core/ByteBuilder#``(). - upickle.core.RenderUtils.escapeByte( -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/RenderUtils. -// ^^^^^^^^^^ reference upickle/core/RenderUtils.escapeByte(). - new upickle.core.CharBuilder(), -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/CharBuilder# -// reference upickle/core/CharBuilder#``(). - out, -// ^^^ reference local6 - new ArrayCharSequence(Array(elemOps.toInt(getByteSafe(i)).toChar)), -// ^^^^^^^^^^^^^^^^^ reference scala/Predef.ArrayCharSequence# -// reference scala/Predef.ArrayCharSequence#``(). -// ^^^^^ reference scala/Array. -// ^^^^^^^ reference ujson/ByteParser#elemOps. -// ^^^^^ reference upickle/core/ByteOps.toInt(). -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference ujson/ByteParser#die().(i) -// ^^^^^^ reference scala/Int#toChar(). - unicode = false -// ^^^^^^^ reference upickle/core/RenderUtils.escapeByte().(unicode) - ) - val s = "%s got %s" format (msg, out.makeString()) -// ^ definition local7 s: String -// ^^^^^^ reference scala/collection/StringOps#format(). -// ^^^ reference ujson/ByteParser#die().(msg) -// ^^^ reference local6 -// ^^^^^^^^^^ reference upickle/core/ByteBuilder#makeString(). - throw ParseException(s, i) -// ^^^^^^^^^^^^^^ reference ujson/ParseException. -// ^ reference local7 -// ^ reference ujson/ByteParser#die().(i) - } - - - /** - * Parse the given number, and add it to the given context. - * - * We don't actually instantiate a number here, but rather pass the - * string of for future use. Facades can choose to be lazy and just - * store the string. This ends up being way faster and has the nice - * side-effect that we know exactly how the user represented the - * number. - */ - protected[this] final def parseNum(i: Int, ctxt: ObjArrVisitor[Any, J], facade: Visitor[_, J]): Int = { -// ^^^^^^^^ definition ujson/ByteParser#parseNum(). final def parseNum(i: Int, ctxt: ObjArrVisitor[Any, J], facade: Visitor[local8, J[): Int -// ^ definition ujson/ByteParser#parseNum().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^ definition ujson/ByteParser#parseNum().(ctxt) ctxt: ObjArrVisitor[Any, J] -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^^^ reference scala/Any# -// ^ reference ujson/ByteParser#[J] -// ^^^^^^ definition ujson/ByteParser#parseNum().(facade) facade: Visitor[local8, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] -// ^^^ reference scala/Int# - var j = i -// ^ definition local9 j: Int -// ^ reference ujson/ByteParser#parseNum().(i) - var c = getByteSafe(j) -// ^ definition local10 c: Byte -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local9 - var decIndex = -1 -// ^^^^^^^^ definition local11 decIndex: Int - var expIndex = -1 -// ^^^^^^^^ definition local12 expIndex: Int - - if (c == '-') { -// ^ reference local10 -// ^^ reference scala/Byte#`==`(+2). - j += 1 -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getByteSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local9 - } - if (c == '0') { -// ^ reference local10 -// ^^ reference scala/Byte#`==`(+2). - j += 1 -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getByteSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local9 - } else { - val j0 = j -// ^^ definition local13 j0: Int -// ^ reference local9 - while (elemOps.within('0', c, '9')) { -// ^^^^^^^ reference ujson/ByteParser#elemOps. -// ^^^^^^ reference upickle/core/ByteOps.within(). -// ^ reference local10 - j += 1; -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getByteSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local9 - } - if (j == j0) die(i, "expected digit") -// ^ reference local9 -// ^^ reference scala/Int#`==`(+3). -// ^^ reference local13 -// ^^^ reference ujson/ByteParser#die(). -// ^ reference ujson/ByteParser#parseNum().(i) - } - - if (c == '.') { -// ^ reference local10 -// ^^ reference scala/Byte#`==`(+2). - decIndex = j - i -// ^^^^^^^^ reference local11 -// ^ reference local9 -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/ByteParser#parseNum().(i) - j += 1 -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getByteSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local9 - val j0 = j -// ^^ definition local15 j0: Int -// ^ reference local9 - while (elemOps.within('0', c, '9')) { -// ^^^^^^^ reference ujson/ByteParser#elemOps. -// ^^^^^^ reference upickle/core/ByteOps.within(). -// ^ reference local10 - j += 1 -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getByteSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local9 - } - if (j0 == j) die(i, "expected digit") -// ^^ reference local15 -// ^^ reference scala/Int#`==`(+3). -// ^ reference local9 -// ^^^ reference ujson/ByteParser#die(). -// ^ reference ujson/ByteParser#parseNum().(i) - } - - if (c == 'e' || c == 'E') { -// ^ reference local10 -// ^^ reference scala/Byte#`==`(+2). -// ^^ reference scala/Boolean#`||`(). -// ^ reference local10 -// ^^ reference scala/Byte#`==`(+2). - expIndex = j - i -// ^^^^^^^^ reference local12 -// ^ reference local9 -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/ByteParser#parseNum().(i) - j += 1 -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getByteSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local9 - if (c == '+' || c == '-') { -// ^ reference local10 -// ^^ reference scala/Byte#`==`(+2). -// ^^ reference scala/Boolean#`||`(). -// ^ reference local10 -// ^^ reference scala/Byte#`==`(+2). - j += 1 -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getByteSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local9 - } - val j0 = j -// ^^ definition local17 j0: Int -// ^ reference local9 - while (elemOps.within('0', c, '9')) { -// ^^^^^^^ reference ujson/ByteParser#elemOps. -// ^^^^^^ reference upickle/core/ByteOps.within(). -// ^ reference local10 - j += 1 -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getByteSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local9 - } - if (j0 == j) die(i, "expected digit") -// ^^ reference local17 -// ^^ reference scala/Int#`==`(+3). -// ^ reference local9 -// ^^^ reference ujson/ByteParser#die(). -// ^ reference ujson/ByteParser#parseNum().(i) - } - - ctxt.visitValue(visitFloat64StringPartsWithWrapper(facade, decIndex, expIndex, i, j), i) -// ^^^^ reference ujson/ByteParser#parseNum().(ctxt) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#visitFloat64StringPartsWithWrapper(). -// ^^^^^^ reference ujson/ByteParser#parseNum().(facade) -// ^^^^^^^^ reference local11 -// ^^^^^^^^ reference local12 -// ^ reference ujson/ByteParser#parseNum().(i) -// ^ reference local9 -// ^ reference ujson/ByteParser#parseNum().(i) - j -// ^ reference local9 - } - - def visitFloat64StringPartsWithWrapper(facade: Visitor[_, J], -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition ujson/ByteParser#visitFloat64StringPartsWithWrapper(). def visitFloat64StringPartsWithWrapper(facade: Visitor[local19, J[, decIndex: Int, expIndex: Int, i: Int, j: Int): J -// ^^^^^^ definition ujson/ByteParser#visitFloat64StringPartsWithWrapper().(facade) facade: Visitor[local19, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] - decIndex: Int, -// ^^^^^^^^ definition ujson/ByteParser#visitFloat64StringPartsWithWrapper().(decIndex) decIndex: Int -// ^^^ reference scala/Int# - expIndex: Int, -// ^^^^^^^^ definition ujson/ByteParser#visitFloat64StringPartsWithWrapper().(expIndex) expIndex: Int -// ^^^ reference scala/Int# - i: Int, -// ^ definition ujson/ByteParser#visitFloat64StringPartsWithWrapper().(i) i: Int -// ^^^ reference scala/Int# - j: Int) = { -// ^ definition ujson/ByteParser#visitFloat64StringPartsWithWrapper().(j) j: Int -// ^^^ reference scala/Int# - facade.visitFloat64StringParts( -// ^^^^^^ reference ujson/ByteParser#visitFloat64StringPartsWithWrapper().(facade) -// ^^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/Visitor#visitFloat64StringParts(). - unsafeCharSeqForRange(i, j - i), -// ^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#unsafeCharSeqForRange(). -// ^ reference ujson/ByteParser#visitFloat64StringPartsWithWrapper().(i) -// ^ reference ujson/ByteParser#visitFloat64StringPartsWithWrapper().(j) -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/ByteParser#visitFloat64StringPartsWithWrapper().(i) - decIndex, -// ^^^^^^^^ reference ujson/ByteParser#visitFloat64StringPartsWithWrapper().(decIndex) - expIndex, -// ^^^^^^^^ reference ujson/ByteParser#visitFloat64StringPartsWithWrapper().(expIndex) - i -// ^ reference ujson/ByteParser#visitFloat64StringPartsWithWrapper().(i) - ) - } - - /** - * Parse the given number, and add it to the given context. - * - * This method is a bit slower than parseNum() because it has to be - * sure it doesn't run off the end of the input. - * - * Normally (when operating in rparse in the context of an outer - * array or object) we don't need to worry about this and can just - * grab characters, because if we run out of characters that would - * indicate bad input. This is for cases where the number could - * possibly be followed by a valid EOF. - * - * This method has all the same caveats as the previous method. - */ - protected[this] final def parseNumTopLevel(i: Int, facade: Visitor[_, J]): (J, Int) = { -// ^^^^^^^^^^^^^^^^ definition ujson/ByteParser#parseNumTopLevel(). final def parseNumTopLevel(i: Int, facade: Visitor[local20, J[): (J, Int) -// ^ definition ujson/ByteParser#parseNumTopLevel().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/ByteParser#parseNumTopLevel().(facade) facade: Visitor[local20, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] -// ^ reference ujson/ByteParser#[J] -// ^^^ reference scala/Int# - var j = i -// ^ definition local21 j: Int -// ^ reference ujson/ByteParser#parseNumTopLevel().(i) - var c = getByteSafe(j) -// ^ definition local22 c: Byte -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local21 - var decIndex = -1 -// ^^^^^^^^ definition local23 decIndex: Int - var expIndex = -1 -// ^^^^^^^^ definition local24 expIndex: Int - - if (c == '-') { -// ^ reference local22 -// ^^ reference scala/Byte#`==`(+2). - // any valid input will require at least one digit after - - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - c = getByteSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local21 - } - if (c == '0') { -// ^ reference local22 -// ^^ reference scala/Byte#`==`(+2). - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - if (atEof(j)) { -// ^^^^^ reference ujson/ByteParser#atEof(). -// ^ reference local21 - return (visitFloat64StringPartsWithWrapper(facade, decIndex, expIndex, i, j), j) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#visitFloat64StringPartsWithWrapper(). -// ^^^^^^ reference ujson/ByteParser#parseNumTopLevel().(facade) -// ^^^^^^^^ reference local23 -// ^^^^^^^^ reference local24 -// ^ reference ujson/ByteParser#parseNumTopLevel().(i) -// ^ reference local21 -// ^ reference local21 - } - c = getByteSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local21 - } else { - val j0 = j -// ^^ definition local25 j0: Int -// ^ reference local21 - while (elemOps.within('0', c, '9')) { -// ^^^^^^^ reference ujson/ByteParser#elemOps. -// ^^^^^^ reference upickle/core/ByteOps.within(). -// ^ reference local22 - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - if (atEof(j)) { -// ^^^^^ reference ujson/ByteParser#atEof(). -// ^ reference local21 - return (visitFloat64StringPartsWithWrapper(facade, decIndex, expIndex, i, j), j) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#visitFloat64StringPartsWithWrapper(). -// ^^^^^^ reference ujson/ByteParser#parseNumTopLevel().(facade) -// ^^^^^^^^ reference local23 -// ^^^^^^^^ reference local24 -// ^ reference ujson/ByteParser#parseNumTopLevel().(i) -// ^ reference local21 -// ^ reference local21 - } - c = getByteSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local21 - } - if (j0 == j) die(i, "expected digit") -// ^^ reference local25 -// ^^ reference scala/Int#`==`(+3). -// ^ reference local21 -// ^^^ reference ujson/ByteParser#die(). -// ^ reference ujson/ByteParser#parseNumTopLevel().(i) - } - - if (c == '.') { -// ^ reference local22 -// ^^ reference scala/Byte#`==`(+2). - // any valid input will require at least one digit after . - decIndex = j - i -// ^^^^^^^^ reference local23 -// ^ reference local21 -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/ByteParser#parseNumTopLevel().(i) - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - c = getByteSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local21 - val j0 = j -// ^^ definition local27 j0: Int -// ^ reference local21 - while (elemOps.within('0', c, '9')) { -// ^^^^^^^ reference ujson/ByteParser#elemOps. -// ^^^^^^ reference upickle/core/ByteOps.within(). -// ^ reference local22 - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - if (atEof(j)) { -// ^^^^^ reference ujson/ByteParser#atEof(). -// ^ reference local21 - return (visitFloat64StringPartsWithWrapper(facade, decIndex, expIndex, i, j), j) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#visitFloat64StringPartsWithWrapper(). -// ^^^^^^ reference ujson/ByteParser#parseNumTopLevel().(facade) -// ^^^^^^^^ reference local23 -// ^^^^^^^^ reference local24 -// ^ reference ujson/ByteParser#parseNumTopLevel().(i) -// ^ reference local21 -// ^ reference local21 - } - c = getByteSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local21 - } - if(j0 == j) die(i, "expected digit") -// ^^ reference local27 -// ^^ reference scala/Int#`==`(+3). -// ^ reference local21 -// ^^^ reference ujson/ByteParser#die(). -// ^ reference ujson/ByteParser#parseNumTopLevel().(i) - } - - if (c == 'e' || c == 'E') { -// ^ reference local22 -// ^^ reference scala/Byte#`==`(+2). -// ^^ reference scala/Boolean#`||`(). -// ^ reference local22 -// ^^ reference scala/Byte#`==`(+2). - // any valid input will require at least one digit after e, e+, etc - expIndex = j - i -// ^^^^^^^^ reference local24 -// ^ reference local21 -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/ByteParser#parseNumTopLevel().(i) - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - c = getByteSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local21 - if (c == '+' || c == '-') { -// ^ reference local22 -// ^^ reference scala/Byte#`==`(+2). -// ^^ reference scala/Boolean#`||`(). -// ^ reference local22 -// ^^ reference scala/Byte#`==`(+2). - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - c = getByteSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local21 - } - val j0 = j -// ^^ definition local29 j0: Int -// ^ reference local21 - while (elemOps.within('0', c, '9')) { -// ^^^^^^^ reference ujson/ByteParser#elemOps. -// ^^^^^^ reference upickle/core/ByteOps.within(). -// ^ reference local22 - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - if (atEof(j)) { -// ^^^^^ reference ujson/ByteParser#atEof(). -// ^ reference local21 - return (visitFloat64StringPartsWithWrapper(facade, decIndex, expIndex, i, j), j) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#visitFloat64StringPartsWithWrapper(). -// ^^^^^^ reference ujson/ByteParser#parseNumTopLevel().(facade) -// ^^^^^^^^ reference local23 -// ^^^^^^^^ reference local24 -// ^ reference ujson/ByteParser#parseNumTopLevel().(i) -// ^ reference local21 -// ^ reference local21 - } - c = getByteSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local21 - } - if (j0 == j) die(i, "expected digit") -// ^^ reference local29 -// ^^ reference scala/Int#`==`(+3). -// ^ reference local21 -// ^^^ reference ujson/ByteParser#die(). -// ^ reference ujson/ByteParser#parseNumTopLevel().(i) - } - - (visitFloat64StringPartsWithWrapper(facade, decIndex, expIndex, i, j), j) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#visitFloat64StringPartsWithWrapper(). -// ^^^^^^ reference ujson/ByteParser#parseNumTopLevel().(facade) -// ^^^^^^^^ reference local23 -// ^^^^^^^^ reference local24 -// ^ reference ujson/ByteParser#parseNumTopLevel().(i) -// ^ reference local21 -// ^ reference local21 - } - - /** - * Generate a Char from the hex digits of "\u1234" (i.e. "1234"). - * - * NOTE: This is only capable of generating characters from the basic plane. - * This is why it can only return Char instead of Int. - */ - protected[this] final def descape(i: Int): Char = { -// ^^^^^^^ definition ujson/ByteParser#descape(). final def descape(i: Int): Char -// ^ definition ujson/ByteParser#descape().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Char# - import upickle.core.RenderUtils.hex -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/RenderUtils. -// ^^^ reference upickle/core/RenderUtils.hex(). - var x = 0 -// ^ definition local31 x: Int - x = (x << 4) | hex(getByteSafe(i+2).toInt) -// ^ reference local31 -// ^ reference local31 -// ^^ reference scala/Int#`<<`(). -// ^ reference scala/Int#`|`(+3). -// ^^^ reference upickle/core/RenderUtils.hex(). -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference ujson/ByteParser#descape().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^ reference scala/Byte#toInt(). - x = (x << 4) | hex(getByteSafe(i+3).toInt) -// ^ reference local31 -// ^ reference local31 -// ^^ reference scala/Int#`<<`(). -// ^ reference scala/Int#`|`(+3). -// ^^^ reference upickle/core/RenderUtils.hex(). -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference ujson/ByteParser#descape().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^ reference scala/Byte#toInt(). - x = (x << 4) | hex(getByteSafe(i+4).toInt) -// ^ reference local31 -// ^ reference local31 -// ^^ reference scala/Int#`<<`(). -// ^ reference scala/Int#`|`(+3). -// ^^^ reference upickle/core/RenderUtils.hex(). -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference ujson/ByteParser#descape().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^ reference scala/Byte#toInt(). - x = (x << 4) | hex(getByteSafe(i+5).toInt) -// ^ reference local31 -// ^ reference local31 -// ^^ reference scala/Int#`<<`(). -// ^ reference scala/Int#`|`(+3). -// ^^^ reference upickle/core/RenderUtils.hex(). -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference ujson/ByteParser#descape().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^ reference scala/Byte#toInt(). - x.toChar -// ^ reference local31 -// ^^^^^^ reference scala/Int#toChar(). - } - - - /** - * Parse the JSON constant "true". - * - * Note that this method assumes that the first character has already been checked. - */ - protected[this] final def parseTrue(i: Int, facade: Visitor[_, J]): J = { -// ^^^^^^^^^ definition ujson/ByteParser#parseTrue(). final def parseTrue(i: Int, facade: Visitor[local32, J[): J -// ^ definition ujson/ByteParser#parseTrue().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/ByteParser#parseTrue().(facade) facade: Visitor[local32, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] -// ^ reference ujson/ByteParser#[J] - requestUntilOrThrow(i + 3) -// ^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#requestUntilOrThrow(). -// ^ reference ujson/ByteParser#parseTrue().(i) -// ^ reference scala/Int#`+`(+4). - if (getByteUnsafe(i + 1) == 'r' && getByteUnsafe(i + 2) == 'u' && getByteUnsafe(i + 3) == 'e') { -// ^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#getByteUnsafe(). -// ^ reference ujson/ByteParser#parseTrue().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Byte#`==`(+2). -// ^^ reference scala/Boolean#`&&`(). -// ^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#getByteUnsafe(). -// ^ reference ujson/ByteParser#parseTrue().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Byte#`==`(+2). -// ^^ reference scala/Boolean#`&&`(). -// ^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#getByteUnsafe(). -// ^ reference ujson/ByteParser#parseTrue().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Byte#`==`(+2). - facade.visitTrue(i) -// ^^^^^^ reference ujson/ByteParser#parseTrue().(facade) -// ^^^^^^^^^ reference upickle/core/Visitor#visitTrue(). -// ^ reference ujson/ByteParser#parseTrue().(i) - } else { - die(i, "expected true") -// ^^^ reference ujson/ByteParser#die(). -// ^ reference ujson/ByteParser#parseTrue().(i) - } - } - - /** - * Parse the JSON constant "false". - * - * Note that this method assumes that the first character has already been checked. - */ - protected[this] final def parseFalse(i: Int, facade: Visitor[_, J]): J = { -// ^^^^^^^^^^ definition ujson/ByteParser#parseFalse(). final def parseFalse(i: Int, facade: Visitor[local33, J[): J -// ^ definition ujson/ByteParser#parseFalse().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/ByteParser#parseFalse().(facade) facade: Visitor[local33, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] -// ^ reference ujson/ByteParser#[J] - requestUntilOrThrow(i + 4) -// ^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#requestUntilOrThrow(). -// ^ reference ujson/ByteParser#parseFalse().(i) -// ^ reference scala/Int#`+`(+4). - - if (getByteUnsafe(i + 1) == 'a' && getByteUnsafe(i + 2) == 'l' && getByteUnsafe(i + 3) == 's' && getByteUnsafe(i + 4) == 'e') { -// ^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#getByteUnsafe(). -// ^ reference ujson/ByteParser#parseFalse().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Byte#`==`(+2). -// ^^ reference scala/Boolean#`&&`(). -// ^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#getByteUnsafe(). -// ^ reference ujson/ByteParser#parseFalse().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Byte#`==`(+2). -// ^^ reference scala/Boolean#`&&`(). -// ^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#getByteUnsafe(). -// ^ reference ujson/ByteParser#parseFalse().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Byte#`==`(+2). -// ^^ reference scala/Boolean#`&&`(). -// ^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#getByteUnsafe(). -// ^ reference ujson/ByteParser#parseFalse().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Byte#`==`(+2). - facade.visitFalse(i) -// ^^^^^^ reference ujson/ByteParser#parseFalse().(facade) -// ^^^^^^^^^^ reference upickle/core/Visitor#visitFalse(). -// ^ reference ujson/ByteParser#parseFalse().(i) - } else { - die(i, "expected false") -// ^^^ reference ujson/ByteParser#die(). -// ^ reference ujson/ByteParser#parseFalse().(i) - } - } - - /** - * Parse the JSON constant "null". - * - * Note that this method assumes that the first character has already been checked. - */ - protected[this] final def parseNull(i: Int, facade: Visitor[_, J]): J = { -// ^^^^^^^^^ definition ujson/ByteParser#parseNull(). final def parseNull(i: Int, facade: Visitor[local34, J[): J -// ^ definition ujson/ByteParser#parseNull().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/ByteParser#parseNull().(facade) facade: Visitor[local34, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] -// ^ reference ujson/ByteParser#[J] - requestUntilOrThrow(i + 3) -// ^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#requestUntilOrThrow(). -// ^ reference ujson/ByteParser#parseNull().(i) -// ^ reference scala/Int#`+`(+4). - if (getByteUnsafe(i + 1) == 'u' && getByteUnsafe(i + 2) == 'l' && getByteUnsafe(i + 3) == 'l') { -// ^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#getByteUnsafe(). -// ^ reference ujson/ByteParser#parseNull().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Byte#`==`(+2). -// ^^ reference scala/Boolean#`&&`(). -// ^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#getByteUnsafe(). -// ^ reference ujson/ByteParser#parseNull().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Byte#`==`(+2). -// ^^ reference scala/Boolean#`&&`(). -// ^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#getByteUnsafe(). -// ^ reference ujson/ByteParser#parseNull().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Byte#`==`(+2). - facade.visitNull(i) -// ^^^^^^ reference ujson/ByteParser#parseNull().(facade) -// ^^^^^^^^^ reference upickle/core/Visitor#visitNull(). -// ^ reference ujson/ByteParser#parseNull().(i) - } else { - die(i, "expected null") -// ^^^ reference ujson/ByteParser#die(). -// ^ reference ujson/ByteParser#parseNull().(i) - } - } - - protected[this] final def parseTopLevel(i: Int, facade: Visitor[_, J]): (J, Int) = { -// ^^^^^^^^^^^^^ definition ujson/ByteParser#parseTopLevel(). final def parseTopLevel(i: Int, facade: Visitor[local35, J[): (J, Int) -// ^ definition ujson/ByteParser#parseTopLevel().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/ByteParser#parseTopLevel().(facade) facade: Visitor[local35, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] -// ^ reference ujson/ByteParser#[J] -// ^^^ reference scala/Int# - try parseTopLevel0(i, facade) -// ^^^^^^^^^^^^^^ reference ujson/ByteParser#parseTopLevel0(). -// ^ reference ujson/ByteParser#parseTopLevel().(i) -// ^^^^^^ reference ujson/ByteParser#parseTopLevel().(facade) - catch reject(i) -// ^^^^^^ reference ujson/ByteParser#reject(). -// ^ reference ujson/ByteParser#parseTopLevel().(i) - } - /** - * Parse and return the next JSON value and the position beyond it. - */ - @tailrec -// ^^^^^^^ reference scala/annotation/tailrec# -// reference scala/annotation/tailrec#``(). - protected[this] final def parseTopLevel0(i: Int, facade: Visitor[_, J]): (J, Int) = { -// ^^^^^^^^^^^^^^ definition ujson/ByteParser#parseTopLevel0(). @tailrec final def parseTopLevel0(i: Int, facade: Visitor[local38, J[): (J, Int) -// ^ definition ujson/ByteParser#parseTopLevel0().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/ByteParser#parseTopLevel0().(facade) facade: Visitor[local38, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] -// ^ reference ujson/ByteParser#[J] -// ^^^ reference scala/Int# - (getByteSafe(i): @switch) match { -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference ujson/ByteParser#parseTopLevel0().(i) - // ignore whitespace - case ' ' | '\t' | 'r' => parseTopLevel0(i + 1, facade) -// ^^^^^^^^^^^^^^ reference ujson/ByteParser#parseTopLevel0(). -// ^ reference ujson/ByteParser#parseTopLevel0().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^ reference ujson/ByteParser#parseTopLevel0().(facade) - case '\n' => parseTopLevel0(i + 1, facade) -// ^^^^^^^^^^^^^^ reference ujson/ByteParser#parseTopLevel0(). -// ^ reference ujson/ByteParser#parseTopLevel0().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^ reference ujson/ByteParser#parseTopLevel0().(facade) - - // if we have a recursive top-level structure, we'll delegate the parsing - // duties to our good friend rparse(). - case '[' => parseNested(ARRBEG, i + 1, facade.visitArray(-1, i), Nil) -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^^^ reference ujson/ByteParser#ARRBEG. -// ^ reference ujson/ByteParser#parseTopLevel0().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^ reference ujson/ByteParser#parseTopLevel0().(facade) -// ^^^^^^^^^^ reference upickle/core/Visitor#visitArray(). -// ^ reference ujson/ByteParser#parseTopLevel0().(i) -// ^^^ reference scala/package.Nil. - case '{' => parseNested(OBJBEG, i + 1, facade.visitObject(-1, i), Nil) -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^^^ reference ujson/ByteParser#OBJBEG. -// ^ reference ujson/ByteParser#parseTopLevel0().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^ reference ujson/ByteParser#parseTopLevel0().(facade) -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitObject(). -// ^ reference ujson/ByteParser#parseTopLevel0().(i) -// ^^^ reference scala/package.Nil. - - // we have a single top-level number - case '-' | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' => parseNumTopLevel(i, facade) -// ^^^^^^^^^^^^^^^^ reference ujson/ByteParser#parseNumTopLevel(). -// ^ reference ujson/ByteParser#parseTopLevel0().(i) -// ^^^^^^ reference ujson/ByteParser#parseTopLevel0().(facade) - - // we have a single top-level string - case '"' => parseStringTopLevel(i, facade) -// ^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#parseStringTopLevel(). -// ^ reference ujson/ByteParser#parseTopLevel0().(i) -// ^^^^^^ reference ujson/ByteParser#parseTopLevel0().(facade) - - // we have a single top-level constant - case 't' => (parseTrue(i, facade), i + 4) -// ^^^^^^^^^ reference ujson/ByteParser#parseTrue(). -// ^ reference ujson/ByteParser#parseTopLevel0().(i) -// ^^^^^^ reference ujson/ByteParser#parseTopLevel0().(facade) -// ^ reference ujson/ByteParser#parseTopLevel0().(i) -// ^ reference scala/Int#`+`(+4). - case 'f' => (parseFalse(i, facade), i + 5) -// ^^^^^^^^^^ reference ujson/ByteParser#parseFalse(). -// ^ reference ujson/ByteParser#parseTopLevel0().(i) -// ^^^^^^ reference ujson/ByteParser#parseTopLevel0().(facade) -// ^ reference ujson/ByteParser#parseTopLevel0().(i) -// ^ reference scala/Int#`+`(+4). - case 'n' => (parseNull(i, facade), i + 4) -// ^^^^^^^^^ reference ujson/ByteParser#parseNull(). -// ^ reference ujson/ByteParser#parseTopLevel0().(i) -// ^^^^^^ reference ujson/ByteParser#parseTopLevel0().(facade) -// ^ reference ujson/ByteParser#parseTopLevel0().(i) -// ^ reference scala/Int#`+`(+4). - - // invalid - case _ => die(i, "expected json value") -// ^^^ reference ujson/ByteParser#die(). -// ^ reference ujson/ByteParser#parseTopLevel0().(i) - } - } - - def reject(j: Int): PartialFunction[Throwable, Nothing] = { -// ^^^^^^ definition ujson/ByteParser#reject(). def reject(j: Int): PartialFunction[Throwable, Nothing] -// ^ definition ujson/ByteParser#reject().(j) j: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^^^^ reference scala/PartialFunction# -// ^^^^^^^^^ reference scala/package.Throwable# -// ^^^^^^^ reference scala/Nothing# -// definition local39 @SerialVersionUID final class $anonfun - case e: Abort => -// ^ definition local46 e: Abort -// ^^^^^ reference upickle/core/Abort# - throw new AbortException(e.msg, j, -1, -1, e) -// ^^^^^^^^^^^^^^ reference upickle/core/AbortException# -// reference upickle/core/AbortException#``(). -// ^ reference local46 -// ^^^ reference upickle/core/Abort#msg. -// ^ reference ujson/ByteParser#reject().(j) -// ^ reference local46 - } - /** - * Tail-recursive parsing method to do the bulk of JSON parsing. - * - * This single method manages parser states, data, etc. Except for - * parsing non-recursive values (like strings, numbers, and - * constants) all important work happens in this loop (or in methods - * it calls, like reset()). - * - * Currently the code is optimized to make use of switch - * statements. Future work should consider whether this is better or - * worse than manually constructed if/else statements or something - * else. Also, it may be possible to reorder some cases for speed - * improvements. - * - * @param j index/position in the source json - * @param path the json path in the tree - */ - @tailrec -// ^^^^^^^ reference scala/annotation/tailrec# -// reference scala/annotation/tailrec#``(). - protected[this] final def parseNested(state: Int, -// ^^^^^^^^^^^ definition ujson/ByteParser#parseNested(). @tailrec final def parseNested(state: Int, i: Int, stackHead: ObjArrVisitor[local50, J[, stackTail: List[ObjArrVisitor[local51, J[]): (J, Int) -// ^^^^^ definition ujson/ByteParser#parseNested().(state) state: Int -// ^^^ reference scala/Int# - i: Int, -// ^ definition ujson/ByteParser#parseNested().(i) i: Int -// ^^^ reference scala/Int# - stackHead: ObjArrVisitor[_, J], -// ^^^^^^^^^ definition ujson/ByteParser#parseNested().(stackHead) stackHead: ObjArrVisitor[local50, J[ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/ByteParser#[J] - stackTail: List[ObjArrVisitor[_, J]]) : (J, Int) = { -// ^^^^^^^^^ definition ujson/ByteParser#parseNested().(stackTail) stackTail: List[ObjArrVisitor[local51, J[] -// ^^^^ reference scala/package.List# -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/ByteParser#[J] -// ^ reference ujson/ByteParser#[J] -// ^^^ reference scala/Int# - (getByteSafe(i): @switch) match{ -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference ujson/ByteParser#parseNested().(i) - case ' ' | '\t' | '\r' | '\n' => - parseNested(state, i + 1, stackHead, stackTail) -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^^ reference ujson/ByteParser#parseNested().(state) -// ^ reference ujson/ByteParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) - - case '"' => - state match{ -// ^^^^^ reference ujson/ByteParser#parseNested().(state) - case KEY | OBJBEG => -// ^^^ reference ujson/ByteParser#KEY. -// ^^^^^^ reference ujson/ByteParser#OBJBEG. - val nextJ = try parseStringKey(i, stackHead) catch reject(i) -// ^^^^^ definition local52 nextJ: Int -// ^^^^^^^^^^^^^^ reference ujson/ByteParser#parseStringKey(). -// ^ reference ujson/ByteParser#parseNested().(i) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^ reference ujson/ByteParser#reject(). -// ^ reference ujson/ByteParser#parseNested().(i) - parseNested(COLON, nextJ, stackHead, stackTail) -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^^ reference ujson/ByteParser#COLON. -// ^^^^^ reference local52 -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) - - case DATA | ARRBEG => -// ^^^^ reference ujson/ByteParser#DATA. -// ^^^^^^ reference ujson/ByteParser#ARRBEG. - val nextJ = try parseStringValue(i, stackHead) catch reject(i) -// ^^^^^ definition local55 nextJ: Int -// ^^^^^^^^^^^^^^^^ reference ujson/ByteParser#parseStringValue(). -// ^ reference ujson/ByteParser#parseNested().(i) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^ reference ujson/ByteParser#reject(). -// ^ reference ujson/ByteParser#parseNested().(i) - parseNested(collectionEndFor(stackHead), nextJ, stackHead, stackTail) -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^^^^^^^^^^^^^ reference ujson/ByteParser#collectionEndFor(). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^ reference local55 -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) - - case _ => dieWithFailureMessage(i, state) -// ^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#dieWithFailureMessage(). -// ^ reference ujson/ByteParser#parseNested().(i) -// ^^^^^ reference ujson/ByteParser#parseNested().(state) - } - - case ':' => - // we are in an object just after a key, expecting to see a colon. - state match{ -// ^^^^^ reference ujson/ByteParser#parseNested().(state) - case COLON => parseNested(DATA, i + 1, stackHead, stackTail) -// ^^^^^ reference ujson/ByteParser#COLON. -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^ reference ujson/ByteParser#DATA. -// ^ reference ujson/ByteParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) - case _ => dieWithFailureMessage(i, state) -// ^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#dieWithFailureMessage(). -// ^ reference ujson/ByteParser#parseNested().(i) -// ^^^^^ reference ujson/ByteParser#parseNested().(state) - } - - case '[' => - failIfNotData(state, i) -// ^^^^^^^^^^^^^ reference ujson/ByteParser#failIfNotData(). -// ^^^^^ reference ujson/ByteParser#parseNested().(state) -// ^ reference ujson/ByteParser#parseNested().(i) - val ctx = -// ^^^ definition local58 ctx: ArrVisitor[local59, J[ - try stackHead.subVisitor.asInstanceOf[Visitor[_, J]].visitArray(-1, i) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] -// ^^^^^^^^^^ reference upickle/core/Visitor#visitArray(). -// ^ reference ujson/ByteParser#parseNested().(i) - catch reject(i) -// ^^^^^^ reference ujson/ByteParser#reject(). -// ^ reference ujson/ByteParser#parseNested().(i) - parseNested(ARRBEG, i + 1, ctx, stackHead :: stackTail) -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^^^ reference ujson/ByteParser#ARRBEG. -// ^ reference ujson/ByteParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^ reference local58 -// ^^^^^^^^^ reference local62 -// ^^ reference scala/collection/immutable/List#`::`(). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) - - case '{' => - failIfNotData(state, i) -// ^^^^^^^^^^^^^ reference ujson/ByteParser#failIfNotData(). -// ^^^^^ reference ujson/ByteParser#parseNested().(state) -// ^ reference ujson/ByteParser#parseNested().(i) - val ctx = -// ^^^ definition local63 ctx: ObjVisitor[local64, J[ - try stackHead.subVisitor.asInstanceOf[Visitor[_, J]].visitObject(-1, i) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitObject(). -// ^ reference ujson/ByteParser#parseNested().(i) - catch reject(i) -// ^^^^^^ reference ujson/ByteParser#reject(). -// ^ reference ujson/ByteParser#parseNested().(i) - parseNested(OBJBEG, i + 1, ctx, stackHead :: stackTail) -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^^^ reference ujson/ByteParser#OBJBEG. -// ^ reference ujson/ByteParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^ reference local63 -// ^^^^^^^^^ reference local67 -// ^^ reference scala/collection/immutable/List#`::`(). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) - - case '-' | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' => - failIfNotData(state, i) -// ^^^^^^^^^^^^^ reference ujson/ByteParser#failIfNotData(). -// ^^^^^ reference ujson/ByteParser#parseNested().(state) -// ^ reference ujson/ByteParser#parseNested().(i) - val ctx = -// ^^^ definition local68 ctx: Int - try parseNum(i, stackHead.narrow, stackHead.subVisitor.asInstanceOf[Visitor[_, J]]) -// ^^^^^^^^ reference ujson/ByteParser#parseNum(). -// ^ reference ujson/ByteParser#parseNested().(i) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^ reference upickle/core/ObjArrVisitor#narrow(). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] - catch reject(i) -// ^^^^^^ reference ujson/ByteParser#reject(). -// ^ reference ujson/ByteParser#parseNested().(i) - parseNested(collectionEndFor(stackHead), ctx, stackHead, stackTail) -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^^^^^^^^^^^^^ reference ujson/ByteParser#collectionEndFor(). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^ reference local68 -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) - - case 't' => - failIfNotData(state, i) -// ^^^^^^^^^^^^^ reference ujson/ByteParser#failIfNotData(). -// ^^^^^ reference ujson/ByteParser#parseNested().(state) -// ^ reference ujson/ByteParser#parseNested().(i) - try stackHead.narrow.visitValue( -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^ reference upickle/core/ObjArrVisitor#narrow(). -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). - parseTrue(i, stackHead.subVisitor.asInstanceOf[Visitor[_, J]]), -// ^^^^^^^^^ reference ujson/ByteParser#parseTrue(). -// ^ reference ujson/ByteParser#parseNested().(i) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] - i -// ^ reference ujson/ByteParser#parseNested().(i) - ) - catch reject(i) -// ^^^^^^ reference ujson/ByteParser#reject(). -// ^ reference ujson/ByteParser#parseNested().(i) - parseNested(collectionEndFor(stackHead), i + 4, stackHead, stackTail) -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^^^^^^^^^^^^^ reference ujson/ByteParser#collectionEndFor(). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^ reference ujson/ByteParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) - - case 'f' => - failIfNotData(state, i) -// ^^^^^^^^^^^^^ reference ujson/ByteParser#failIfNotData(). -// ^^^^^ reference ujson/ByteParser#parseNested().(state) -// ^ reference ujson/ByteParser#parseNested().(i) - try stackHead.narrow.visitValue( -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^ reference upickle/core/ObjArrVisitor#narrow(). -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). - parseFalse(i, stackHead.subVisitor.asInstanceOf[Visitor[_, J]]), -// ^^^^^^^^^^ reference ujson/ByteParser#parseFalse(). -// ^ reference ujson/ByteParser#parseNested().(i) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] - i -// ^ reference ujson/ByteParser#parseNested().(i) - ) - catch reject(i) -// ^^^^^^ reference ujson/ByteParser#reject(). -// ^ reference ujson/ByteParser#parseNested().(i) - parseNested(collectionEndFor(stackHead), i + 5, stackHead, stackTail) -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^^^^^^^^^^^^^ reference ujson/ByteParser#collectionEndFor(). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^ reference ujson/ByteParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) - - case 'n' => - failIfNotData(state, i) -// ^^^^^^^^^^^^^ reference ujson/ByteParser#failIfNotData(). -// ^^^^^ reference ujson/ByteParser#parseNested().(state) -// ^ reference ujson/ByteParser#parseNested().(i) - try stackHead.narrow.visitValue( -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^ reference upickle/core/ObjArrVisitor#narrow(). -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). - parseNull(i, stackHead.subVisitor.asInstanceOf[Visitor[_, J]]), -// ^^^^^^^^^ reference ujson/ByteParser#parseNull(). -// ^ reference ujson/ByteParser#parseNested().(i) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] - i -// ^ reference ujson/ByteParser#parseNested().(i) - ) - catch reject(i) -// ^^^^^^ reference ujson/ByteParser#reject(). -// ^ reference ujson/ByteParser#parseNested().(i) - parseNested(collectionEndFor(stackHead), i + 4, stackHead, stackTail) -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^^^^^^^^^^^^^ reference ujson/ByteParser#collectionEndFor(). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^ reference ujson/ByteParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) - - case ',' => - dropBufferUntil(i) -// ^^^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#dropBufferUntil(). -// ^ reference ujson/ByteParser#parseNested().(i) - (state: @switch) match{ -// ^^^^^ reference ujson/ByteParser#parseNested().(state) - case ARREND => parseNested(DATA, i + 1, stackHead, stackTail) -// ^^^^^^ reference ujson/ByteParser#ARREND. -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^ reference ujson/ByteParser#DATA. -// ^ reference ujson/ByteParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) - case OBJEND => parseNested(KEY, i + 1, stackHead, stackTail) -// ^^^^^^ reference ujson/ByteParser#OBJEND. -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^ reference ujson/ByteParser#KEY. -// ^ reference ujson/ByteParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) - case _ => dieWithFailureMessage(i, state) -// ^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#dieWithFailureMessage(). -// ^ reference ujson/ByteParser#parseNested().(i) -// ^^^^^ reference ujson/ByteParser#parseNested().(state) - } - - case ']' => - (state: @switch) match{ -// ^^^^^ reference ujson/ByteParser#parseNested().(state) - case ARREND | ARRBEG => -// ^^^^^^ reference ujson/ByteParser#ARREND. -// ^^^^^^ reference ujson/ByteParser#ARRBEG. - tryCloseCollection(stackHead, stackTail, i) match{ -// ^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#tryCloseCollection(). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) -// ^ reference ujson/ByteParser#parseNested().(i) - case Some(t) => t -// ^^^^ reference scala/Some. -// ^ definition local77 t: (J, Int) -// ^ reference local77 - case None => -// ^^^^ reference scala/None. - val stackTailHead = stackTail.head -// ^^^^^^^^^^^^^ definition local78 stackTailHead: ObjArrVisitor[local51, J[ -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) -// ^^^^ reference scala/collection/IterableOps#head(). - parseNested(collectionEndFor(stackTailHead), i + 1, stackTailHead, stackTail.tail) -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^^^^^^^^^^^^^ reference ujson/ByteParser#collectionEndFor(). -// ^^^^^^^^^^^^^ reference local78 -// ^ reference ujson/ByteParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^^^^^ reference local78 -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) -// ^^^^ reference scala/collection/IterableOps#tail(). - } - case _ => dieWithFailureMessage(i, state) -// ^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#dieWithFailureMessage(). -// ^ reference ujson/ByteParser#parseNested().(i) -// ^^^^^ reference ujson/ByteParser#parseNested().(state) - } - - case '}' => - (state: @switch) match{ -// ^^^^^ reference ujson/ByteParser#parseNested().(state) - case OBJEND | OBJBEG => -// ^^^^^^ reference ujson/ByteParser#OBJEND. -// ^^^^^^ reference ujson/ByteParser#OBJBEG. - tryCloseCollection(stackHead, stackTail, i) match{ -// ^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#tryCloseCollection(). -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) -// ^ reference ujson/ByteParser#parseNested().(i) - case Some(t) => t -// ^^^^ reference scala/Some. -// ^ definition local79 t: (J, Int) -// ^ reference local79 - case None => -// ^^^^ reference scala/None. - val stackTailHead = stackTail.head -// ^^^^^^^^^^^^^ definition local80 stackTailHead: ObjArrVisitor[local51, J[ -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) -// ^^^^ reference scala/collection/IterableOps#head(). - parseNested(collectionEndFor(stackTailHead), i + 1, stackTailHead, stackTail.tail) -// ^^^^^^^^^^^ reference ujson/ByteParser#parseNested(). -// ^^^^^^^^^^^^^^^^ reference ujson/ByteParser#collectionEndFor(). -// ^^^^^^^^^^^^^ reference local80 -// ^ reference ujson/ByteParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^^^^^ reference local80 -// ^^^^^^^^^ reference ujson/ByteParser#parseNested().(stackTail) -// ^^^^ reference scala/collection/IterableOps#tail(). - } - case _ => dieWithFailureMessage(i, state) -// ^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#dieWithFailureMessage(). -// ^ reference ujson/ByteParser#parseNested().(i) -// ^^^^^ reference ujson/ByteParser#parseNested().(state) - } - case _ => dieWithFailureMessage(i, state) -// ^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#dieWithFailureMessage(). -// ^ reference ujson/ByteParser#parseNested().(i) -// ^^^^^ reference ujson/ByteParser#parseNested().(state) - - } - } - - - def dieWithFailureMessage(i: Int, state: Int) = { -// ^^^^^^^^^^^^^^^^^^^^^ definition ujson/ByteParser#dieWithFailureMessage(). def dieWithFailureMessage(i: Int, state: Int): Nothing -// ^ definition ujson/ByteParser#dieWithFailureMessage().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/ByteParser#dieWithFailureMessage().(state) state: Int -// ^^^ reference scala/Int# - val expected = state match{ -// ^^^^^^^^ definition local81 expected: String -// ^^^^^ reference ujson/ByteParser#dieWithFailureMessage().(state) - case ARRBEG => "json value or ]" -// ^^^^^^ reference ujson/ByteParser#ARRBEG. - case OBJBEG => "json value or }" -// ^^^^^^ reference ujson/ByteParser#OBJBEG. - case DATA => "json value" -// ^^^^ reference ujson/ByteParser#DATA. - case KEY => "json string key" -// ^^^ reference ujson/ByteParser#KEY. - case COLON => ":" -// ^^^^^ reference ujson/ByteParser#COLON. - case ARREND => ", or ]" -// ^^^^^^ reference ujson/ByteParser#ARREND. - case OBJEND => ", or }" -// ^^^^^^ reference ujson/ByteParser#OBJEND. - } - die(i, s"expected $expected") -// ^^^ reference ujson/ByteParser#die(). -// ^ reference ujson/ByteParser#dieWithFailureMessage().(i) -// ^ reference scala/StringContext#s(). -// ^^^^^^^^ reference local81 - } - - def failIfNotData(state: Int, i: Int) = (state: @switch) match{ -// ^^^^^^^^^^^^^ definition ujson/ByteParser#failIfNotData(). def failIfNotData(state: Int, i: Int): Unit -// ^^^^^ definition ujson/ByteParser#failIfNotData().(state) state: Int -// ^^^ reference scala/Int# -// ^ definition ujson/ByteParser#failIfNotData().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^ reference ujson/ByteParser#failIfNotData().(state) - case DATA | ARRBEG => // do nothing -// ^^^^ reference ujson/ByteParser#DATA. -// ^^^^^^ reference ujson/ByteParser#ARRBEG. - case _ => dieWithFailureMessage(i, state) -// ^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#dieWithFailureMessage(). -// ^ reference ujson/ByteParser#failIfNotData().(i) -// ^^^^^ reference ujson/ByteParser#failIfNotData().(state) - } - - def tryCloseCollection(stackHead: ObjArrVisitor[_, J], stackTail: List[ObjArrVisitor[_, J]], i: Int) = { -// ^^^^^^^^^^^^^^^^^^ definition ujson/ByteParser#tryCloseCollection(). def tryCloseCollection(stackHead: ObjArrVisitor[local82, J[, stackTail: List[ObjArrVisitor[local83, J[], i: Int): Option[(J, Int)] -// ^^^^^^^^^ definition ujson/ByteParser#tryCloseCollection().(stackHead) stackHead: ObjArrVisitor[local82, J[ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/ByteParser#[J] -// ^^^^^^^^^ definition ujson/ByteParser#tryCloseCollection().(stackTail) stackTail: List[ObjArrVisitor[local83, J[] -// ^^^^ reference scala/package.List# -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/ByteParser#[J] -// ^ definition ujson/ByteParser#tryCloseCollection().(i) i: Int -// ^^^ reference scala/Int# - if (stackTail.isEmpty) { -// ^^^^^^^^^ reference ujson/ByteParser#tryCloseCollection().(stackTail) -// ^^^^^^^ reference scala/collection/immutable/List#isEmpty(). - Some(try stackHead.visitEnd(i) catch reject(i), i + 1) -// ^^^^ reference scala/Some. -// ^^^^^^^^^ reference ujson/ByteParser#tryCloseCollection().(stackHead) -// ^^^^^^^^ reference upickle/core/ObjArrVisitor#visitEnd(). -// ^ reference ujson/ByteParser#tryCloseCollection().(i) -// ^^^^^^ reference ujson/ByteParser#reject(). -// ^ reference ujson/ByteParser#tryCloseCollection().(i) -// ^ reference ujson/ByteParser#tryCloseCollection().(i) -// ^ reference scala/Int#`+`(+4). - } else { - val ctxt2 = stackTail.head.narrow -// ^^^^^ definition local86 ctxt2: ObjArrVisitor[Any, J] -// ^^^^^^^^^ reference ujson/ByteParser#tryCloseCollection().(stackTail) -// ^^^^ reference scala/collection/IterableOps#head(). -// ^^^^^^ reference upickle/core/ObjArrVisitor#narrow(). - try ctxt2.visitValue(stackHead.visitEnd(i), i) catch reject(i) -// ^^^^^ reference local86 -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). -// ^^^^^^^^^ reference ujson/ByteParser#tryCloseCollection().(stackHead) -// ^^^^^^^^ reference upickle/core/ObjArrVisitor#visitEnd(). -// ^ reference ujson/ByteParser#tryCloseCollection().(i) -// ^ reference ujson/ByteParser#tryCloseCollection().(i) -// ^^^^^^ reference ujson/ByteParser#reject(). -// ^ reference ujson/ByteParser#tryCloseCollection().(i) - None -// ^^^^ reference scala/None. - - } - } - def collectionEndFor(stackHead: ObjArrVisitor[_, _]) = { -// ^^^^^^^^^^^^^^^^ definition ujson/ByteParser#collectionEndFor(). def collectionEndFor(stackHead: ObjArrVisitor[local89, local90[): Int -// ^^^^^^^^^ definition ujson/ByteParser#collectionEndFor().(stackHead) stackHead: ObjArrVisitor[local89, local90[ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# - if (stackHead.isObj) OBJEND -// ^^^^^^^^^ reference ujson/ByteParser#collectionEndFor().(stackHead) -// ^^^^^ reference upickle/core/ObjArrVisitor#isObj(). -// ^^^^^^ reference ujson/ByteParser#OBJEND. - else ARREND -// ^^^^^^ reference ujson/ByteParser#ARREND. - } - - /** - * See if the string has any escape sequences. If not, return the - * end of the string. If so, bail out and return -1. - * - * This method expects the data to be in UTF-16 and accesses it as - * chars. - */ - protected[this] final def parseStringSimple(i: Int): Int = { -// ^^^^^^^^^^^^^^^^^ definition ujson/ByteParser#parseStringSimple(). final def parseStringSimple(i: Int): Int -// ^ definition ujson/ByteParser#parseStringSimple().(i) i: Int -// ^^^ reference scala/Int# -// ^^^ reference scala/Int# - var j = i -// ^ definition local91 j: Int -// ^ reference ujson/ByteParser#parseStringSimple().(i) - var c = elemOps.toUnsignedInt(getByteSafe(j)) -// ^ definition local92 c: Int -// ^^^^^^^ reference ujson/ByteParser#elemOps. -// ^^^^^^^^^^^^^ reference upickle/core/ByteOps.toUnsignedInt(). -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local91 - while (c != '"') { -// ^ reference local92 -// ^^ reference scala/Int#`!=`(+2). - if (c < ' ') die(j, s"control char (${c}) in string") -// ^ reference local92 -// ^ reference scala/Int#`<`(+2). -// ^^^ reference ujson/ByteParser#die(). -// ^ reference local91 -// ^ reference scala/StringContext#s(). -// ^ reference local92 - if (c == '\\' || c > 127) return -1 - j -// ^ reference local92 -// ^^ reference scala/Int#`==`(+2). -// ^^ reference scala/Boolean#`||`(). -// ^ reference local92 -// ^ reference scala/Int#`>`(+3). -// ^ reference scala/Int#`-`(+3). -// ^ reference local91 - j += 1 -// ^ reference local91 -// ^^ reference scala/Int#`+`(+4). - c = elemOps.toUnsignedInt(getByteSafe(j)) -// ^ reference local92 -// ^^^^^^^ reference ujson/ByteParser#elemOps. -// ^^^^^^^^^^^^^ reference upickle/core/ByteOps.toUnsignedInt(). -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local91 - } - j + 1 -// ^ reference local91 -// ^ reference scala/Int#`+`(+4). - } - - /** - * Parse a string that is known to have escape sequences. - */ - protected[this] final def parseStringComplex(i0: Int): Int = { -// ^^^^^^^^^^^^^^^^^^ definition ujson/ByteParser#parseStringComplex(). final def parseStringComplex(i0: Int): Int -// ^^ definition ujson/ByteParser#parseStringComplex().(i0) i0: Int -// ^^^ reference scala/Int# -// ^^^ reference scala/Int# - var i = i0 -// ^ definition local94 i: Int -// ^^ reference ujson/ByteParser#parseStringComplex().(i0) - var c = elemOps.toUnsignedInt(getByteSafe(i)) -// ^ definition local95 c: Int -// ^^^^^^^ reference ujson/ByteParser#elemOps. -// ^^^^^^^^^^^^^ reference upickle/core/ByteOps.toUnsignedInt(). -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local94 - while (c != '"') { -// ^ reference local95 -// ^^ reference scala/Int#`!=`(+2). - - if (c < ' ') die(i, s"control char (${c}) in string") -// ^ reference local95 -// ^ reference scala/Int#`<`(+2). -// ^^^ reference ujson/ByteParser#die(). -// ^ reference local94 -// ^ reference scala/StringContext#s(). -// ^ reference local95 - else if (c == '\\') { -// ^ reference local95 -// ^^ reference scala/Int#`==`(+2). - (getByteSafe(i + 1): @switch) match { -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local94 -// ^ reference scala/Int#`+`(+4). - case 'b' => { outputBuilder.append('\b'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - case 'f' => { outputBuilder.append('\f'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - case 'n' => { outputBuilder.append('\n'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - case 'r' => { outputBuilder.append('\r'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - case 't' => { outputBuilder.append('\t'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - - case '"' => { outputBuilder.append('"'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - case '/' => { outputBuilder.append('/'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - case '\\' => { outputBuilder.append('\\'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - - // if there's a problem then descape will explode - case 'u' => - val d = descape(i) -// ^ definition local97 d: Char -// ^^^^^^^ reference ujson/ByteParser#descape(). -// ^ reference local94 - outputBuilder.appendC(d) -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^^^^^^^ reference upickle/core/ByteAppendC#appendC(). -// ^ reference local97 - - i += 6 -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - - case c => die(i + 1, s"illegal escape sequence after \\") -// ^ definition local98 c: Byte -// ^^^ reference ujson/ByteParser#die(). -// ^ reference local94 -// ^ reference scala/Int#`+`(+4). -// ^ reference scala/StringContext#s(). - } - } else { - // this case is for "normal" code points that are just one Char. - // - // we don't have to worry about surrogate pairs, since those - // will all be in the ranges D800–DBFF (high surrogates) or - // DC00–DFFF (low surrogates). - outputBuilder.append(c) -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^^^^^^ reference upickle/core/ByteBuilder#append(). -// ^ reference local95 - i += 1 -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - } - c = elemOps.toUnsignedInt(getByteSafe(i)) -// ^ reference local95 -// ^^^^^^^ reference ujson/ByteParser#elemOps. -// ^^^^^^^^^^^^^ reference upickle/core/ByteOps.toUnsignedInt(). -// ^^^^^^^^^^^ reference ujson/ByteParser#getByteSafe(). -// ^ reference local94 - } - - i + 1 -// ^ reference local94 -// ^ reference scala/Int#`+`(+4). - } - - /** - * Parse the string according to JSON rules, and add to the given - * context. - * - * This method expects the data to be in UTF-16, and access it as - * Char. It performs the correct checks to make sure that we don't - * interpret a multi-char code point incorrectly. - */ - protected[this] final def parseStringValue(i: Int, stackHead: ObjArrVisitor[_, J]): Int = { -// ^^^^^^^^^^^^^^^^ definition ujson/ByteParser#parseStringValue(). final def parseStringValue(i: Int, stackHead: ObjArrVisitor[local99, J[): Int -// ^ definition ujson/ByteParser#parseStringValue().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^ definition ujson/ByteParser#parseStringValue().(stackHead) stackHead: ObjArrVisitor[local99, J[ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/ByteParser#[J] -// ^^^ reference scala/Int# - - val k = parseStringSimple(i + 1) -// ^ definition local100 k: Int -// ^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#parseStringSimple(). -// ^ reference ujson/ByteParser#parseStringValue().(i) -// ^ reference scala/Int#`+`(+4). - if (k >= 0) { -// ^ reference local100 -// ^^ reference scala/Int#`>=`(+3). - visitString(i, unsafeCharSeqForRange(i + 1, k - i - 2), stackHead) -// ^^^^^^^^^^^ reference ujson/ByteParser#visitString(). -// ^ reference ujson/ByteParser#parseStringValue().(i) -// ^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#unsafeCharSeqForRange(). -// ^ reference ujson/ByteParser#parseStringValue().(i) -// ^ reference scala/Int#`+`(+4). -// ^ reference local100 -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/ByteParser#parseStringValue().(i) -// ^ reference scala/Int#`-`(+3). -// ^^^^^^^^^ reference ujson/ByteParser#parseStringValue().(stackHead) - k -// ^ reference local100 - } else { - val k2 = parseStringToOutputBuilder(i, k) -// ^^ definition local101 k2: Int -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#parseStringToOutputBuilder(). -// ^ reference ujson/ByteParser#parseStringValue().(i) -// ^ reference local100 - visitString(i, outputBuilder.makeString(), stackHead) -// ^^^^^^^^^^^ reference ujson/ByteParser#visitString(). -// ^ reference ujson/ByteParser#parseStringValue().(i) -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^^^^^^^^^^ reference upickle/core/ByteBuilder#makeString(). -// ^^^^^^^^^ reference ujson/ByteParser#parseStringValue().(stackHead) - k2 -// ^^ reference local101 - } - } - - protected[this] final def parseStringKey(i: Int, stackHead: ObjArrVisitor[_, J]): Int = { -// ^^^^^^^^^^^^^^ definition ujson/ByteParser#parseStringKey(). final def parseStringKey(i: Int, stackHead: ObjArrVisitor[local102, J[): Int -// ^ definition ujson/ByteParser#parseStringKey().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^ definition ujson/ByteParser#parseStringKey().(stackHead) stackHead: ObjArrVisitor[local102, J[ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/ByteParser#[J] -// ^^^ reference scala/Int# - - val k = parseStringSimple(i + 1) -// ^ definition local103 k: Int -// ^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#parseStringSimple(). -// ^ reference ujson/ByteParser#parseStringKey().(i) -// ^ reference scala/Int#`+`(+4). - if (k >= 0) { -// ^ reference local103 -// ^^ reference scala/Int#`>=`(+3). - visitStringKey(i, unsafeCharSeqForRange(i + 1, k - i - 2), stackHead) -// ^^^^^^^^^^^^^^ reference ujson/ByteParser#visitStringKey(). -// ^ reference ujson/ByteParser#parseStringKey().(i) -// ^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#unsafeCharSeqForRange(). -// ^ reference ujson/ByteParser#parseStringKey().(i) -// ^ reference scala/Int#`+`(+4). -// ^ reference local103 -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/ByteParser#parseStringKey().(i) -// ^ reference scala/Int#`-`(+3). -// ^^^^^^^^^ reference ujson/ByteParser#parseStringKey().(stackHead) - k -// ^ reference local103 - } else { - val k2 = parseStringToOutputBuilder(i, k) -// ^^ definition local104 k2: Int -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#parseStringToOutputBuilder(). -// ^ reference ujson/ByteParser#parseStringKey().(i) -// ^ reference local103 - visitStringKey(i, outputBuilder.makeString(), stackHead) -// ^^^^^^^^^^^^^^ reference ujson/ByteParser#visitStringKey(). -// ^ reference ujson/ByteParser#parseStringKey().(i) -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^^^^^^^^^^ reference upickle/core/ByteBuilder#makeString(). -// ^^^^^^^^^ reference ujson/ByteParser#parseStringKey().(stackHead) - k2 -// ^^ reference local104 - } - } - - - def parseStringToOutputBuilder(i: Int, k: Int) = { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition ujson/ByteParser#parseStringToOutputBuilder(). def parseStringToOutputBuilder(i: Int, k: Int): Int -// ^ definition ujson/ByteParser#parseStringToOutputBuilder().(i) i: Int -// ^^^ reference scala/Int# -// ^ definition ujson/ByteParser#parseStringToOutputBuilder().(k) k: Int -// ^^^ reference scala/Int# - outputBuilder.reset() -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^^^^^ reference upickle/core/ByteBuilder#reset(). - appendBytesToBuilder(outputBuilder, i + 1, -k - 2 - i) -// ^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#appendBytesToBuilder(). -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^ reference ujson/ByteParser#parseStringToOutputBuilder().(i) -// ^ reference scala/Int#`+`(+4). -// ^ reference scala/Int#`unary_-`(). -// ^ reference ujson/ByteParser#parseStringToOutputBuilder().(k) -// ^ reference scala/Int#`-`(+3). -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/ByteParser#parseStringToOutputBuilder().(i) - val k2 = parseStringComplex(-k - 1) -// ^^ definition local105 k2: Int -// ^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#parseStringComplex(). -// ^ reference scala/Int#`unary_-`(). -// ^ reference ujson/ByteParser#parseStringToOutputBuilder().(k) -// ^ reference scala/Int#`-`(+3). - k2 -// ^^ reference local105 - } - - def visitString(i: Int, s: CharSequence, stackHead: ObjArrVisitor[_, J]) = { -// ^^^^^^^^^^^ definition ujson/ByteParser#visitString(). def visitString(i: Int, s: CharSequence, stackHead: ObjArrVisitor[local106, J[): Unit -// ^ definition ujson/ByteParser#visitString().(i) i: Int -// ^^^ reference scala/Int# -// ^ definition ujson/ByteParser#visitString().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^^ definition ujson/ByteParser#visitString().(stackHead) stackHead: ObjArrVisitor[local106, J[ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/ByteParser#[J] - val v = stackHead.subVisitor.visitString(s, i) -// ^ definition local107 v: Any -// ^^^^^^^^^ reference ujson/ByteParser#visitString().(stackHead) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^ reference ujson/ByteParser#visitString().(s) -// ^ reference ujson/ByteParser#visitString().(i) - stackHead.narrow.visitValue(v, i) -// ^^^^^^^^^ reference ujson/ByteParser#visitString().(stackHead) -// ^^^^^^ reference upickle/core/ObjArrVisitor#narrow(). -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). -// ^ reference local107 -// ^ reference ujson/ByteParser#visitString().(i) - } - def visitStringKey(i: Int, s: CharSequence, stackHead: ObjArrVisitor[_, J]) = { -// ^^^^^^^^^^^^^^ definition ujson/ByteParser#visitStringKey(). def visitStringKey(i: Int, s: CharSequence, stackHead: ObjArrVisitor[local108, J[): Unit -// ^ definition ujson/ByteParser#visitStringKey().(i) i: Int -// ^^^ reference scala/Int# -// ^ definition ujson/ByteParser#visitStringKey().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^^ definition ujson/ByteParser#visitStringKey().(stackHead) stackHead: ObjArrVisitor[local108, J[ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/ByteParser#[J] - val obj = stackHead.asInstanceOf[ObjVisitor[Any, _]] -// ^^^ definition local109 obj: ObjVisitor[Any, Any] -// ^^^^^^^^^ reference ujson/ByteParser#visitStringKey().(stackHead) -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^^^^ reference upickle/core/ObjVisitor# -// ^^^ reference scala/Any# - val keyVisitor = obj.visitKey(i) -// ^^^^^^^^^^ definition local110 keyVisitor: Visitor[local111, Any[ -// ^^^ reference local109 -// ^^^^^^^^ reference upickle/core/ObjVisitor#visitKey(). -// ^ reference ujson/ByteParser#visitStringKey().(i) - obj.visitKeyValue(keyVisitor.visitString(s, i)) -// ^^^ reference local109 -// ^^^^^^^^^^^^^ reference upickle/core/ObjVisitor#visitKeyValue(). -// ^^^^^^^^^^ reference local110 -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^ reference ujson/ByteParser#visitStringKey().(s) -// ^ reference ujson/ByteParser#visitStringKey().(i) - } - - - protected[this] final def parseStringTopLevel(i: Int, facade: Visitor[_, J]): (J, Int) = { -// ^^^^^^^^^^^^^^^^^^^ definition ujson/ByteParser#parseStringTopLevel(). final def parseStringTopLevel(i: Int, facade: Visitor[local112, J[): (J, Int) -// ^ definition ujson/ByteParser#parseStringTopLevel().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/ByteParser#parseStringTopLevel().(facade) facade: Visitor[local112, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteParser#[J] -// ^ reference ujson/ByteParser#[J] -// ^^^ reference scala/Int# - - val k = parseStringSimple(i + 1) -// ^ definition local113 k: Int -// ^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#parseStringSimple(). -// ^ reference ujson/ByteParser#parseStringTopLevel().(i) -// ^ reference scala/Int#`+`(+4). - if (k >= 0) { -// ^ reference local113 -// ^^ reference scala/Int#`>=`(+3). - val res = facade.visitString(unsafeCharSeqForRange(i + 1, k - i - 2), i) -// ^^^ definition local114 res: J -// ^^^^^^ reference ujson/ByteParser#parseStringTopLevel().(facade) -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingByteParser#unsafeCharSeqForRange(). -// ^ reference ujson/ByteParser#parseStringTopLevel().(i) -// ^ reference scala/Int#`+`(+4). -// ^ reference local113 -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/ByteParser#parseStringTopLevel().(i) -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/ByteParser#parseStringTopLevel().(i) - (res, k) -// ^^^ reference local114 -// ^ reference local113 - } else { - val k2 = parseStringToOutputBuilder(i, k) -// ^^ definition local115 k2: Int -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/ByteParser#parseStringToOutputBuilder(). -// ^ reference ujson/ByteParser#parseStringTopLevel().(i) -// ^ reference local113 - val res = facade.visitString(outputBuilder.makeString(), i) -// ^^^ definition local116 res: J -// ^^^^^^ reference ujson/ByteParser#parseStringTopLevel().(facade) -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^^^^^^^^^^^^^ reference ujson/ByteParser#outputBuilder. -// ^^^^^^^^^^ reference upickle/core/ByteBuilder#makeString(). -// ^ reference ujson/ByteParser#parseStringTopLevel().(i) - (res, k2) -// ^^^ reference local116 -// ^^ reference local115 - } - } -} diff --git a/tests/snapshots/src/main/generated/CharParser.scala b/tests/snapshots/src/main/generated/CharParser.scala deleted file mode 100644 index 0065bc592..000000000 --- a/tests/snapshots/src/main/generated/CharParser.scala +++ /dev/null @@ -1,1931 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ -import java.io.StringWriter -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^^ reference java/io/StringWriter# - -import upickle.core.{Abort, AbortException, ObjArrVisitor, ObjVisitor, Visitor} -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^ reference upickle/core/Abort. -// ^^^^^ reference upickle/core/Abort# -// ^^^^^^^^^^^^^^ reference upickle/core/AbortException. -// ^^^^^^^^^^^^^^ reference upickle/core/AbortException# -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^^^^^^^^^^ reference upickle/core/ObjVisitor# -// ^^^^^^^ reference upickle/core/Visitor. -// ^^^^^^^ reference upickle/core/Visitor# -import java.nio.charset.Charset -// ^^^^ reference java/ -// ^^^ reference java/nio/ -// ^^^^^^^ reference java/nio/charset/ -// ^^^^^^^ reference java/nio/charset/Charset# - - -import scala.annotation.{switch, tailrec} -// ^^^^^ reference scala/ -// ^^^^^^^^^^ reference scala/annotation/ -// ^^^^^^ reference scala/annotation/switch# -// ^^^^^^^ reference scala/annotation/tailrec# - -/** - * A specialized JSON parse that can parse Chars (Chars or Bytes), sending - * method calls to the given [[upickle.core.Visitor]]. - * - * Generally has a lot of tricks for performance: e.g. having duplicate - * implementations for nested v.s. top-level parsing, using an `CharBuilder` - * to construct the `CharSequences` that `visitString` requires, etc. - */ -abstract class CharParser[J] extends upickle.core.BufferingCharParser{ -// ^^^^^^^^^^ definition ujson/CharParser# abstract class CharParser[J] -// ^ definition ujson/CharParser#[J] J -// definition ujson/CharParser#``(). def this() -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser# - private[this] val elemOps = upickle.core.CharOps -// ^^^^^^^ definition ujson/CharParser#elemOps. private[this] val elemOps: -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^ reference upickle/core/CharOps. - private[this] val outputBuilder = new upickle.core.CharBuilder() -// ^^^^^^^^^^^^^ definition ujson/CharParser#outputBuilder. private[this] val outputBuilder: CharBuilder -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/CharBuilder# -// reference upickle/core/CharBuilder#``(). - - def requestUntilOrThrow(i: Int) = { -// ^^^^^^^^^^^^^^^^^^^ definition ujson/CharParser#requestUntilOrThrow(). def requestUntilOrThrow(i: Int): Unit -// ^ definition ujson/CharParser#requestUntilOrThrow().(i) i: Int -// ^^^ reference scala/Int# - if (requestUntil(i)) throw new IncompleteParseException("exhausted input") -// ^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#requestUntil(). -// ^ reference ujson/CharParser#requestUntilOrThrow().(i) -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/IncompleteParseException# -// reference ujson/IncompleteParseException#``(). - } - override def getCharSafe(i: Int): Char = { -// ^^^^^^^^^^^ definition ujson/CharParser#getCharSafe(). def getCharSafe(i: Int): Char -// ^ definition ujson/CharParser#getCharSafe().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Char# - requestUntilOrThrow(i) -// ^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#requestUntilOrThrow(). -// ^ reference ujson/CharParser#getCharSafe().(i) - getCharUnsafe(i) -// ^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#getCharUnsafe(). -// ^ reference ujson/CharParser#getCharSafe().(i) - } - - /** - * Return true iff 'i' is at or beyond the end of the input (EOF). - */ - protected[this] def atEof(i: Int) = requestUntil(i) -// ^^^^^ definition ujson/CharParser#atEof(). def atEof(i: Int): Boolean -// ^ definition ujson/CharParser#atEof().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#requestUntil(). -// ^ reference ujson/CharParser#atEof().(i) - - /** - * Should be called when parsing is finished. - */ - protected[this] def close(): Unit -// ^^^^^ definition ujson/CharParser#close(). def close(): Unit -// ^^^^ reference scala/Unit# - - /** - * Valid parser states. - */ - @inline private[this] final val ARRBEG = 6 -// ^^^^^^ reference scala/inline# -// reference scala/inline#``(). -// ^^^^^^ definition ujson/CharParser#ARRBEG. @inline private[this] final val ARRBEG: 6 - @inline private[this] final val OBJBEG = 7 -// ^^^^^^ reference scala/inline# -// reference scala/inline#``(). -// ^^^^^^ definition ujson/CharParser#OBJBEG. @inline private[this] final val OBJBEG: 7 - @inline private[this] final val DATA = 1 -// ^^^^^^ reference scala/inline# -// reference scala/inline#``(). -// ^^^^ definition ujson/CharParser#DATA. @inline private[this] final val DATA: 1 - @inline private[this] final val KEY = 2 -// ^^^^^^ reference scala/inline# -// reference scala/inline#``(). -// ^^^ definition ujson/CharParser#KEY. @inline private[this] final val KEY: 2 - @inline private[this] final val COLON = 3 -// ^^^^^^ reference scala/inline# -// reference scala/inline#``(). -// ^^^^^ definition ujson/CharParser#COLON. @inline private[this] final val COLON: 3 - @inline private[this] final val ARREND = 4 -// ^^^^^^ reference scala/inline# -// reference scala/inline#``(). -// ^^^^^^ definition ujson/CharParser#ARREND. @inline private[this] final val ARREND: 4 - @inline private[this] final val OBJEND = 5 -// ^^^^^^ reference scala/inline# -// reference scala/inline#``(). -// ^^^^^^ definition ujson/CharParser#OBJEND. @inline private[this] final val OBJEND: 5 - - /** - * Parse the JSON document into a single JSON value. - * - * The parser considers documents like '333', 'true', and '"foo"' to be - * valid, as well as more traditional documents like [1,2,3,4,5]. However, - * multiple top-level objects are not allowed. - */ - final def parse(facade: Visitor[_, J]): J = { -// ^^^^^ definition ujson/CharParser#parse(). final def parse(facade: Visitor[local0, J[): J -// ^^^^^^ definition ujson/CharParser#parse().(facade) facade: Visitor[local0, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] -// ^ reference ujson/CharParser#[J] - val (value, i) = parseTopLevel(0, facade) -// ^^^^^ definition local2 value: J -// ^ definition local3 i: Int -// ^^^^^^^^^^^^^ reference ujson/CharParser#parseTopLevel(). -// ^^^^^^ reference ujson/CharParser#parse().(facade) - var j = i -// ^ definition local4 j: Int -// ^ reference local3 - while (!atEof(j)) { -// ^ reference scala/Boolean#`unary_!`(). -// ^^^^^ reference ujson/CharParser#atEof(). -// ^ reference local4 - (getCharSafe(j): @switch) match { -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local4 - case '\n' | ' ' | '\t' | '\r' => j += 1 -// ^ reference local4 -// ^^ reference scala/Int#`+`(+4). - case _ => die(j, "expected whitespace or eof") -// ^^^ reference ujson/CharParser#die(). -// ^ reference local4 - } - } - if (!atEof(j)) die(j, "expected eof") -// ^ reference scala/Boolean#`unary_!`(). -// ^^^^^ reference ujson/CharParser#atEof(). -// ^ reference local4 -// ^^^ reference ujson/CharParser#die(). -// ^ reference local4 - close() -// ^^^^^ reference ujson/CharParser#close(). - value -// ^^^^^ reference local2 - } - - /** - * Used to generate error messages with character info and offsets. - */ - protected[this] def die(i: Int, msg: String): Nothing = { -// ^^^ definition ujson/CharParser#die(). def die(i: Int, msg: String): Nothing -// ^ definition ujson/CharParser#die().(i) i: Int -// ^^^ reference scala/Int# -// ^^^ definition ujson/CharParser#die().(msg) msg: String -// ^^^^^^ reference scala/Predef.String# -// ^^^^^^^ reference scala/Nothing# - val out = new upickle.core.CharBuilder() -// ^^^ definition local6 out: CharBuilder -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/CharBuilder# -// reference upickle/core/CharBuilder#``(). - upickle.core.RenderUtils.escapeChar( -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/RenderUtils. -// ^^^^^^^^^^ reference upickle/core/RenderUtils.escapeChar(). - new upickle.core.CharBuilder(), -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/CharBuilder# -// reference upickle/core/CharBuilder#``(). - out, -// ^^^ reference local6 - new ArrayCharSequence(Array(elemOps.toInt(getCharSafe(i)).toChar)), -// ^^^^^^^^^^^^^^^^^ reference scala/Predef.ArrayCharSequence# -// reference scala/Predef.ArrayCharSequence#``(). -// ^^^^^ reference scala/Array. -// ^^^^^^^ reference ujson/CharParser#elemOps. -// ^^^^^ reference upickle/core/CharOps.toInt(). -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference ujson/CharParser#die().(i) -// ^^^^^^ reference scala/Int#toChar(). - unicode = false -// ^^^^^^^ reference upickle/core/RenderUtils.escapeChar().(unicode) - ) - val s = "%s got %s" format (msg, out.makeString()) -// ^ definition local7 s: String -// ^^^^^^ reference scala/collection/StringOps#format(). -// ^^^ reference ujson/CharParser#die().(msg) -// ^^^ reference local6 -// ^^^^^^^^^^ reference upickle/core/CharBuilder#makeString(). - throw ParseException(s, i) -// ^^^^^^^^^^^^^^ reference ujson/ParseException. -// ^ reference local7 -// ^ reference ujson/CharParser#die().(i) - } - - - /** - * Parse the given number, and add it to the given context. - * - * We don't actually instantiate a number here, but rather pass the - * string of for future use. Facades can choose to be lazy and just - * store the string. This ends up being way faster and has the nice - * side-effect that we know exactly how the user represented the - * number. - */ - protected[this] final def parseNum(i: Int, ctxt: ObjArrVisitor[Any, J], facade: Visitor[_, J]): Int = { -// ^^^^^^^^ definition ujson/CharParser#parseNum(). final def parseNum(i: Int, ctxt: ObjArrVisitor[Any, J], facade: Visitor[local8, J[): Int -// ^ definition ujson/CharParser#parseNum().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^ definition ujson/CharParser#parseNum().(ctxt) ctxt: ObjArrVisitor[Any, J] -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^^^ reference scala/Any# -// ^ reference ujson/CharParser#[J] -// ^^^^^^ definition ujson/CharParser#parseNum().(facade) facade: Visitor[local8, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] -// ^^^ reference scala/Int# - var j = i -// ^ definition local9 j: Int -// ^ reference ujson/CharParser#parseNum().(i) - var c = getCharSafe(j) -// ^ definition local10 c: Char -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local9 - var decIndex = -1 -// ^^^^^^^^ definition local11 decIndex: Int - var expIndex = -1 -// ^^^^^^^^ definition local12 expIndex: Int - - if (c == '-') { -// ^ reference local10 -// ^^ reference scala/Char#`==`(+2). - j += 1 -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getCharSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local9 - } - if (c == '0') { -// ^ reference local10 -// ^^ reference scala/Char#`==`(+2). - j += 1 -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getCharSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local9 - } else { - val j0 = j -// ^^ definition local13 j0: Int -// ^ reference local9 - while (elemOps.within('0', c, '9')) { -// ^^^^^^^ reference ujson/CharParser#elemOps. -// ^^^^^^ reference upickle/core/CharOps.within(). -// ^ reference local10 - j += 1; -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getCharSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local9 - } - if (j == j0) die(i, "expected digit") -// ^ reference local9 -// ^^ reference scala/Int#`==`(+3). -// ^^ reference local13 -// ^^^ reference ujson/CharParser#die(). -// ^ reference ujson/CharParser#parseNum().(i) - } - - if (c == '.') { -// ^ reference local10 -// ^^ reference scala/Char#`==`(+2). - decIndex = j - i -// ^^^^^^^^ reference local11 -// ^ reference local9 -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/CharParser#parseNum().(i) - j += 1 -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getCharSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local9 - val j0 = j -// ^^ definition local15 j0: Int -// ^ reference local9 - while (elemOps.within('0', c, '9')) { -// ^^^^^^^ reference ujson/CharParser#elemOps. -// ^^^^^^ reference upickle/core/CharOps.within(). -// ^ reference local10 - j += 1 -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getCharSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local9 - } - if (j0 == j) die(i, "expected digit") -// ^^ reference local15 -// ^^ reference scala/Int#`==`(+3). -// ^ reference local9 -// ^^^ reference ujson/CharParser#die(). -// ^ reference ujson/CharParser#parseNum().(i) - } - - if (c == 'e' || c == 'E') { -// ^ reference local10 -// ^^ reference scala/Char#`==`(+2). -// ^^ reference scala/Boolean#`||`(). -// ^ reference local10 -// ^^ reference scala/Char#`==`(+2). - expIndex = j - i -// ^^^^^^^^ reference local12 -// ^ reference local9 -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/CharParser#parseNum().(i) - j += 1 -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getCharSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local9 - if (c == '+' || c == '-') { -// ^ reference local10 -// ^^ reference scala/Char#`==`(+2). -// ^^ reference scala/Boolean#`||`(). -// ^ reference local10 -// ^^ reference scala/Char#`==`(+2). - j += 1 -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getCharSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local9 - } - val j0 = j -// ^^ definition local17 j0: Int -// ^ reference local9 - while (elemOps.within('0', c, '9')) { -// ^^^^^^^ reference ujson/CharParser#elemOps. -// ^^^^^^ reference upickle/core/CharOps.within(). -// ^ reference local10 - j += 1 -// ^ reference local9 -// ^^ reference scala/Int#`+`(+4). - c = getCharSafe(j) -// ^ reference local10 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local9 - } - if (j0 == j) die(i, "expected digit") -// ^^ reference local17 -// ^^ reference scala/Int#`==`(+3). -// ^ reference local9 -// ^^^ reference ujson/CharParser#die(). -// ^ reference ujson/CharParser#parseNum().(i) - } - - ctxt.visitValue(visitFloat64StringPartsWithWrapper(facade, decIndex, expIndex, i, j), i) -// ^^^^ reference ujson/CharParser#parseNum().(ctxt) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#visitFloat64StringPartsWithWrapper(). -// ^^^^^^ reference ujson/CharParser#parseNum().(facade) -// ^^^^^^^^ reference local11 -// ^^^^^^^^ reference local12 -// ^ reference ujson/CharParser#parseNum().(i) -// ^ reference local9 -// ^ reference ujson/CharParser#parseNum().(i) - j -// ^ reference local9 - } - - def visitFloat64StringPartsWithWrapper(facade: Visitor[_, J], -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition ujson/CharParser#visitFloat64StringPartsWithWrapper(). def visitFloat64StringPartsWithWrapper(facade: Visitor[local19, J[, decIndex: Int, expIndex: Int, i: Int, j: Int): J -// ^^^^^^ definition ujson/CharParser#visitFloat64StringPartsWithWrapper().(facade) facade: Visitor[local19, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] - decIndex: Int, -// ^^^^^^^^ definition ujson/CharParser#visitFloat64StringPartsWithWrapper().(decIndex) decIndex: Int -// ^^^ reference scala/Int# - expIndex: Int, -// ^^^^^^^^ definition ujson/CharParser#visitFloat64StringPartsWithWrapper().(expIndex) expIndex: Int -// ^^^ reference scala/Int# - i: Int, -// ^ definition ujson/CharParser#visitFloat64StringPartsWithWrapper().(i) i: Int -// ^^^ reference scala/Int# - j: Int) = { -// ^ definition ujson/CharParser#visitFloat64StringPartsWithWrapper().(j) j: Int -// ^^^ reference scala/Int# - facade.visitFloat64StringParts( -// ^^^^^^ reference ujson/CharParser#visitFloat64StringPartsWithWrapper().(facade) -// ^^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/Visitor#visitFloat64StringParts(). - unsafeCharSeqForRange(i, j - i), -// ^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#unsafeCharSeqForRange(). -// ^ reference ujson/CharParser#visitFloat64StringPartsWithWrapper().(i) -// ^ reference ujson/CharParser#visitFloat64StringPartsWithWrapper().(j) -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/CharParser#visitFloat64StringPartsWithWrapper().(i) - decIndex, -// ^^^^^^^^ reference ujson/CharParser#visitFloat64StringPartsWithWrapper().(decIndex) - expIndex, -// ^^^^^^^^ reference ujson/CharParser#visitFloat64StringPartsWithWrapper().(expIndex) - i -// ^ reference ujson/CharParser#visitFloat64StringPartsWithWrapper().(i) - ) - } - - /** - * Parse the given number, and add it to the given context. - * - * This method is a bit slower than parseNum() because it has to be - * sure it doesn't run off the end of the input. - * - * Normally (when operating in rparse in the context of an outer - * array or object) we don't need to worry about this and can just - * grab characters, because if we run out of characters that would - * indicate bad input. This is for cases where the number could - * possibly be followed by a valid EOF. - * - * This method has all the same caveats as the previous method. - */ - protected[this] final def parseNumTopLevel(i: Int, facade: Visitor[_, J]): (J, Int) = { -// ^^^^^^^^^^^^^^^^ definition ujson/CharParser#parseNumTopLevel(). final def parseNumTopLevel(i: Int, facade: Visitor[local20, J[): (J, Int) -// ^ definition ujson/CharParser#parseNumTopLevel().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/CharParser#parseNumTopLevel().(facade) facade: Visitor[local20, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] -// ^ reference ujson/CharParser#[J] -// ^^^ reference scala/Int# - var j = i -// ^ definition local21 j: Int -// ^ reference ujson/CharParser#parseNumTopLevel().(i) - var c = getCharSafe(j) -// ^ definition local22 c: Char -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local21 - var decIndex = -1 -// ^^^^^^^^ definition local23 decIndex: Int - var expIndex = -1 -// ^^^^^^^^ definition local24 expIndex: Int - - if (c == '-') { -// ^ reference local22 -// ^^ reference scala/Char#`==`(+2). - // any valid input will require at least one digit after - - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - c = getCharSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local21 - } - if (c == '0') { -// ^ reference local22 -// ^^ reference scala/Char#`==`(+2). - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - if (atEof(j)) { -// ^^^^^ reference ujson/CharParser#atEof(). -// ^ reference local21 - return (visitFloat64StringPartsWithWrapper(facade, decIndex, expIndex, i, j), j) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#visitFloat64StringPartsWithWrapper(). -// ^^^^^^ reference ujson/CharParser#parseNumTopLevel().(facade) -// ^^^^^^^^ reference local23 -// ^^^^^^^^ reference local24 -// ^ reference ujson/CharParser#parseNumTopLevel().(i) -// ^ reference local21 -// ^ reference local21 - } - c = getCharSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local21 - } else { - val j0 = j -// ^^ definition local25 j0: Int -// ^ reference local21 - while (elemOps.within('0', c, '9')) { -// ^^^^^^^ reference ujson/CharParser#elemOps. -// ^^^^^^ reference upickle/core/CharOps.within(). -// ^ reference local22 - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - if (atEof(j)) { -// ^^^^^ reference ujson/CharParser#atEof(). -// ^ reference local21 - return (visitFloat64StringPartsWithWrapper(facade, decIndex, expIndex, i, j), j) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#visitFloat64StringPartsWithWrapper(). -// ^^^^^^ reference ujson/CharParser#parseNumTopLevel().(facade) -// ^^^^^^^^ reference local23 -// ^^^^^^^^ reference local24 -// ^ reference ujson/CharParser#parseNumTopLevel().(i) -// ^ reference local21 -// ^ reference local21 - } - c = getCharSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local21 - } - if (j0 == j) die(i, "expected digit") -// ^^ reference local25 -// ^^ reference scala/Int#`==`(+3). -// ^ reference local21 -// ^^^ reference ujson/CharParser#die(). -// ^ reference ujson/CharParser#parseNumTopLevel().(i) - } - - if (c == '.') { -// ^ reference local22 -// ^^ reference scala/Char#`==`(+2). - // any valid input will require at least one digit after . - decIndex = j - i -// ^^^^^^^^ reference local23 -// ^ reference local21 -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/CharParser#parseNumTopLevel().(i) - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - c = getCharSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local21 - val j0 = j -// ^^ definition local27 j0: Int -// ^ reference local21 - while (elemOps.within('0', c, '9')) { -// ^^^^^^^ reference ujson/CharParser#elemOps. -// ^^^^^^ reference upickle/core/CharOps.within(). -// ^ reference local22 - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - if (atEof(j)) { -// ^^^^^ reference ujson/CharParser#atEof(). -// ^ reference local21 - return (visitFloat64StringPartsWithWrapper(facade, decIndex, expIndex, i, j), j) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#visitFloat64StringPartsWithWrapper(). -// ^^^^^^ reference ujson/CharParser#parseNumTopLevel().(facade) -// ^^^^^^^^ reference local23 -// ^^^^^^^^ reference local24 -// ^ reference ujson/CharParser#parseNumTopLevel().(i) -// ^ reference local21 -// ^ reference local21 - } - c = getCharSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local21 - } - if(j0 == j) die(i, "expected digit") -// ^^ reference local27 -// ^^ reference scala/Int#`==`(+3). -// ^ reference local21 -// ^^^ reference ujson/CharParser#die(). -// ^ reference ujson/CharParser#parseNumTopLevel().(i) - } - - if (c == 'e' || c == 'E') { -// ^ reference local22 -// ^^ reference scala/Char#`==`(+2). -// ^^ reference scala/Boolean#`||`(). -// ^ reference local22 -// ^^ reference scala/Char#`==`(+2). - // any valid input will require at least one digit after e, e+, etc - expIndex = j - i -// ^^^^^^^^ reference local24 -// ^ reference local21 -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/CharParser#parseNumTopLevel().(i) - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - c = getCharSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local21 - if (c == '+' || c == '-') { -// ^ reference local22 -// ^^ reference scala/Char#`==`(+2). -// ^^ reference scala/Boolean#`||`(). -// ^ reference local22 -// ^^ reference scala/Char#`==`(+2). - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - c = getCharSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local21 - } - val j0 = j -// ^^ definition local29 j0: Int -// ^ reference local21 - while (elemOps.within('0', c, '9')) { -// ^^^^^^^ reference ujson/CharParser#elemOps. -// ^^^^^^ reference upickle/core/CharOps.within(). -// ^ reference local22 - j += 1 -// ^ reference local21 -// ^^ reference scala/Int#`+`(+4). - if (atEof(j)) { -// ^^^^^ reference ujson/CharParser#atEof(). -// ^ reference local21 - return (visitFloat64StringPartsWithWrapper(facade, decIndex, expIndex, i, j), j) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#visitFloat64StringPartsWithWrapper(). -// ^^^^^^ reference ujson/CharParser#parseNumTopLevel().(facade) -// ^^^^^^^^ reference local23 -// ^^^^^^^^ reference local24 -// ^ reference ujson/CharParser#parseNumTopLevel().(i) -// ^ reference local21 -// ^ reference local21 - } - c = getCharSafe(j) -// ^ reference local22 -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local21 - } - if (j0 == j) die(i, "expected digit") -// ^^ reference local29 -// ^^ reference scala/Int#`==`(+3). -// ^ reference local21 -// ^^^ reference ujson/CharParser#die(). -// ^ reference ujson/CharParser#parseNumTopLevel().(i) - } - - (visitFloat64StringPartsWithWrapper(facade, decIndex, expIndex, i, j), j) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#visitFloat64StringPartsWithWrapper(). -// ^^^^^^ reference ujson/CharParser#parseNumTopLevel().(facade) -// ^^^^^^^^ reference local23 -// ^^^^^^^^ reference local24 -// ^ reference ujson/CharParser#parseNumTopLevel().(i) -// ^ reference local21 -// ^ reference local21 - } - - /** - * Generate a Char from the hex digits of "\u1234" (i.e. "1234"). - * - * NOTE: This is only capable of generating characters from the basic plane. - * This is why it can only return Char instead of Int. - */ - protected[this] final def descape(i: Int): Char = { -// ^^^^^^^ definition ujson/CharParser#descape(). final def descape(i: Int): Char -// ^ definition ujson/CharParser#descape().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Char# - import upickle.core.RenderUtils.hex -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/RenderUtils. -// ^^^ reference upickle/core/RenderUtils.hex(). - var x = 0 -// ^ definition local31 x: Int - x = (x << 4) | hex(getCharSafe(i+2).toInt) -// ^ reference local31 -// ^ reference local31 -// ^^ reference scala/Int#`<<`(). -// ^ reference scala/Int#`|`(+3). -// ^^^ reference upickle/core/RenderUtils.hex(). -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference ujson/CharParser#descape().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^ reference scala/Char#toInt(). - x = (x << 4) | hex(getCharSafe(i+3).toInt) -// ^ reference local31 -// ^ reference local31 -// ^^ reference scala/Int#`<<`(). -// ^ reference scala/Int#`|`(+3). -// ^^^ reference upickle/core/RenderUtils.hex(). -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference ujson/CharParser#descape().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^ reference scala/Char#toInt(). - x = (x << 4) | hex(getCharSafe(i+4).toInt) -// ^ reference local31 -// ^ reference local31 -// ^^ reference scala/Int#`<<`(). -// ^ reference scala/Int#`|`(+3). -// ^^^ reference upickle/core/RenderUtils.hex(). -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference ujson/CharParser#descape().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^ reference scala/Char#toInt(). - x = (x << 4) | hex(getCharSafe(i+5).toInt) -// ^ reference local31 -// ^ reference local31 -// ^^ reference scala/Int#`<<`(). -// ^ reference scala/Int#`|`(+3). -// ^^^ reference upickle/core/RenderUtils.hex(). -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference ujson/CharParser#descape().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^ reference scala/Char#toInt(). - x.toChar -// ^ reference local31 -// ^^^^^^ reference scala/Int#toChar(). - } - - - /** - * Parse the JSON constant "true". - * - * Note that this method assumes that the first character has already been checked. - */ - protected[this] final def parseTrue(i: Int, facade: Visitor[_, J]): J = { -// ^^^^^^^^^ definition ujson/CharParser#parseTrue(). final def parseTrue(i: Int, facade: Visitor[local32, J[): J -// ^ definition ujson/CharParser#parseTrue().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/CharParser#parseTrue().(facade) facade: Visitor[local32, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] -// ^ reference ujson/CharParser#[J] - requestUntilOrThrow(i + 3) -// ^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#requestUntilOrThrow(). -// ^ reference ujson/CharParser#parseTrue().(i) -// ^ reference scala/Int#`+`(+4). - if (getCharUnsafe(i + 1) == 'r' && getCharUnsafe(i + 2) == 'u' && getCharUnsafe(i + 3) == 'e') { -// ^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#getCharUnsafe(). -// ^ reference ujson/CharParser#parseTrue().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Char#`==`(+2). -// ^^ reference scala/Boolean#`&&`(). -// ^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#getCharUnsafe(). -// ^ reference ujson/CharParser#parseTrue().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Char#`==`(+2). -// ^^ reference scala/Boolean#`&&`(). -// ^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#getCharUnsafe(). -// ^ reference ujson/CharParser#parseTrue().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Char#`==`(+2). - facade.visitTrue(i) -// ^^^^^^ reference ujson/CharParser#parseTrue().(facade) -// ^^^^^^^^^ reference upickle/core/Visitor#visitTrue(). -// ^ reference ujson/CharParser#parseTrue().(i) - } else { - die(i, "expected true") -// ^^^ reference ujson/CharParser#die(). -// ^ reference ujson/CharParser#parseTrue().(i) - } - } - - /** - * Parse the JSON constant "false". - * - * Note that this method assumes that the first character has already been checked. - */ - protected[this] final def parseFalse(i: Int, facade: Visitor[_, J]): J = { -// ^^^^^^^^^^ definition ujson/CharParser#parseFalse(). final def parseFalse(i: Int, facade: Visitor[local33, J[): J -// ^ definition ujson/CharParser#parseFalse().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/CharParser#parseFalse().(facade) facade: Visitor[local33, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] -// ^ reference ujson/CharParser#[J] - requestUntilOrThrow(i + 4) -// ^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#requestUntilOrThrow(). -// ^ reference ujson/CharParser#parseFalse().(i) -// ^ reference scala/Int#`+`(+4). - - if (getCharUnsafe(i + 1) == 'a' && getCharUnsafe(i + 2) == 'l' && getCharUnsafe(i + 3) == 's' && getCharUnsafe(i + 4) == 'e') { -// ^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#getCharUnsafe(). -// ^ reference ujson/CharParser#parseFalse().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Char#`==`(+2). -// ^^ reference scala/Boolean#`&&`(). -// ^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#getCharUnsafe(). -// ^ reference ujson/CharParser#parseFalse().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Char#`==`(+2). -// ^^ reference scala/Boolean#`&&`(). -// ^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#getCharUnsafe(). -// ^ reference ujson/CharParser#parseFalse().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Char#`==`(+2). -// ^^ reference scala/Boolean#`&&`(). -// ^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#getCharUnsafe(). -// ^ reference ujson/CharParser#parseFalse().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Char#`==`(+2). - facade.visitFalse(i) -// ^^^^^^ reference ujson/CharParser#parseFalse().(facade) -// ^^^^^^^^^^ reference upickle/core/Visitor#visitFalse(). -// ^ reference ujson/CharParser#parseFalse().(i) - } else { - die(i, "expected false") -// ^^^ reference ujson/CharParser#die(). -// ^ reference ujson/CharParser#parseFalse().(i) - } - } - - /** - * Parse the JSON constant "null". - * - * Note that this method assumes that the first character has already been checked. - */ - protected[this] final def parseNull(i: Int, facade: Visitor[_, J]): J = { -// ^^^^^^^^^ definition ujson/CharParser#parseNull(). final def parseNull(i: Int, facade: Visitor[local34, J[): J -// ^ definition ujson/CharParser#parseNull().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/CharParser#parseNull().(facade) facade: Visitor[local34, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] -// ^ reference ujson/CharParser#[J] - requestUntilOrThrow(i + 3) -// ^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#requestUntilOrThrow(). -// ^ reference ujson/CharParser#parseNull().(i) -// ^ reference scala/Int#`+`(+4). - if (getCharUnsafe(i + 1) == 'u' && getCharUnsafe(i + 2) == 'l' && getCharUnsafe(i + 3) == 'l') { -// ^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#getCharUnsafe(). -// ^ reference ujson/CharParser#parseNull().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Char#`==`(+2). -// ^^ reference scala/Boolean#`&&`(). -// ^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#getCharUnsafe(). -// ^ reference ujson/CharParser#parseNull().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Char#`==`(+2). -// ^^ reference scala/Boolean#`&&`(). -// ^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#getCharUnsafe(). -// ^ reference ujson/CharParser#parseNull().(i) -// ^ reference scala/Int#`+`(+4). -// ^^ reference scala/Char#`==`(+2). - facade.visitNull(i) -// ^^^^^^ reference ujson/CharParser#parseNull().(facade) -// ^^^^^^^^^ reference upickle/core/Visitor#visitNull(). -// ^ reference ujson/CharParser#parseNull().(i) - } else { - die(i, "expected null") -// ^^^ reference ujson/CharParser#die(). -// ^ reference ujson/CharParser#parseNull().(i) - } - } - - protected[this] final def parseTopLevel(i: Int, facade: Visitor[_, J]): (J, Int) = { -// ^^^^^^^^^^^^^ definition ujson/CharParser#parseTopLevel(). final def parseTopLevel(i: Int, facade: Visitor[local35, J[): (J, Int) -// ^ definition ujson/CharParser#parseTopLevel().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/CharParser#parseTopLevel().(facade) facade: Visitor[local35, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] -// ^ reference ujson/CharParser#[J] -// ^^^ reference scala/Int# - try parseTopLevel0(i, facade) -// ^^^^^^^^^^^^^^ reference ujson/CharParser#parseTopLevel0(). -// ^ reference ujson/CharParser#parseTopLevel().(i) -// ^^^^^^ reference ujson/CharParser#parseTopLevel().(facade) - catch reject(i) -// ^^^^^^ reference ujson/CharParser#reject(). -// ^ reference ujson/CharParser#parseTopLevel().(i) - } - /** - * Parse and return the next JSON value and the position beyond it. - */ - @tailrec -// ^^^^^^^ reference scala/annotation/tailrec# -// reference scala/annotation/tailrec#``(). - protected[this] final def parseTopLevel0(i: Int, facade: Visitor[_, J]): (J, Int) = { -// ^^^^^^^^^^^^^^ definition ujson/CharParser#parseTopLevel0(). @tailrec final def parseTopLevel0(i: Int, facade: Visitor[local38, J[): (J, Int) -// ^ definition ujson/CharParser#parseTopLevel0().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/CharParser#parseTopLevel0().(facade) facade: Visitor[local38, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] -// ^ reference ujson/CharParser#[J] -// ^^^ reference scala/Int# - (getCharSafe(i): @switch) match { -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference ujson/CharParser#parseTopLevel0().(i) - // ignore whitespace - case ' ' | '\t' | 'r' => parseTopLevel0(i + 1, facade) -// ^^^^^^^^^^^^^^ reference ujson/CharParser#parseTopLevel0(). -// ^ reference ujson/CharParser#parseTopLevel0().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^ reference ujson/CharParser#parseTopLevel0().(facade) - case '\n' => parseTopLevel0(i + 1, facade) -// ^^^^^^^^^^^^^^ reference ujson/CharParser#parseTopLevel0(). -// ^ reference ujson/CharParser#parseTopLevel0().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^ reference ujson/CharParser#parseTopLevel0().(facade) - - // if we have a recursive top-level structure, we'll delegate the parsing - // duties to our good friend rparse(). - case '[' => parseNested(ARRBEG, i + 1, facade.visitArray(-1, i), Nil) -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^^^ reference ujson/CharParser#ARRBEG. -// ^ reference ujson/CharParser#parseTopLevel0().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^ reference ujson/CharParser#parseTopLevel0().(facade) -// ^^^^^^^^^^ reference upickle/core/Visitor#visitArray(). -// ^ reference ujson/CharParser#parseTopLevel0().(i) -// ^^^ reference scala/package.Nil. - case '{' => parseNested(OBJBEG, i + 1, facade.visitObject(-1, i), Nil) -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^^^ reference ujson/CharParser#OBJBEG. -// ^ reference ujson/CharParser#parseTopLevel0().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^ reference ujson/CharParser#parseTopLevel0().(facade) -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitObject(). -// ^ reference ujson/CharParser#parseTopLevel0().(i) -// ^^^ reference scala/package.Nil. - - // we have a single top-level number - case '-' | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' => parseNumTopLevel(i, facade) -// ^^^^^^^^^^^^^^^^ reference ujson/CharParser#parseNumTopLevel(). -// ^ reference ujson/CharParser#parseTopLevel0().(i) -// ^^^^^^ reference ujson/CharParser#parseTopLevel0().(facade) - - // we have a single top-level string - case '"' => parseStringTopLevel(i, facade) -// ^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#parseStringTopLevel(). -// ^ reference ujson/CharParser#parseTopLevel0().(i) -// ^^^^^^ reference ujson/CharParser#parseTopLevel0().(facade) - - // we have a single top-level constant - case 't' => (parseTrue(i, facade), i + 4) -// ^^^^^^^^^ reference ujson/CharParser#parseTrue(). -// ^ reference ujson/CharParser#parseTopLevel0().(i) -// ^^^^^^ reference ujson/CharParser#parseTopLevel0().(facade) -// ^ reference ujson/CharParser#parseTopLevel0().(i) -// ^ reference scala/Int#`+`(+4). - case 'f' => (parseFalse(i, facade), i + 5) -// ^^^^^^^^^^ reference ujson/CharParser#parseFalse(). -// ^ reference ujson/CharParser#parseTopLevel0().(i) -// ^^^^^^ reference ujson/CharParser#parseTopLevel0().(facade) -// ^ reference ujson/CharParser#parseTopLevel0().(i) -// ^ reference scala/Int#`+`(+4). - case 'n' => (parseNull(i, facade), i + 4) -// ^^^^^^^^^ reference ujson/CharParser#parseNull(). -// ^ reference ujson/CharParser#parseTopLevel0().(i) -// ^^^^^^ reference ujson/CharParser#parseTopLevel0().(facade) -// ^ reference ujson/CharParser#parseTopLevel0().(i) -// ^ reference scala/Int#`+`(+4). - - // invalid - case _ => die(i, "expected json value") -// ^^^ reference ujson/CharParser#die(). -// ^ reference ujson/CharParser#parseTopLevel0().(i) - } - } - - def reject(j: Int): PartialFunction[Throwable, Nothing] = { -// ^^^^^^ definition ujson/CharParser#reject(). def reject(j: Int): PartialFunction[Throwable, Nothing] -// ^ definition ujson/CharParser#reject().(j) j: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^^^^ reference scala/PartialFunction# -// ^^^^^^^^^ reference scala/package.Throwable# -// ^^^^^^^ reference scala/Nothing# -// definition local39 @SerialVersionUID final class $anonfun - case e: Abort => -// ^ definition local46 e: Abort -// ^^^^^ reference upickle/core/Abort# - throw new AbortException(e.msg, j, -1, -1, e) -// ^^^^^^^^^^^^^^ reference upickle/core/AbortException# -// reference upickle/core/AbortException#``(). -// ^ reference local46 -// ^^^ reference upickle/core/Abort#msg. -// ^ reference ujson/CharParser#reject().(j) -// ^ reference local46 - } - /** - * Tail-recursive parsing method to do the bulk of JSON parsing. - * - * This single method manages parser states, data, etc. Except for - * parsing non-recursive values (like strings, numbers, and - * constants) all important work happens in this loop (or in methods - * it calls, like reset()). - * - * Currently the code is optimized to make use of switch - * statements. Future work should consider whether this is better or - * worse than manually constructed if/else statements or something - * else. Also, it may be possible to reorder some cases for speed - * improvements. - * - * @param j index/position in the source json - * @param path the json path in the tree - */ - @tailrec -// ^^^^^^^ reference scala/annotation/tailrec# -// reference scala/annotation/tailrec#``(). - protected[this] final def parseNested(state: Int, -// ^^^^^^^^^^^ definition ujson/CharParser#parseNested(). @tailrec final def parseNested(state: Int, i: Int, stackHead: ObjArrVisitor[local50, J[, stackTail: List[ObjArrVisitor[local51, J[]): (J, Int) -// ^^^^^ definition ujson/CharParser#parseNested().(state) state: Int -// ^^^ reference scala/Int# - i: Int, -// ^ definition ujson/CharParser#parseNested().(i) i: Int -// ^^^ reference scala/Int# - stackHead: ObjArrVisitor[_, J], -// ^^^^^^^^^ definition ujson/CharParser#parseNested().(stackHead) stackHead: ObjArrVisitor[local50, J[ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/CharParser#[J] - stackTail: List[ObjArrVisitor[_, J]]) : (J, Int) = { -// ^^^^^^^^^ definition ujson/CharParser#parseNested().(stackTail) stackTail: List[ObjArrVisitor[local51, J[] -// ^^^^ reference scala/package.List# -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/CharParser#[J] -// ^ reference ujson/CharParser#[J] -// ^^^ reference scala/Int# - (getCharSafe(i): @switch) match{ -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference ujson/CharParser#parseNested().(i) - case ' ' | '\t' | '\r' | '\n' => - parseNested(state, i + 1, stackHead, stackTail) -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^^ reference ujson/CharParser#parseNested().(state) -// ^ reference ujson/CharParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) - - case '"' => - state match{ -// ^^^^^ reference ujson/CharParser#parseNested().(state) - case KEY | OBJBEG => -// ^^^ reference ujson/CharParser#KEY. -// ^^^^^^ reference ujson/CharParser#OBJBEG. - val nextJ = try parseStringKey(i, stackHead) catch reject(i) -// ^^^^^ definition local52 nextJ: Int -// ^^^^^^^^^^^^^^ reference ujson/CharParser#parseStringKey(). -// ^ reference ujson/CharParser#parseNested().(i) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^ reference ujson/CharParser#reject(). -// ^ reference ujson/CharParser#parseNested().(i) - parseNested(COLON, nextJ, stackHead, stackTail) -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^^ reference ujson/CharParser#COLON. -// ^^^^^ reference local52 -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) - - case DATA | ARRBEG => -// ^^^^ reference ujson/CharParser#DATA. -// ^^^^^^ reference ujson/CharParser#ARRBEG. - val nextJ = try parseStringValue(i, stackHead) catch reject(i) -// ^^^^^ definition local55 nextJ: Int -// ^^^^^^^^^^^^^^^^ reference ujson/CharParser#parseStringValue(). -// ^ reference ujson/CharParser#parseNested().(i) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^ reference ujson/CharParser#reject(). -// ^ reference ujson/CharParser#parseNested().(i) - parseNested(collectionEndFor(stackHead), nextJ, stackHead, stackTail) -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^^^^^^^^^^^^^ reference ujson/CharParser#collectionEndFor(). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^ reference local55 -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) - - case _ => dieWithFailureMessage(i, state) -// ^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#dieWithFailureMessage(). -// ^ reference ujson/CharParser#parseNested().(i) -// ^^^^^ reference ujson/CharParser#parseNested().(state) - } - - case ':' => - // we are in an object just after a key, expecting to see a colon. - state match{ -// ^^^^^ reference ujson/CharParser#parseNested().(state) - case COLON => parseNested(DATA, i + 1, stackHead, stackTail) -// ^^^^^ reference ujson/CharParser#COLON. -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^ reference ujson/CharParser#DATA. -// ^ reference ujson/CharParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) - case _ => dieWithFailureMessage(i, state) -// ^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#dieWithFailureMessage(). -// ^ reference ujson/CharParser#parseNested().(i) -// ^^^^^ reference ujson/CharParser#parseNested().(state) - } - - case '[' => - failIfNotData(state, i) -// ^^^^^^^^^^^^^ reference ujson/CharParser#failIfNotData(). -// ^^^^^ reference ujson/CharParser#parseNested().(state) -// ^ reference ujson/CharParser#parseNested().(i) - val ctx = -// ^^^ definition local58 ctx: ArrVisitor[local59, J[ - try stackHead.subVisitor.asInstanceOf[Visitor[_, J]].visitArray(-1, i) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] -// ^^^^^^^^^^ reference upickle/core/Visitor#visitArray(). -// ^ reference ujson/CharParser#parseNested().(i) - catch reject(i) -// ^^^^^^ reference ujson/CharParser#reject(). -// ^ reference ujson/CharParser#parseNested().(i) - parseNested(ARRBEG, i + 1, ctx, stackHead :: stackTail) -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^^^ reference ujson/CharParser#ARRBEG. -// ^ reference ujson/CharParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^ reference local58 -// ^^^^^^^^^ reference local62 -// ^^ reference scala/collection/immutable/List#`::`(). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) - - case '{' => - failIfNotData(state, i) -// ^^^^^^^^^^^^^ reference ujson/CharParser#failIfNotData(). -// ^^^^^ reference ujson/CharParser#parseNested().(state) -// ^ reference ujson/CharParser#parseNested().(i) - val ctx = -// ^^^ definition local63 ctx: ObjVisitor[local64, J[ - try stackHead.subVisitor.asInstanceOf[Visitor[_, J]].visitObject(-1, i) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitObject(). -// ^ reference ujson/CharParser#parseNested().(i) - catch reject(i) -// ^^^^^^ reference ujson/CharParser#reject(). -// ^ reference ujson/CharParser#parseNested().(i) - parseNested(OBJBEG, i + 1, ctx, stackHead :: stackTail) -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^^^ reference ujson/CharParser#OBJBEG. -// ^ reference ujson/CharParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^ reference local63 -// ^^^^^^^^^ reference local67 -// ^^ reference scala/collection/immutable/List#`::`(). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) - - case '-' | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' => - failIfNotData(state, i) -// ^^^^^^^^^^^^^ reference ujson/CharParser#failIfNotData(). -// ^^^^^ reference ujson/CharParser#parseNested().(state) -// ^ reference ujson/CharParser#parseNested().(i) - val ctx = -// ^^^ definition local68 ctx: Int - try parseNum(i, stackHead.narrow, stackHead.subVisitor.asInstanceOf[Visitor[_, J]]) -// ^^^^^^^^ reference ujson/CharParser#parseNum(). -// ^ reference ujson/CharParser#parseNested().(i) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^ reference upickle/core/ObjArrVisitor#narrow(). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] - catch reject(i) -// ^^^^^^ reference ujson/CharParser#reject(). -// ^ reference ujson/CharParser#parseNested().(i) - parseNested(collectionEndFor(stackHead), ctx, stackHead, stackTail) -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^^^^^^^^^^^^^ reference ujson/CharParser#collectionEndFor(). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^ reference local68 -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) - - case 't' => - failIfNotData(state, i) -// ^^^^^^^^^^^^^ reference ujson/CharParser#failIfNotData(). -// ^^^^^ reference ujson/CharParser#parseNested().(state) -// ^ reference ujson/CharParser#parseNested().(i) - try stackHead.narrow.visitValue( -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^ reference upickle/core/ObjArrVisitor#narrow(). -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). - parseTrue(i, stackHead.subVisitor.asInstanceOf[Visitor[_, J]]), -// ^^^^^^^^^ reference ujson/CharParser#parseTrue(). -// ^ reference ujson/CharParser#parseNested().(i) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] - i -// ^ reference ujson/CharParser#parseNested().(i) - ) - catch reject(i) -// ^^^^^^ reference ujson/CharParser#reject(). -// ^ reference ujson/CharParser#parseNested().(i) - parseNested(collectionEndFor(stackHead), i + 4, stackHead, stackTail) -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^^^^^^^^^^^^^ reference ujson/CharParser#collectionEndFor(). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^ reference ujson/CharParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) - - case 'f' => - failIfNotData(state, i) -// ^^^^^^^^^^^^^ reference ujson/CharParser#failIfNotData(). -// ^^^^^ reference ujson/CharParser#parseNested().(state) -// ^ reference ujson/CharParser#parseNested().(i) - try stackHead.narrow.visitValue( -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^ reference upickle/core/ObjArrVisitor#narrow(). -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). - parseFalse(i, stackHead.subVisitor.asInstanceOf[Visitor[_, J]]), -// ^^^^^^^^^^ reference ujson/CharParser#parseFalse(). -// ^ reference ujson/CharParser#parseNested().(i) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] - i -// ^ reference ujson/CharParser#parseNested().(i) - ) - catch reject(i) -// ^^^^^^ reference ujson/CharParser#reject(). -// ^ reference ujson/CharParser#parseNested().(i) - parseNested(collectionEndFor(stackHead), i + 5, stackHead, stackTail) -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^^^^^^^^^^^^^ reference ujson/CharParser#collectionEndFor(). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^ reference ujson/CharParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) - - case 'n' => - failIfNotData(state, i) -// ^^^^^^^^^^^^^ reference ujson/CharParser#failIfNotData(). -// ^^^^^ reference ujson/CharParser#parseNested().(state) -// ^ reference ujson/CharParser#parseNested().(i) - try stackHead.narrow.visitValue( -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^ reference upickle/core/ObjArrVisitor#narrow(). -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). - parseNull(i, stackHead.subVisitor.asInstanceOf[Visitor[_, J]]), -// ^^^^^^^^^ reference ujson/CharParser#parseNull(). -// ^ reference ujson/CharParser#parseNested().(i) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] - i -// ^ reference ujson/CharParser#parseNested().(i) - ) - catch reject(i) -// ^^^^^^ reference ujson/CharParser#reject(). -// ^ reference ujson/CharParser#parseNested().(i) - parseNested(collectionEndFor(stackHead), i + 4, stackHead, stackTail) -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^^^^^^^^^^^^^ reference ujson/CharParser#collectionEndFor(). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^ reference ujson/CharParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) - - case ',' => - dropBufferUntil(i) -// ^^^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#dropBufferUntil(). -// ^ reference ujson/CharParser#parseNested().(i) - (state: @switch) match{ -// ^^^^^ reference ujson/CharParser#parseNested().(state) - case ARREND => parseNested(DATA, i + 1, stackHead, stackTail) -// ^^^^^^ reference ujson/CharParser#ARREND. -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^ reference ujson/CharParser#DATA. -// ^ reference ujson/CharParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) - case OBJEND => parseNested(KEY, i + 1, stackHead, stackTail) -// ^^^^^^ reference ujson/CharParser#OBJEND. -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^ reference ujson/CharParser#KEY. -// ^ reference ujson/CharParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) - case _ => dieWithFailureMessage(i, state) -// ^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#dieWithFailureMessage(). -// ^ reference ujson/CharParser#parseNested().(i) -// ^^^^^ reference ujson/CharParser#parseNested().(state) - } - - case ']' => - (state: @switch) match{ -// ^^^^^ reference ujson/CharParser#parseNested().(state) - case ARREND | ARRBEG => -// ^^^^^^ reference ujson/CharParser#ARREND. -// ^^^^^^ reference ujson/CharParser#ARRBEG. - tryCloseCollection(stackHead, stackTail, i) match{ -// ^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#tryCloseCollection(). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) -// ^ reference ujson/CharParser#parseNested().(i) - case Some(t) => t -// ^^^^ reference scala/Some. -// ^ definition local77 t: (J, Int) -// ^ reference local77 - case None => -// ^^^^ reference scala/None. - val stackTailHead = stackTail.head -// ^^^^^^^^^^^^^ definition local78 stackTailHead: ObjArrVisitor[local51, J[ -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) -// ^^^^ reference scala/collection/IterableOps#head(). - parseNested(collectionEndFor(stackTailHead), i + 1, stackTailHead, stackTail.tail) -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^^^^^^^^^^^^^ reference ujson/CharParser#collectionEndFor(). -// ^^^^^^^^^^^^^ reference local78 -// ^ reference ujson/CharParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^^^^^ reference local78 -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) -// ^^^^ reference scala/collection/IterableOps#tail(). - } - case _ => dieWithFailureMessage(i, state) -// ^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#dieWithFailureMessage(). -// ^ reference ujson/CharParser#parseNested().(i) -// ^^^^^ reference ujson/CharParser#parseNested().(state) - } - - case '}' => - (state: @switch) match{ -// ^^^^^ reference ujson/CharParser#parseNested().(state) - case OBJEND | OBJBEG => -// ^^^^^^ reference ujson/CharParser#OBJEND. -// ^^^^^^ reference ujson/CharParser#OBJBEG. - tryCloseCollection(stackHead, stackTail, i) match{ -// ^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#tryCloseCollection(). -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackHead) -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) -// ^ reference ujson/CharParser#parseNested().(i) - case Some(t) => t -// ^^^^ reference scala/Some. -// ^ definition local79 t: (J, Int) -// ^ reference local79 - case None => -// ^^^^ reference scala/None. - val stackTailHead = stackTail.head -// ^^^^^^^^^^^^^ definition local80 stackTailHead: ObjArrVisitor[local51, J[ -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) -// ^^^^ reference scala/collection/IterableOps#head(). - parseNested(collectionEndFor(stackTailHead), i + 1, stackTailHead, stackTail.tail) -// ^^^^^^^^^^^ reference ujson/CharParser#parseNested(). -// ^^^^^^^^^^^^^^^^ reference ujson/CharParser#collectionEndFor(). -// ^^^^^^^^^^^^^ reference local80 -// ^ reference ujson/CharParser#parseNested().(i) -// ^ reference scala/Int#`+`(+4). -// ^^^^^^^^^^^^^ reference local80 -// ^^^^^^^^^ reference ujson/CharParser#parseNested().(stackTail) -// ^^^^ reference scala/collection/IterableOps#tail(). - } - case _ => dieWithFailureMessage(i, state) -// ^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#dieWithFailureMessage(). -// ^ reference ujson/CharParser#parseNested().(i) -// ^^^^^ reference ujson/CharParser#parseNested().(state) - } - case _ => dieWithFailureMessage(i, state) -// ^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#dieWithFailureMessage(). -// ^ reference ujson/CharParser#parseNested().(i) -// ^^^^^ reference ujson/CharParser#parseNested().(state) - - } - } - - - def dieWithFailureMessage(i: Int, state: Int) = { -// ^^^^^^^^^^^^^^^^^^^^^ definition ujson/CharParser#dieWithFailureMessage(). def dieWithFailureMessage(i: Int, state: Int): Nothing -// ^ definition ujson/CharParser#dieWithFailureMessage().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/CharParser#dieWithFailureMessage().(state) state: Int -// ^^^ reference scala/Int# - val expected = state match{ -// ^^^^^^^^ definition local81 expected: String -// ^^^^^ reference ujson/CharParser#dieWithFailureMessage().(state) - case ARRBEG => "json value or ]" -// ^^^^^^ reference ujson/CharParser#ARRBEG. - case OBJBEG => "json value or }" -// ^^^^^^ reference ujson/CharParser#OBJBEG. - case DATA => "json value" -// ^^^^ reference ujson/CharParser#DATA. - case KEY => "json string key" -// ^^^ reference ujson/CharParser#KEY. - case COLON => ":" -// ^^^^^ reference ujson/CharParser#COLON. - case ARREND => ", or ]" -// ^^^^^^ reference ujson/CharParser#ARREND. - case OBJEND => ", or }" -// ^^^^^^ reference ujson/CharParser#OBJEND. - } - die(i, s"expected $expected") -// ^^^ reference ujson/CharParser#die(). -// ^ reference ujson/CharParser#dieWithFailureMessage().(i) -// ^ reference scala/StringContext#s(). -// ^^^^^^^^ reference local81 - } - - def failIfNotData(state: Int, i: Int) = (state: @switch) match{ -// ^^^^^^^^^^^^^ definition ujson/CharParser#failIfNotData(). def failIfNotData(state: Int, i: Int): Unit -// ^^^^^ definition ujson/CharParser#failIfNotData().(state) state: Int -// ^^^ reference scala/Int# -// ^ definition ujson/CharParser#failIfNotData().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^ reference ujson/CharParser#failIfNotData().(state) - case DATA | ARRBEG => // do nothing -// ^^^^ reference ujson/CharParser#DATA. -// ^^^^^^ reference ujson/CharParser#ARRBEG. - case _ => dieWithFailureMessage(i, state) -// ^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#dieWithFailureMessage(). -// ^ reference ujson/CharParser#failIfNotData().(i) -// ^^^^^ reference ujson/CharParser#failIfNotData().(state) - } - - def tryCloseCollection(stackHead: ObjArrVisitor[_, J], stackTail: List[ObjArrVisitor[_, J]], i: Int) = { -// ^^^^^^^^^^^^^^^^^^ definition ujson/CharParser#tryCloseCollection(). def tryCloseCollection(stackHead: ObjArrVisitor[local82, J[, stackTail: List[ObjArrVisitor[local83, J[], i: Int): Option[(J, Int)] -// ^^^^^^^^^ definition ujson/CharParser#tryCloseCollection().(stackHead) stackHead: ObjArrVisitor[local82, J[ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/CharParser#[J] -// ^^^^^^^^^ definition ujson/CharParser#tryCloseCollection().(stackTail) stackTail: List[ObjArrVisitor[local83, J[] -// ^^^^ reference scala/package.List# -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/CharParser#[J] -// ^ definition ujson/CharParser#tryCloseCollection().(i) i: Int -// ^^^ reference scala/Int# - if (stackTail.isEmpty) { -// ^^^^^^^^^ reference ujson/CharParser#tryCloseCollection().(stackTail) -// ^^^^^^^ reference scala/collection/immutable/List#isEmpty(). - Some(try stackHead.visitEnd(i) catch reject(i), i + 1) -// ^^^^ reference scala/Some. -// ^^^^^^^^^ reference ujson/CharParser#tryCloseCollection().(stackHead) -// ^^^^^^^^ reference upickle/core/ObjArrVisitor#visitEnd(). -// ^ reference ujson/CharParser#tryCloseCollection().(i) -// ^^^^^^ reference ujson/CharParser#reject(). -// ^ reference ujson/CharParser#tryCloseCollection().(i) -// ^ reference ujson/CharParser#tryCloseCollection().(i) -// ^ reference scala/Int#`+`(+4). - } else { - val ctxt2 = stackTail.head.narrow -// ^^^^^ definition local86 ctxt2: ObjArrVisitor[Any, J] -// ^^^^^^^^^ reference ujson/CharParser#tryCloseCollection().(stackTail) -// ^^^^ reference scala/collection/IterableOps#head(). -// ^^^^^^ reference upickle/core/ObjArrVisitor#narrow(). - try ctxt2.visitValue(stackHead.visitEnd(i), i) catch reject(i) -// ^^^^^ reference local86 -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). -// ^^^^^^^^^ reference ujson/CharParser#tryCloseCollection().(stackHead) -// ^^^^^^^^ reference upickle/core/ObjArrVisitor#visitEnd(). -// ^ reference ujson/CharParser#tryCloseCollection().(i) -// ^ reference ujson/CharParser#tryCloseCollection().(i) -// ^^^^^^ reference ujson/CharParser#reject(). -// ^ reference ujson/CharParser#tryCloseCollection().(i) - None -// ^^^^ reference scala/None. - - } - } - def collectionEndFor(stackHead: ObjArrVisitor[_, _]) = { -// ^^^^^^^^^^^^^^^^ definition ujson/CharParser#collectionEndFor(). def collectionEndFor(stackHead: ObjArrVisitor[local89, local90[): Int -// ^^^^^^^^^ definition ujson/CharParser#collectionEndFor().(stackHead) stackHead: ObjArrVisitor[local89, local90[ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# - if (stackHead.isObj) OBJEND -// ^^^^^^^^^ reference ujson/CharParser#collectionEndFor().(stackHead) -// ^^^^^ reference upickle/core/ObjArrVisitor#isObj(). -// ^^^^^^ reference ujson/CharParser#OBJEND. - else ARREND -// ^^^^^^ reference ujson/CharParser#ARREND. - } - - /** - * See if the string has any escape sequences. If not, return the - * end of the string. If so, bail out and return -1. - * - * This method expects the data to be in UTF-16 and accesses it as - * chars. - */ - protected[this] final def parseStringSimple(i: Int): Int = { -// ^^^^^^^^^^^^^^^^^ definition ujson/CharParser#parseStringSimple(). final def parseStringSimple(i: Int): Int -// ^ definition ujson/CharParser#parseStringSimple().(i) i: Int -// ^^^ reference scala/Int# -// ^^^ reference scala/Int# - var j = i -// ^ definition local91 j: Int -// ^ reference ujson/CharParser#parseStringSimple().(i) - var c = elemOps.toUnsignedInt(getCharSafe(j)) -// ^ definition local92 c: Int -// ^^^^^^^ reference ujson/CharParser#elemOps. -// ^^^^^^^^^^^^^ reference upickle/core/CharOps.toUnsignedInt(). -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local91 - while (c != '"') { -// ^ reference local92 -// ^^ reference scala/Int#`!=`(+2). - if (c < ' ') die(j, s"control char (${c}) in string") -// ^ reference local92 -// ^ reference scala/Int#`<`(+2). -// ^^^ reference ujson/CharParser#die(). -// ^ reference local91 -// ^ reference scala/StringContext#s(). -// ^ reference local92 - if (c == '\\' || c > 127) return -1 - j -// ^ reference local92 -// ^^ reference scala/Int#`==`(+2). -// ^^ reference scala/Boolean#`||`(). -// ^ reference local92 -// ^ reference scala/Int#`>`(+3). -// ^ reference scala/Int#`-`(+3). -// ^ reference local91 - j += 1 -// ^ reference local91 -// ^^ reference scala/Int#`+`(+4). - c = elemOps.toUnsignedInt(getCharSafe(j)) -// ^ reference local92 -// ^^^^^^^ reference ujson/CharParser#elemOps. -// ^^^^^^^^^^^^^ reference upickle/core/CharOps.toUnsignedInt(). -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local91 - } - j + 1 -// ^ reference local91 -// ^ reference scala/Int#`+`(+4). - } - - /** - * Parse a string that is known to have escape sequences. - */ - protected[this] final def parseStringComplex(i0: Int): Int = { -// ^^^^^^^^^^^^^^^^^^ definition ujson/CharParser#parseStringComplex(). final def parseStringComplex(i0: Int): Int -// ^^ definition ujson/CharParser#parseStringComplex().(i0) i0: Int -// ^^^ reference scala/Int# -// ^^^ reference scala/Int# - var i = i0 -// ^ definition local94 i: Int -// ^^ reference ujson/CharParser#parseStringComplex().(i0) - var c = elemOps.toUnsignedInt(getCharSafe(i)) -// ^ definition local95 c: Int -// ^^^^^^^ reference ujson/CharParser#elemOps. -// ^^^^^^^^^^^^^ reference upickle/core/CharOps.toUnsignedInt(). -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local94 - while (c != '"') { -// ^ reference local95 -// ^^ reference scala/Int#`!=`(+2). - - if (c < ' ') die(i, s"control char (${c}) in string") -// ^ reference local95 -// ^ reference scala/Int#`<`(+2). -// ^^^ reference ujson/CharParser#die(). -// ^ reference local94 -// ^ reference scala/StringContext#s(). -// ^ reference local95 - else if (c == '\\') { -// ^ reference local95 -// ^^ reference scala/Int#`==`(+2). - (getCharSafe(i + 1): @switch) match { -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local94 -// ^ reference scala/Int#`+`(+4). - case 'b' => { outputBuilder.append('\b'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - case 'f' => { outputBuilder.append('\f'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - case 'n' => { outputBuilder.append('\n'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - case 'r' => { outputBuilder.append('\r'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - case 't' => { outputBuilder.append('\t'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - - case '"' => { outputBuilder.append('"'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - case '/' => { outputBuilder.append('/'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - case '\\' => { outputBuilder.append('\\'); i += 2 } -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(+1). -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - - // if there's a problem then descape will explode - case 'u' => - val d = descape(i) -// ^ definition local97 d: Char -// ^^^^^^^ reference ujson/CharParser#descape(). -// ^ reference local94 - outputBuilder.appendC(d) -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^^^^^^^ reference upickle/core/CharAppendC#appendC(). -// ^ reference local97 - - i += 6 -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - - case c => die(i + 1, s"illegal escape sequence after \\") -// ^ definition local98 c: Char -// ^^^ reference ujson/CharParser#die(). -// ^ reference local94 -// ^ reference scala/Int#`+`(+4). -// ^ reference scala/StringContext#s(). - } - } else { - // this case is for "normal" code points that are just one Char. - // - // we don't have to worry about surrogate pairs, since those - // will all be in the ranges D800–DBFF (high surrogates) or - // DC00–DFFF (low surrogates). - outputBuilder.append(c) -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^^^^^^ reference upickle/core/CharBuilder#append(). -// ^ reference local95 - i += 1 -// ^ reference local94 -// ^^ reference scala/Int#`+`(+4). - } - c = elemOps.toUnsignedInt(getCharSafe(i)) -// ^ reference local95 -// ^^^^^^^ reference ujson/CharParser#elemOps. -// ^^^^^^^^^^^^^ reference upickle/core/CharOps.toUnsignedInt(). -// ^^^^^^^^^^^ reference ujson/CharParser#getCharSafe(). -// ^ reference local94 - } - - i + 1 -// ^ reference local94 -// ^ reference scala/Int#`+`(+4). - } - - /** - * Parse the string according to JSON rules, and add to the given - * context. - * - * This method expects the data to be in UTF-16, and access it as - * Char. It performs the correct checks to make sure that we don't - * interpret a multi-char code point incorrectly. - */ - protected[this] final def parseStringValue(i: Int, stackHead: ObjArrVisitor[_, J]): Int = { -// ^^^^^^^^^^^^^^^^ definition ujson/CharParser#parseStringValue(). final def parseStringValue(i: Int, stackHead: ObjArrVisitor[local99, J[): Int -// ^ definition ujson/CharParser#parseStringValue().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^ definition ujson/CharParser#parseStringValue().(stackHead) stackHead: ObjArrVisitor[local99, J[ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/CharParser#[J] -// ^^^ reference scala/Int# - - val k = parseStringSimple(i + 1) -// ^ definition local100 k: Int -// ^^^^^^^^^^^^^^^^^ reference ujson/CharParser#parseStringSimple(). -// ^ reference ujson/CharParser#parseStringValue().(i) -// ^ reference scala/Int#`+`(+4). - if (k >= 0) { -// ^ reference local100 -// ^^ reference scala/Int#`>=`(+3). - visitString(i, unsafeCharSeqForRange(i + 1, k - i - 2), stackHead) -// ^^^^^^^^^^^ reference ujson/CharParser#visitString(). -// ^ reference ujson/CharParser#parseStringValue().(i) -// ^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#unsafeCharSeqForRange(). -// ^ reference ujson/CharParser#parseStringValue().(i) -// ^ reference scala/Int#`+`(+4). -// ^ reference local100 -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/CharParser#parseStringValue().(i) -// ^ reference scala/Int#`-`(+3). -// ^^^^^^^^^ reference ujson/CharParser#parseStringValue().(stackHead) - k -// ^ reference local100 - } else { - val k2 = parseStringToOutputBuilder(i, k) -// ^^ definition local101 k2: Int -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#parseStringToOutputBuilder(). -// ^ reference ujson/CharParser#parseStringValue().(i) -// ^ reference local100 - visitString(i, outputBuilder.makeString(), stackHead) -// ^^^^^^^^^^^ reference ujson/CharParser#visitString(). -// ^ reference ujson/CharParser#parseStringValue().(i) -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^^^^^^^^^^ reference upickle/core/CharBuilder#makeString(). -// ^^^^^^^^^ reference ujson/CharParser#parseStringValue().(stackHead) - k2 -// ^^ reference local101 - } - } - - protected[this] final def parseStringKey(i: Int, stackHead: ObjArrVisitor[_, J]): Int = { -// ^^^^^^^^^^^^^^ definition ujson/CharParser#parseStringKey(). final def parseStringKey(i: Int, stackHead: ObjArrVisitor[local102, J[): Int -// ^ definition ujson/CharParser#parseStringKey().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^ definition ujson/CharParser#parseStringKey().(stackHead) stackHead: ObjArrVisitor[local102, J[ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/CharParser#[J] -// ^^^ reference scala/Int# - - val k = parseStringSimple(i + 1) -// ^ definition local103 k: Int -// ^^^^^^^^^^^^^^^^^ reference ujson/CharParser#parseStringSimple(). -// ^ reference ujson/CharParser#parseStringKey().(i) -// ^ reference scala/Int#`+`(+4). - if (k >= 0) { -// ^ reference local103 -// ^^ reference scala/Int#`>=`(+3). - visitStringKey(i, unsafeCharSeqForRange(i + 1, k - i - 2), stackHead) -// ^^^^^^^^^^^^^^ reference ujson/CharParser#visitStringKey(). -// ^ reference ujson/CharParser#parseStringKey().(i) -// ^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#unsafeCharSeqForRange(). -// ^ reference ujson/CharParser#parseStringKey().(i) -// ^ reference scala/Int#`+`(+4). -// ^ reference local103 -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/CharParser#parseStringKey().(i) -// ^ reference scala/Int#`-`(+3). -// ^^^^^^^^^ reference ujson/CharParser#parseStringKey().(stackHead) - k -// ^ reference local103 - } else { - val k2 = parseStringToOutputBuilder(i, k) -// ^^ definition local104 k2: Int -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#parseStringToOutputBuilder(). -// ^ reference ujson/CharParser#parseStringKey().(i) -// ^ reference local103 - visitStringKey(i, outputBuilder.makeString(), stackHead) -// ^^^^^^^^^^^^^^ reference ujson/CharParser#visitStringKey(). -// ^ reference ujson/CharParser#parseStringKey().(i) -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^^^^^^^^^^ reference upickle/core/CharBuilder#makeString(). -// ^^^^^^^^^ reference ujson/CharParser#parseStringKey().(stackHead) - k2 -// ^^ reference local104 - } - } - - - def parseStringToOutputBuilder(i: Int, k: Int) = { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition ujson/CharParser#parseStringToOutputBuilder(). def parseStringToOutputBuilder(i: Int, k: Int): Int -// ^ definition ujson/CharParser#parseStringToOutputBuilder().(i) i: Int -// ^^^ reference scala/Int# -// ^ definition ujson/CharParser#parseStringToOutputBuilder().(k) k: Int -// ^^^ reference scala/Int# - outputBuilder.reset() -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^^^^^ reference upickle/core/CharBuilder#reset(). - appendCharsToBuilder(outputBuilder, i + 1, -k - 2 - i) -// ^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#appendCharsToBuilder(). -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^ reference ujson/CharParser#parseStringToOutputBuilder().(i) -// ^ reference scala/Int#`+`(+4). -// ^ reference scala/Int#`unary_-`(). -// ^ reference ujson/CharParser#parseStringToOutputBuilder().(k) -// ^ reference scala/Int#`-`(+3). -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/CharParser#parseStringToOutputBuilder().(i) - val k2 = parseStringComplex(-k - 1) -// ^^ definition local105 k2: Int -// ^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#parseStringComplex(). -// ^ reference scala/Int#`unary_-`(). -// ^ reference ujson/CharParser#parseStringToOutputBuilder().(k) -// ^ reference scala/Int#`-`(+3). - k2 -// ^^ reference local105 - } - - def visitString(i: Int, s: CharSequence, stackHead: ObjArrVisitor[_, J]) = { -// ^^^^^^^^^^^ definition ujson/CharParser#visitString(). def visitString(i: Int, s: CharSequence, stackHead: ObjArrVisitor[local106, J[): Unit -// ^ definition ujson/CharParser#visitString().(i) i: Int -// ^^^ reference scala/Int# -// ^ definition ujson/CharParser#visitString().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^^ definition ujson/CharParser#visitString().(stackHead) stackHead: ObjArrVisitor[local106, J[ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/CharParser#[J] - val v = stackHead.subVisitor.visitString(s, i) -// ^ definition local107 v: Any -// ^^^^^^^^^ reference ujson/CharParser#visitString().(stackHead) -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^ reference ujson/CharParser#visitString().(s) -// ^ reference ujson/CharParser#visitString().(i) - stackHead.narrow.visitValue(v, i) -// ^^^^^^^^^ reference ujson/CharParser#visitString().(stackHead) -// ^^^^^^ reference upickle/core/ObjArrVisitor#narrow(). -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). -// ^ reference local107 -// ^ reference ujson/CharParser#visitString().(i) - } - def visitStringKey(i: Int, s: CharSequence, stackHead: ObjArrVisitor[_, J]) = { -// ^^^^^^^^^^^^^^ definition ujson/CharParser#visitStringKey(). def visitStringKey(i: Int, s: CharSequence, stackHead: ObjArrVisitor[local108, J[): Unit -// ^ definition ujson/CharParser#visitStringKey().(i) i: Int -// ^^^ reference scala/Int# -// ^ definition ujson/CharParser#visitStringKey().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^^ definition ujson/CharParser#visitStringKey().(stackHead) stackHead: ObjArrVisitor[local108, J[ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^ reference ujson/CharParser#[J] - val obj = stackHead.asInstanceOf[ObjVisitor[Any, _]] -// ^^^ definition local109 obj: ObjVisitor[Any, Any] -// ^^^^^^^^^ reference ujson/CharParser#visitStringKey().(stackHead) -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^^^^ reference upickle/core/ObjVisitor# -// ^^^ reference scala/Any# - val keyVisitor = obj.visitKey(i) -// ^^^^^^^^^^ definition local110 keyVisitor: Visitor[local111, Any[ -// ^^^ reference local109 -// ^^^^^^^^ reference upickle/core/ObjVisitor#visitKey(). -// ^ reference ujson/CharParser#visitStringKey().(i) - obj.visitKeyValue(keyVisitor.visitString(s, i)) -// ^^^ reference local109 -// ^^^^^^^^^^^^^ reference upickle/core/ObjVisitor#visitKeyValue(). -// ^^^^^^^^^^ reference local110 -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^ reference ujson/CharParser#visitStringKey().(s) -// ^ reference ujson/CharParser#visitStringKey().(i) - } - - - protected[this] final def parseStringTopLevel(i: Int, facade: Visitor[_, J]): (J, Int) = { -// ^^^^^^^^^^^^^^^^^^^ definition ujson/CharParser#parseStringTopLevel(). final def parseStringTopLevel(i: Int, facade: Visitor[local112, J[): (J, Int) -// ^ definition ujson/CharParser#parseStringTopLevel().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/CharParser#parseStringTopLevel().(facade) facade: Visitor[local112, J[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharParser#[J] -// ^ reference ujson/CharParser#[J] -// ^^^ reference scala/Int# - - val k = parseStringSimple(i + 1) -// ^ definition local113 k: Int -// ^^^^^^^^^^^^^^^^^ reference ujson/CharParser#parseStringSimple(). -// ^ reference ujson/CharParser#parseStringTopLevel().(i) -// ^ reference scala/Int#`+`(+4). - if (k >= 0) { -// ^ reference local113 -// ^^ reference scala/Int#`>=`(+3). - val res = facade.visitString(unsafeCharSeqForRange(i + 1, k - i - 2), i) -// ^^^ definition local114 res: J -// ^^^^^^ reference ujson/CharParser#parseStringTopLevel().(facade) -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingCharParser#unsafeCharSeqForRange(). -// ^ reference ujson/CharParser#parseStringTopLevel().(i) -// ^ reference scala/Int#`+`(+4). -// ^ reference local113 -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/CharParser#parseStringTopLevel().(i) -// ^ reference scala/Int#`-`(+3). -// ^ reference ujson/CharParser#parseStringTopLevel().(i) - (res, k) -// ^^^ reference local114 -// ^ reference local113 - } else { - val k2 = parseStringToOutputBuilder(i, k) -// ^^ definition local115 k2: Int -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference ujson/CharParser#parseStringToOutputBuilder(). -// ^ reference ujson/CharParser#parseStringTopLevel().(i) -// ^ reference local113 - val res = facade.visitString(outputBuilder.makeString(), i) -// ^^^ definition local116 res: J -// ^^^^^^ reference ujson/CharParser#parseStringTopLevel().(facade) -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^^^^^^^^^^^^^ reference ujson/CharParser#outputBuilder. -// ^^^^^^^^^^ reference upickle/core/CharBuilder#makeString(). -// ^ reference ujson/CharParser#parseStringTopLevel().(i) - (res, k2) -// ^^^ reference local116 -// ^^ reference local115 - } - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ActivityRecyclerPool.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/ActivityRecyclerPool.kt deleted file mode 100644 index 39d75c805..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ActivityRecyclerPool.kt +++ /dev/null @@ -1,248 +0,0 @@ -package com.airbnb.epoxy -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ - -import android.app.Activity -import android.content.Context -import android.content.ContextWrapper -import android.os.Build -import androidx.core.view.ViewCompat -// ^^^^^^^^ reference androidx/ -import androidx.lifecycle.Lifecycle -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^ reference androidx/lifecycle/ -// ^^^^^^^^^ reference androidx/lifecycle/Lifecycle# -import androidx.lifecycle.LifecycleObserver -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^ reference androidx/lifecycle/ -// ^^^^^^^^^^^^^^^^^ reference androidx/lifecycle/LifecycleObserver# -import androidx.lifecycle.LifecycleOwner -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^ reference androidx/lifecycle/ -// ^^^^^^^^^^^^^^ reference androidx/lifecycle/LifecycleOwner# -import androidx.lifecycle.OnLifecycleEvent -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^ reference androidx/lifecycle/ -// ^^^^^^^^^^^^^^^^ reference androidx/lifecycle/OnLifecycleEvent# -import androidx.recyclerview.widget.RecyclerView -// ^^^^^^^^ reference androidx/ -import java.lang.ref.WeakReference -// ^^^^ reference java/ -// ^^^^ reference java/lang/ -// ^^^ reference java/lang/ref/ -// ^^^^^^^^^^^^^ reference java/lang/ref/WeakReference# -import java.util.ArrayList -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^ reference java/util/ArrayList# - -internal class ActivityRecyclerPool { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ActivityRecyclerPool# internal final class ActivityRecyclerPool -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ActivityRecyclerPool#``(). public constructor ActivityRecyclerPool() - - /** - * Store one unique pool per activity. They are cleared out when activities are destroyed, so this - * only needs to hold pools for active activities. - */ - private val pools = ArrayList(5) -// ^^^^^ definition com/airbnb/epoxy/ActivityRecyclerPool#pools. private final val pools: java.util.ArrayList -// ^^^^^ definition com/airbnb/epoxy/ActivityRecyclerPool#getPools(). private final val pools: java.util.ArrayList -// ^^^^^^^^^ reference java/util/ArrayList#``(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/PoolReference# - - @JvmOverloads -// ^^^^^^^^^^^^ reference kotlin/jvm/JvmOverloads#``(). - fun getPool( -// ^^^^^^^ definition com/airbnb/epoxy/ActivityRecyclerPool#getPool(). public final fun getPool(context: [ERROR : Context], poolFactory: () -> [ERROR : RecyclerView.RecycledViewPool]): com.airbnb.epoxy.PoolReference - context: Context, -// ^^^^^^^ definition com/airbnb/epoxy/ActivityRecyclerPool#getPool().(context) value-parameter context: [ERROR : Context] - poolFactory: () -> RecyclerView.RecycledViewPool -// ^^^^^^^^^^^ definition com/airbnb/epoxy/ActivityRecyclerPool#getPool().(poolFactory) value-parameter poolFactory: () -> [ERROR : RecyclerView.RecycledViewPool] - ): PoolReference { -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/PoolReference# - - val iterator = pools.iterator() -// ^^^^^^^^ definition local0 val iterator: kotlin.collections.MutableIterator -// ^^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#pools. -// ^^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#getPools(). -// ^^^^^^^^ reference java/util/ArrayList#iterator(). - var poolToUse: PoolReference? = null -// ^^^^^^^^^ definition local1 var poolToUse: com.airbnb.epoxy.PoolReference? -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/PoolReference# - - while (iterator.hasNext()) { -// ^^^^^^^^ reference local0 -// ^^^^^^^ reference kotlin/collections/MutableIterator#hasNext(). - val poolReference = iterator.next() -// ^^^^^^^^^^^^^ definition local2 val poolReference: com.airbnb.epoxy.PoolReference -// ^^^^^^^^ reference local0 -// ^^^^ reference kotlin/collections/MutableIterator#next(). - when { - poolReference.context === context -> { -// ^^^^^^^^^^^^^ reference local2 -// ^^^^^^^ reference com/airbnb/epoxy/PoolReference#context. -// ^^^^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#getPool().(context) - if (poolToUse != null) { -// ^^^^^^^^^ reference local1 -// ^^ reference com/airbnb/epoxy/PoolReference#equals(+-1). - throw IllegalStateException("A pool was already found") -// ^^^^^^^^^^^^^^^^^^^^^ reference kotlin/IllegalStateException#``(+1). - } - poolToUse = poolReference -// ^^^^^^^^^ reference local1 -// ^^^^^^^^^^^^^ reference local2 - // finish iterating to remove any old contexts - } - poolReference.context.isActivityDestroyed() -> { -// ^^^^^^^^^^^^^ reference local2 -// ^^^^^^^ reference com/airbnb/epoxy/PoolReference#context. - // A pool from a different activity that was destroyed. - // Clear the pool references to allow the activity to be GC'd - poolReference.viewPool.clear() -// ^^^^^^^^^^^^^ reference local2 -// ^^^^^^^^ reference com/airbnb/epoxy/PoolReference#viewPool. -// ^^^^^^^^ reference com/airbnb/epoxy/PoolReference#getViewPool(). - iterator.remove() -// ^^^^^^^^ reference local0 -// ^^^^^^ reference kotlin/collections/MutableIterator#remove(). - } - } - } - - if (poolToUse == null) { -// ^^^^^^^^^ reference local1 -// ^^ reference com/airbnb/epoxy/PoolReference#equals(+-1). - poolToUse = PoolReference(context, poolFactory(), this) -// ^^^^^^^^^ reference local1 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/PoolReference#``(). -// ^^^^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#getPool().(context) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#getPool().(poolFactory) -// ^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool# - context.lifecycle()?.addObserver(poolToUse) -// ^^^^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#getPool().(context) -// ^^^^^^^^^ reference local1 - pools.add(poolToUse) -// ^^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#pools. -// ^^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#getPools(). -// ^^^ reference java/util/ArrayList#add(+1). -// ^^^^^^^^^ reference local1 - } - - return poolToUse -// ^^^^^^^^^ reference local1 - } - - fun clearIfDestroyed(pool: PoolReference) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ActivityRecyclerPool#clearIfDestroyed(). public final fun clearIfDestroyed(pool: com.airbnb.epoxy.PoolReference) -// ^^^^ definition com/airbnb/epoxy/ActivityRecyclerPool#clearIfDestroyed().(pool) value-parameter pool: com.airbnb.epoxy.PoolReference -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/PoolReference# - if (pool.context.isActivityDestroyed()) { -// ^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#clearIfDestroyed().(pool) -// ^^^^^^^ reference com/airbnb/epoxy/PoolReference#context. - pool.viewPool.clear() -// ^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#clearIfDestroyed().(pool) -// ^^^^^^^^ reference com/airbnb/epoxy/PoolReference#viewPool. -// ^^^^^^^^ reference com/airbnb/epoxy/PoolReference#getViewPool(). - pools.remove(pool) -// ^^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#pools. -// ^^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#getPools(). -// ^^^^^^ reference java/util/ArrayList#remove(). -// ^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#clearIfDestroyed().(pool) - } - } - - private fun Context.lifecycle(): Lifecycle? { -// ^^^^^^^^^ definition com/airbnb/epoxy/ActivityRecyclerPool#lifecycle(). private final fun [ERROR : Context].lifecycle(): androidx.lifecycle.Lifecycle? -// ^^^^^^^^^ reference androidx/lifecycle/Lifecycle# - if (this is LifecycleOwner) { -// ^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#lifecycle(). -// ^^^^^^^^^^^^^^ reference androidx/lifecycle/LifecycleOwner# - return lifecycle - } - - if (this is ContextWrapper) { -// ^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#lifecycle(). - return baseContext.lifecycle() - } - - return null - } -} - -internal class PoolReference( -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/PoolReference# internal final class PoolReference : androidx.lifecycle.LifecycleObserver -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/PoolReference#``(). public constructor PoolReference(context: [ERROR : Context], viewPool: [ERROR : RecyclerView.RecycledViewPool], parent: com.airbnb.epoxy.ActivityRecyclerPool) - context: Context, -// ^^^^^^^ definition com/airbnb/epoxy/PoolReference#``().(context) value-parameter context: [ERROR : Context] - val viewPool: RecyclerView.RecycledViewPool, -// ^^^^^^^^ definition com/airbnb/epoxy/PoolReference#viewPool. public final val viewPool: [ERROR : RecyclerView.RecycledViewPool] -// ^^^^^^^^ definition com/airbnb/epoxy/PoolReference#getViewPool(). public final val viewPool: [ERROR : RecyclerView.RecycledViewPool] -// ^^^^^^^^ definition com/airbnb/epoxy/PoolReference#``().(viewPool) value-parameter viewPool: [ERROR : RecyclerView.RecycledViewPool] - private val parent: ActivityRecyclerPool -// ^^^^^^ definition com/airbnb/epoxy/PoolReference#parent. private final val parent: com.airbnb.epoxy.ActivityRecyclerPool -// ^^^^^^ definition com/airbnb/epoxy/PoolReference#getParent(). private final val parent: com.airbnb.epoxy.ActivityRecyclerPool -// ^^^^^^ definition com/airbnb/epoxy/PoolReference#``().(parent) value-parameter parent: com.airbnb.epoxy.ActivityRecyclerPool -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool# -) : LifecycleObserver { -// ^^^^^^^^^^^^^^^^^ reference androidx/lifecycle/LifecycleObserver# - private val contextReference: WeakReference = WeakReference(context) -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/PoolReference#contextReference. private final val contextReference: java.lang.ref.WeakReference<[ERROR : Context]> -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/PoolReference#getContextReference(). private final val contextReference: java.lang.ref.WeakReference<[ERROR : Context]> -// ^^^^^^^^^^^^^ reference java/lang/ref/WeakReference# -// ^^^^^^^^^^^^^ reference java/lang/ref/WeakReference#``(). -// ^^^^^^^ reference com/airbnb/epoxy/PoolReference#``().(context) - - val context: Context? get() = contextReference.get() -// ^^^^^^^ definition com/airbnb/epoxy/PoolReference#context. public final val context: [ERROR : Context]? -// ^^^ definition com/airbnb/epoxy/PoolReference#getContext(). public final fun (): [ERROR : Context]? -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/PoolReference#contextReference. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/PoolReference#getContextReference(). -// ^^^ reference java/lang/ref/WeakReference#get(). - - fun clearIfDestroyed() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/PoolReference#clearIfDestroyed(). public final fun clearIfDestroyed() - parent.clearIfDestroyed(this) -// ^^^^^^ reference com/airbnb/epoxy/PoolReference#parent. -// ^^^^^^ reference com/airbnb/epoxy/PoolReference#getParent(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#clearIfDestroyed(). -// ^^^^ reference com/airbnb/epoxy/PoolReference# - } - - @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) -// ^^^^^^^^^^^^^^^^ reference androidx/lifecycle/OnLifecycleEvent#``(). -// ^^^^^^^^^ reference androidx/lifecycle/Lifecycle# -// ^^^^^ reference androidx/lifecycle/Lifecycle#Event# -// ^^^^^^^^^^ reference androidx/lifecycle/Lifecycle#Event#ON_DESTROY# - fun onContextDestroyed() { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/PoolReference#onContextDestroyed(). public final fun onContextDestroyed() - clearIfDestroyed() -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/PoolReference#clearIfDestroyed(). - } -} - -internal fun Context?.isActivityDestroyed(): Boolean { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ActivityRecyclerPoolKt#isActivityDestroyed(). internal fun [ERROR : Context]?.isActivityDestroyed(): kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - if (this == null) { -// ^^^^ reference com/airbnb/epoxy/ActivityRecyclerPoolKt#isActivityDestroyed(). - return true - } - - if (this !is Activity) { -// ^^^^ reference com/airbnb/epoxy/ActivityRecyclerPoolKt#isActivityDestroyed(). - return (this as? ContextWrapper)?.baseContext?.isActivityDestroyed() ?: false -// ^^^^ reference com/airbnb/epoxy/ActivityRecyclerPoolKt#isActivityDestroyed(). - } - - if (isFinishing) { - return true - } - - return if (Build.VERSION.SDK_INT >= 17) { - isDestroyed - } else { - // Use this as a proxy for being destroyed on older devices - !ViewCompat.isAttachedToWindow(window.decorView) - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/AsyncEpoxyController.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/AsyncEpoxyController.java deleted file mode 100644 index 8a71ae671..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/AsyncEpoxyController.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.airbnb.epoxy; - -import android.os.Handler; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^^ reference android/os/Handler# - -import static com.airbnb.epoxy.EpoxyAsyncUtil.MAIN_THREAD_HANDLER; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil# -import static com.airbnb.epoxy.EpoxyAsyncUtil.getAsyncBackgroundHandler; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil# - -/** - * A subclass of {@link EpoxyController} that makes it easy to do model building and diffing in - * the background. - *

- * See https://github.com/airbnb/epoxy/wiki/Epoxy-Controller#asynchronous-support - */ -public abstract class AsyncEpoxyController extends EpoxyController { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyController# public abstract class AsyncEpoxyController -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# - - /** - * A new instance that does model building and diffing asynchronously. - */ - public AsyncEpoxyController() { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyController#``(). public AsyncEpoxyController() - this(true); -// ^^^^ reference com/airbnb/epoxy/AsyncEpoxyController#``(+1). - } - - /** - * @param enableAsync True to do model building and diffing asynchronously, false to do them - * both on the main thread. - */ - public AsyncEpoxyController(boolean enableAsync) { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyController#``(+1). public AsyncEpoxyController(boolean enableAsync) -// ^^^^^^^^^^^ definition local0 boolean enableAsync - this(enableAsync, enableAsync); -// ^^^^ reference com/airbnb/epoxy/AsyncEpoxyController#``(+2). -// ^^^^^^^^^^^ reference local0 -// ^^^^^^^^^^^ reference local0 - } - - /** - * Individually control whether model building and diffing are done async or on the main thread. - */ - public AsyncEpoxyController(boolean enableAsyncModelBuilding, boolean enableAsyncDiffing) { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyController#``(+2). public AsyncEpoxyController(boolean enableAsyncModelBuilding, boolean enableAsyncDiffing) -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition local1 boolean enableAsyncModelBuilding -// ^^^^^^^^^^^^^^^^^^ definition local2 boolean enableAsyncDiffing - super(getHandler(enableAsyncModelBuilding), getHandler(enableAsyncDiffing)); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#``(+1). -// ^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyController#getHandler(). -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference local1 -// ^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyController#getHandler(). -// ^^^^^^^^^^^^^^^^^^ reference local2 - } - - private static Handler getHandler(boolean enableAsync) { -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyController#getHandler(). private static unresolved_type getHandler(boolean enableAsync) -// ^^^^^^^^^^^ definition local3 boolean enableAsync - return enableAsync ? getAsyncBackgroundHandler() : MAIN_THREAD_HANDLER; -// ^^^^^^^^^^^ reference local3 -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil#getAsyncBackgroundHandler(). -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil#MAIN_THREAD_HANDLER. - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/AsyncEpoxyDiffer.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/AsyncEpoxyDiffer.java deleted file mode 100644 index e8c993296..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/AsyncEpoxyDiffer.java +++ /dev/null @@ -1,618 +0,0 @@ -package com.airbnb.epoxy; - -import android.os.Handler; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^^ reference android/os/Handler# - -import java.util.Collections; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^^ reference java/util/Collections# -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# -import java.util.concurrent.Executor; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^ reference java/util/concurrent/ -// ^^^^^^^^ reference java/util/concurrent/Executor# - -import androidx.annotation.AnyThread; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^ reference androidx/annotation/AnyThread# -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.recyclerview.widget.DiffUtil; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^ reference androidx/recyclerview/widget/DiffUtil# -import androidx.recyclerview.widget.DiffUtil.ItemCallback; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^ reference androidx/recyclerview/widget/DiffUtil/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/DiffUtil/ItemCallback# - -/** - * An adaptation of Google's {@link androidx.recyclerview.widget.AsyncListDiffer} - * that adds support for payloads in changes. - *

- * Also adds support for canceling an in progress diff, and makes everything thread safe. - */ -class AsyncEpoxyDiffer { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer# class AsyncEpoxyDiffer - - interface ResultCallback { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#ResultCallback# interface ResultCallback - void onResult(@NonNull DiffResult result); -// ^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#ResultCallback#onResult(). public abstract void onResult(DiffResult result) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult# -// ^^^^^^ definition local0 @NonNull DiffResult result - } - - private final Executor executor; -// ^^^^^^^^ reference java/util/concurrent/Executor# -// ^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#executor. private final Executor executor - private final ResultCallback resultCallback; -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#ResultCallback# -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#resultCallback. private final ResultCallback resultCallback - private final ItemCallback> diffCallback; -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#diffCallback. private final unresolved_type diffCallback - private final GenerationTracker generationTracker = new GenerationTracker(); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker# -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#generationTracker. private final GenerationTracker generationTracker -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#``(). - - AsyncEpoxyDiffer( -//^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#``(). AsyncEpoxyDiffer(unresolved_type handler, ResultCallback resultCallback, unresolved_type diffCallback) - @NonNull Handler handler, -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^ reference _root_/ -// ^^^^^^^ definition local1 @NonNull unresolved_type handler - @NonNull ResultCallback resultCallback, -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#ResultCallback# -// ^^^^^^^^^^^^^^ definition local2 @NonNull ResultCallback resultCallback - @NonNull ItemCallback> diffCallback -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^ definition local3 @NonNull unresolved_type diffCallback - ) { - this.executor = new HandlerExecutor(handler); -// ^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#executor. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HandlerExecutor#``(). -// ^^^^^^^ reference local1 - this.resultCallback = resultCallback; -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#resultCallback. -// ^^^^^^^^^^^^^^ reference local2 - this.diffCallback = diffCallback; -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#diffCallback. -// ^^^^^^^^^^^^ reference local3 - } - - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - private volatile List> list; -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#list. @Nullable private List> list - - /** - * Non-null, unmodifiable version of list. - *

- * Collections.emptyList when list is null, wrapped by Collections.unmodifiableList otherwise - */ - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - private volatile List> readOnlyList = Collections.emptyList(); -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#readOnlyList. @NonNull private List> readOnlyList -// ^^^^^^^^^^^ reference java/util/Collections# -// ^^^^^^^^^ reference java/util/Collections#emptyList(). - - /** - * Get the current List - any diffing to present this list has already been computed and - * dispatched via the ListUpdateCallback. - *

- * If a null List, or no List has been submitted, an empty list will be returned. - *

- * The returned list may not be mutated - mutations to content must be done through - * {@link #submitList(List)}. - * - * @return current List. - */ - @AnyThread -// ^^^^^^^^^ reference androidx/annotation/AnyThread# - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - public List> getCurrentList() { -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#getCurrentList(). @AnyThread @NonNull public List> getCurrentList() - return readOnlyList; -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#readOnlyList. - } - - /** - * Prevents any ongoing diff from dispatching results. Returns true if there was an ongoing - * diff to cancel, false otherwise. - */ - @SuppressWarnings("WeakerAccess") -// ^^^^^^^^^^^^^^^^ reference java/lang/SuppressWarnings# - @AnyThread -// ^^^^^^^^^ reference androidx/annotation/AnyThread# - public boolean cancelDiff() { -// ^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#cancelDiff(). @SuppressWarnings("WeakerAccess") @AnyThread public boolean cancelDiff() - return generationTracker.finishMaxGeneration(); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#generationTracker. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#finishMaxGeneration(). - } - - /** - * @return True if a diff operation is in progress. - */ - @SuppressWarnings("WeakerAccess") -// ^^^^^^^^^^^^^^^^ reference java/lang/SuppressWarnings# - @AnyThread -// ^^^^^^^^^ reference androidx/annotation/AnyThread# - public boolean isDiffInProgress() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#isDiffInProgress(). @SuppressWarnings("WeakerAccess") @AnyThread public boolean isDiffInProgress() - return generationTracker.hasUnfinishedGeneration(); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#generationTracker. -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#hasUnfinishedGeneration(). - } - - /** - * Set the current list without performing any diffing. Cancels any diff in progress. - *

- * This can be used if you notified a change to the adapter manually and need this list to be - * synced. - */ - @AnyThread -// ^^^^^^^^^ reference androidx/annotation/AnyThread# - public synchronized boolean forceListOverride(@Nullable List> newList) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#forceListOverride(). @AnyThread public boolean forceListOverride(List> newList) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition local4 @Nullable List> newList - // We need to make sure that generation changes and list updates are synchronized - final boolean interruptedDiff = cancelDiff(); -// ^^^^^^^^^^^^^^^ definition local5 final boolean interruptedDiff -// ^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#cancelDiff(). - int generation = generationTracker.incrementAndGetNextScheduled(); -// ^^^^^^^^^^ definition local6 int generation -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#generationTracker. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#incrementAndGetNextScheduled(). - tryLatchList(newList, generation); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#tryLatchList(). -// ^^^^^^^ reference local4 -// ^^^^^^^^^^ reference local6 - return interruptedDiff; -// ^^^^^^^^^^^^^^^ reference local5 - } - - /** - * Set a new List representing your latest data. - *

- * A diff will be computed between this list and the last list set. If this has not previously - * been called then an empty list is used as the previous list. - *

- * The diff computation will be done on the thread given by the handler in the constructor. - * When the diff is done it will be applied (dispatched to the result callback), - * and the new List will be swapped in. - */ - @AnyThread -// ^^^^^^^^^ reference androidx/annotation/AnyThread# - @SuppressWarnings("WeakerAccess") -// ^^^^^^^^^^^^^^^^ reference java/lang/SuppressWarnings# - public void submitList(@Nullable final List> newList) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#submitList(). @AnyThread @SuppressWarnings("WeakerAccess") public void submitList(List> newList) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition local7 @Nullable final List> newList - final int runGeneration; -// ^^^^^^^^^^^^^ definition local8 final int runGeneration - @Nullable final List> previousList; -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^ definition local9 @Nullable final List> previousList - - synchronized (this) { - // Incrementing generation means any currently-running diffs are discarded when they finish - // We synchronize to guarantee list object and generation number are in sync - runGeneration = generationTracker.incrementAndGetNextScheduled(); -// ^^^^^^^^^^^^^ reference local8 -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#generationTracker. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#incrementAndGetNextScheduled(). - previousList = list; -// ^^^^^^^^^^^^ reference local9 -// ^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#list. - } - - if (newList == previousList) { -// ^^^^^^^ reference local7 -// ^^^^^^^^^^^^ reference local9 - // nothing to do - onRunCompleted(runGeneration, newList, DiffResult.noOp(previousList)); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#onRunCompleted(). -// ^^^^^^^^^^^^^ reference local8 -// ^^^^^^^ reference local7 -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult# -// ^^^^ reference com/airbnb/epoxy/DiffResult#noOp(). -// ^^^^^^^^^^^^ reference local9 - return; - } - - if (newList == null || newList.isEmpty()) { -// ^^^^^^^ reference local7 -// ^^^^^^^ reference local7 -// ^^^^^^^ reference java/util/List#isEmpty(). - // fast simple clear all - DiffResult result = null; -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult# -// ^^^^^^ definition local10 DiffResult result - if (previousList != null && !previousList.isEmpty()) { -// ^^^^^^^^^^^^ reference local9 -// ^^^^^^^^^^^^ reference local9 -// ^^^^^^^ reference java/util/List#isEmpty(). - result = DiffResult.clear(previousList); -// ^^^^^^ reference local10 -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult# -// ^^^^^ reference com/airbnb/epoxy/DiffResult#clear(). -// ^^^^^^^^^^^^ reference local9 - } - onRunCompleted(runGeneration, null, result); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#onRunCompleted(). -// ^^^^^^^^^^^^^ reference local8 -// ^^^^^^ reference local10 - return; - } - - if (previousList == null || previousList.isEmpty()) { -// ^^^^^^^^^^^^ reference local9 -// ^^^^^^^^^^^^ reference local9 -// ^^^^^^^ reference java/util/List#isEmpty(). - // fast simple first insert - onRunCompleted(runGeneration, newList, DiffResult.inserted(newList)); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#onRunCompleted(). -// ^^^^^^^^^^^^^ reference local8 -// ^^^^^^^ reference local7 -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult# -// ^^^^^^^^ reference com/airbnb/epoxy/DiffResult#inserted(). -// ^^^^^^^ reference local7 - return; - } - - final DiffCallback wrappedCallback = new DiffCallback(previousList, newList, diffCallback); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback# -// ^^^^^^^^^^^^^^^ definition local11 final DiffCallback wrappedCallback -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#``(). -// ^^^^^^^^^^^^ reference local9 -// ^^^^^^^ reference local7 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#diffCallback. - - executor.execute(new Runnable() { -// ^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#executor. -// ^^^^^^^ reference java/util/concurrent/Executor#execute(). -// ^^^^^^^^ reference java/lang/Runnable# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void run() { -// ^^^ definition local14 @Override public void run() - DiffUtil.DiffResult result = DiffUtil.calculateDiff(wrappedCallback); -// ^^^^^^^^ reference DiffUtil/ -// ^^^^^^^^^^ reference DiffUtil/DiffResult# -// ^^^^^^ definition local15 unresolved_type result -// ^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^ reference calculateDiff# -// ^^^^^^^^^^^^^^^ reference local11 - onRunCompleted(runGeneration, newList, DiffResult.diff(previousList, newList, result)); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#onRunCompleted(). -// ^^^^^^^^^^^^^ reference local8 -// ^^^^^^^ reference local7 -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult# -// ^^^^ reference com/airbnb/epoxy/DiffResult#diff(). -// ^^^^^^^^^^^^ reference local9 -// ^^^^^^^ reference local7 -// ^^^^^^ reference local15 - } - }); - } - - private void onRunCompleted( -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#onRunCompleted(). private void onRunCompleted(int runGeneration, List> newList, DiffResult result) - final int runGeneration, -// ^^^^^^^^^^^^^ definition local16 final int runGeneration - @Nullable final List> newList, -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition local17 @Nullable final List> newList - @Nullable final DiffResult result -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult# -// ^^^^^^ definition local18 @Nullable final DiffResult result - ) { - - // We use an asynchronous handler so that the Runnable can be posted directly back to the main - // thread without waiting on view invalidation synchronization. - MainThreadExecutor.ASYNC_INSTANCE.execute(new Runnable() { -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/MainThreadExecutor# -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/MainThreadExecutor#ASYNC_INSTANCE. -// ^^^^^^^ reference com/airbnb/epoxy/HandlerExecutor#execute(). -// ^^^^^^^^ reference java/lang/Runnable# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void run() { -// ^^^ definition local21 @Override public void run() - final boolean dispatchResult = tryLatchList(newList, runGeneration); -// ^^^^^^^^^^^^^^ definition local22 final boolean dispatchResult -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#tryLatchList(). -// ^^^^^^^ reference local17 -// ^^^^^^^^^^^^^ reference local16 - if (result != null && dispatchResult) { -// ^^^^^^ reference local18 -// ^^^^^^^^^^^^^^ reference local22 - resultCallback.onResult(result); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#resultCallback. -// ^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#ResultCallback#onResult(). -// ^^^^^^ reference local18 - } - } - }); - } - - /** - * Marks the generation as done, and updates the list if the generation is the most recent. - * - * @return True if the given generation is the most recent, in which case the given list was - * set. False if the generation is old and the list was ignored. - */ - @AnyThread -// ^^^^^^^^^ reference androidx/annotation/AnyThread# - private synchronized boolean tryLatchList(@Nullable List> newList, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#tryLatchList(). @AnyThread private boolean tryLatchList(List> newList, int runGeneration) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition local23 @Nullable List> newList - int runGeneration) { -// ^^^^^^^^^^^^^ definition local24 int runGeneration - if (generationTracker.finishGeneration(runGeneration)) { -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#generationTracker. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#finishGeneration(). -// ^^^^^^^^^^^^^ reference local24 - list = newList; -// ^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#list. -// ^^^^^^^ reference local23 - - if (newList == null) { -// ^^^^^^^ reference local23 - readOnlyList = Collections.emptyList(); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#readOnlyList. -// ^^^^^^^^^^^ reference java/util/Collections# -// ^^^^^^^^^ reference java/util/Collections#emptyList(). - } else { - readOnlyList = Collections.unmodifiableList(newList); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#readOnlyList. -// ^^^^^^^^^^^ reference java/util/Collections# -// ^^^^^^^^^^^^^^^^ reference java/util/Collections#unmodifiableList(). -// ^^^^^^^ reference local23 - } - - return true; - } - - return false; - } - - /** - * The concept of a "generation" is used to associate a diff result with a point in time when - * it was created. This allows us to handle list updates concurrently, and ignore outdated diffs. - *

- * We track the highest start generation, and the highest finished generation, and these must - * be kept in sync, so all access to this class is synchronized. - *

- * The general synchronization strategy for this class is that when a generation number - * is queried that action must be synchronized with accessing the current list, so that the - * generation number is synced with the list state at the time it was created. - */ - private static class GenerationTracker { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker# private static class GenerationTracker -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#``(). private GenerationTracker() - - // Max generation of currently scheduled runnable - private volatile int maxScheduledGeneration; -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#maxScheduledGeneration. private int maxScheduledGeneration - private volatile int maxFinishedGeneration; -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#maxFinishedGeneration. private int maxFinishedGeneration - - synchronized int incrementAndGetNextScheduled() { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#incrementAndGetNextScheduled(). int incrementAndGetNextScheduled() - return ++maxScheduledGeneration; -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#maxScheduledGeneration. - } - - synchronized boolean finishMaxGeneration() { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#finishMaxGeneration(). boolean finishMaxGeneration() - boolean isInterrupting = hasUnfinishedGeneration(); -// ^^^^^^^^^^^^^^ definition local25 boolean isInterrupting -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#hasUnfinishedGeneration(). - maxFinishedGeneration = maxScheduledGeneration; -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#maxFinishedGeneration. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#maxScheduledGeneration. - return isInterrupting; -// ^^^^^^^^^^^^^^ reference local25 - } - - synchronized boolean hasUnfinishedGeneration() { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#hasUnfinishedGeneration(). boolean hasUnfinishedGeneration() - return maxScheduledGeneration > maxFinishedGeneration; -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#maxScheduledGeneration. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#maxFinishedGeneration. - } - - synchronized boolean finishGeneration(int runGeneration) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#finishGeneration(). boolean finishGeneration(int runGeneration) -// ^^^^^^^^^^^^^ definition local26 int runGeneration - boolean isLatestGeneration = -// ^^^^^^^^^^^^^^^^^^ definition local27 boolean isLatestGeneration - maxScheduledGeneration == runGeneration && runGeneration > maxFinishedGeneration; -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#maxScheduledGeneration. -// ^^^^^^^^^^^^^ reference local26 -// ^^^^^^^^^^^^^ reference local26 -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#maxFinishedGeneration. - - if (isLatestGeneration) { -// ^^^^^^^^^^^^^^^^^^ reference local27 - maxFinishedGeneration = runGeneration; -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#GenerationTracker#maxFinishedGeneration. -// ^^^^^^^^^^^^^ reference local26 - } - - return isLatestGeneration; -// ^^^^^^^^^^^^^^^^^^ reference local27 - } - } - - private static class DiffCallback extends DiffUtil.Callback { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback# private static class DiffCallback -// ^^^^^^^^ reference DiffUtil/ -// ^^^^^^^^ reference DiffUtil/Callback# - - final List> oldList; -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#oldList. final List> oldList - final List> newList; -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#newList. final List> newList - private final ItemCallback> diffCallback; -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#diffCallback. private final unresolved_type diffCallback - - DiffCallback(List> oldList, List> newList, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#``(). DiffCallback(List> oldList, List> newList, unresolved_type diffCallback) -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition local28 List> oldList -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition local29 List> newList - ItemCallback> diffCallback) { -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^ definition local30 unresolved_type diffCallback - this.oldList = oldList; -// ^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#oldList. -// ^^^^^^^ reference local28 - this.newList = newList; -// ^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#newList. -// ^^^^^^^ reference local29 - this.diffCallback = diffCallback; -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#diffCallback. -// ^^^^^^^^^^^^ reference local30 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int getOldListSize() { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#getOldListSize(). @Override public int getOldListSize() - return oldList.size(); -// ^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#oldList. -// ^^^^ reference java/util/List#size(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int getNewListSize() { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#getNewListSize(). @Override public int getNewListSize() - return newList.size(); -// ^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#newList. -// ^^^^ reference java/util/List#size(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#areItemsTheSame(). @Override public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) -// ^^^^^^^^^^^^^^^ definition local31 int oldItemPosition -// ^^^^^^^^^^^^^^^ definition local32 int newItemPosition - return diffCallback.areItemsTheSame( -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#diffCallback. -// ^^^^^^^^^^^^^^^ reference ``#areItemsTheSame# - oldList.get(oldItemPosition), -// ^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#oldList. -// ^^^ reference java/util/List#get(). -// ^^^^^^^^^^^^^^^ reference local31 - newList.get(newItemPosition) -// ^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#newList. -// ^^^ reference java/util/List#get(). -// ^^^^^^^^^^^^^^^ reference local32 - ); - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#areContentsTheSame(). @Override public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) -// ^^^^^^^^^^^^^^^ definition local33 int oldItemPosition -// ^^^^^^^^^^^^^^^ definition local34 int newItemPosition - return diffCallback.areContentsTheSame( -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#diffCallback. -// ^^^^^^^^^^^^^^^^^^ reference ``#areContentsTheSame# - oldList.get(oldItemPosition), -// ^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#oldList. -// ^^^ reference java/util/List#get(). -// ^^^^^^^^^^^^^^^ reference local33 - newList.get(newItemPosition) -// ^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#newList. -// ^^^ reference java/util/List#get(). -// ^^^^^^^^^^^^^^^ reference local34 - ); - } - - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - @Override -// ^^^^^^^^ reference java/lang/Override# - public Object getChangePayload(int oldItemPosition, int newItemPosition) { -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#getChangePayload(). @Nullable @Override public Object getChangePayload(int oldItemPosition, int newItemPosition) -// ^^^^^^^^^^^^^^^ definition local35 int oldItemPosition -// ^^^^^^^^^^^^^^^ definition local36 int newItemPosition - return diffCallback.getChangePayload( -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#diffCallback. -// ^^^^^^^^^^^^^^^^ reference ``#getChangePayload# - oldList.get(oldItemPosition), -// ^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#oldList. -// ^^^ reference java/util/List#get(). -// ^^^^^^^^^^^^^^^ reference local35 - newList.get(newItemPosition) -// ^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#DiffCallback#newList. -// ^^^ reference java/util/List#get(). -// ^^^^^^^^^^^^^^^ reference local36 - ); - } - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/BaseEpoxyAdapter.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/BaseEpoxyAdapter.java deleted file mode 100644 index 163c39a8e..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/BaseEpoxyAdapter.java +++ /dev/null @@ -1,689 +0,0 @@ -package com.airbnb.epoxy; - -import android.os.Bundle; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^ reference android/os/Bundle# -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# -import android.view.ViewGroup; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^^^^^^ reference android/view/ViewGroup# - -import com.airbnb.epoxy.stickyheader.StickyHeaderCallbacks; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/ -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderCallbacks# - -import org.jetbrains.annotations.NotNull; -// ^^^ reference org/ -// ^^^^^^^^^ reference org/jetbrains/ -// ^^^^^^^^^^^ reference org/jetbrains/annotations/ -// ^^^^^^^ reference org/jetbrains/annotations/NotNull# - -import java.util.Collections; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^^ reference java/util/Collections# -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -import androidx.annotation.CallSuper; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^ reference androidx/annotation/CallSuper# -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/GridLayoutManager/ -// ^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/GridLayoutManager/SpanSizeLookup# -import androidx.recyclerview.widget.RecyclerView; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView# - -public abstract class BaseEpoxyAdapter -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter# public abstract class BaseEpoxyAdapter - extends RecyclerView.Adapter -// ^^^^^^^^^^^^ reference RecyclerView/ -// ^^^^^^^ reference RecyclerView/Adapter# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# - implements StickyHeaderCallbacks { -// ^^^^^^^^^^^^^^^^^^^^^ reference _root_/ - - private static final String SAVED_STATE_ARG_VIEW_HOLDERS = "saved_state_view_holders"; -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#SAVED_STATE_ARG_VIEW_HOLDERS. private static final String SAVED_STATE_ARG_VIEW_HOLDERS - - private int spanCount = 1; -// ^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#spanCount. private int spanCount - - private final ViewTypeManager viewTypeManager = new ViewTypeManager(); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager# -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#viewTypeManager. private final ViewTypeManager viewTypeManager -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#``(). - /** - * Keeps track of view holders that are currently bound so we can save their state in {@link - * #onSaveInstanceState(Bundle)}. - */ - private final BoundViewHolders boundViewHolders = new BoundViewHolders(); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders# -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#boundViewHolders. private final BoundViewHolders boundViewHolders -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders#``(). - private ViewHolderState viewHolderState = new ViewHolderState(); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState# -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#viewHolderState. private ViewHolderState viewHolderState -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#``(). - - private final SpanSizeLookup spanSizeLookup = new SpanSizeLookup() { -// ^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#spanSizeLookup. private final unresolved_type spanSizeLookup - - @Override - public int getSpanSize(int position) { - try { - return getModelForPosition(position) - .spanSize(spanCount, position, getItemCount()); - } catch (IndexOutOfBoundsException e) { - // There seems to be a GridLayoutManager bug where when the user is in accessibility mode - // it incorrectly uses an outdated view position - // when calling this method. This crashes when a view is animating out, when it is - // removed from the adapter but technically still added - // to the layout. We've posted a bug report and hopefully can update when the support - // library fixes this - // TODO: (eli_hart 8/23/16) Figure out if this has been fixed in new support library - onExceptionSwallowed(e); - return 1; - } - } - }; - - public BaseEpoxyAdapter() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#``(). public BaseEpoxyAdapter() - // Defaults to stable ids since view models generate unique ids. Set this to false in the - // subclass if you don't want to support it - setHasStableIds(true); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#setHasStableIds# - spanSizeLookup.setSpanIndexCacheEnabled(true); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#spanSizeLookup. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference setSpanIndexCacheEnabled# - } - - /** - * This is called when recoverable exceptions happen at runtime. They can be ignored and Epoxy - * will recover, but you can override this to be aware of when they happen. - */ - protected void onExceptionSwallowed(RuntimeException exception) { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onExceptionSwallowed(). protected void onExceptionSwallowed(RuntimeException exception) -// ^^^^^^^^^^^^^^^^ reference java/lang/RuntimeException# -// ^^^^^^^^^ definition local0 RuntimeException exception - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int getItemCount() { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#getItemCount(). @Override public int getItemCount() - return getCurrentModels().size(); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getCurrentModels(). -// ^^^^ reference java/util/List#size(). - } - - /** Return the models currently being used by the adapter to populate the recyclerview. */ - abstract List> getCurrentModels(); -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#getCurrentModels(). abstract List> getCurrentModels() - - public boolean isEmpty() { -// ^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#isEmpty(). public boolean isEmpty() - return getCurrentModels().isEmpty(); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getCurrentModels(). -// ^^^^^^^ reference java/util/List#isEmpty(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public long getItemId(int position) { -// ^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#getItemId(). @Override public long getItemId(int position) -// ^^^^^^^^ definition local1 int position - // This does not call getModelForPosition so that we don't use the id of the empty model when - // hidden, - // so that the id stays constant when gone vs shown - return getCurrentModels().get(position).id(); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getCurrentModels(). -// ^^^ reference java/util/List#get(). -// ^^^^^^^^ reference local1 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int getItemViewType(int position) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#getItemViewType(). @Override public int getItemViewType(int position) -// ^^^^^^^^ definition local2 int position - return viewTypeManager.getViewTypeAndRememberModel(getModelForPosition(position)); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#viewTypeManager. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#getViewTypeAndRememberModel(). -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getModelForPosition(). -// ^^^^^^^^ reference local2 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public EpoxyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onCreateViewHolder(). @Override public EpoxyViewHolder onCreateViewHolder(unresolved_type parent, int viewType) -// ^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local3 unresolved_type parent -// ^^^^^^^^ definition local4 int viewType - EpoxyModel model = viewTypeManager.getModelForViewType(this, viewType); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local5 EpoxyModel model -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#viewTypeManager. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#getModelForViewType(). -// ^^^^^^^^ reference local4 - View view = model.buildView(parent); -// ^^^^ reference _root_/ -// ^^^^ definition local6 unresolved_type view -// ^^^^^ reference local5 -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#buildView(). -// ^^^^^^ reference local3 - return new EpoxyViewHolder(parent, view, model.shouldSaveViewState()); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#``(). -// ^^^^^^ reference local3 -// ^^^^ reference local6 -// ^^^^^ reference local5 -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#shouldSaveViewState(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onBindViewHolder(EpoxyViewHolder holder, int position) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onBindViewHolder(). @Override public void onBindViewHolder(EpoxyViewHolder holder, int position) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local7 EpoxyViewHolder holder -// ^^^^^^^^ definition local8 int position - onBindViewHolder(holder, position, Collections.emptyList()); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#onBindViewHolder(+1). -// ^^^^^^ reference local7 -// ^^^^^^^^ reference local8 -// ^^^^^^^^^^^ reference java/util/Collections# -// ^^^^^^^^^ reference java/util/Collections#emptyList(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onBindViewHolder(EpoxyViewHolder holder, int position, List payloads) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onBindViewHolder(+1). @Override public void onBindViewHolder(EpoxyViewHolder holder, int position, List payloads) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local9 EpoxyViewHolder holder -// ^^^^^^^^ definition local10 int position -// ^^^^ reference java/util/List# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^ definition local11 List payloads - EpoxyModel modelToShow = getModelForPosition(position); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition local12 EpoxyModel modelToShow -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getModelForPosition(). -// ^^^^^^^^ reference local10 - - EpoxyModel previouslyBoundModel = null; -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^^ definition local13 EpoxyModel previouslyBoundModel - if (diffPayloadsEnabled()) { -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#diffPayloadsEnabled(). - previouslyBoundModel = DiffPayload.getModelFromPayload(payloads, getItemId(position)); -// ^^^^^^^^^^^^^^^^^^^^ reference local13 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload# -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#getModelFromPayload(). -// ^^^^^^^^ reference local11 -// ^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getItemId(). -// ^^^^^^^^ reference local10 - } - - holder.bind(modelToShow, previouslyBoundModel, payloads, position); -// ^^^^^^ reference local9 -// ^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#bind(). -// ^^^^^^^^^^^ reference local12 -// ^^^^^^^^^^^^^^^^^^^^ reference local13 -// ^^^^^^^^ reference local11 -// ^^^^^^^^ reference local10 - - if (payloads.isEmpty()) { -// ^^^^^^^^ reference local11 -// ^^^^^^^ reference java/util/List#isEmpty(). - // We only apply saved state to the view on initial bind, not on model updates. - // Since view state should be independent of model props, we should not need to apply state - // again in this case. This simplifies a rebind on update - viewHolderState.restore(holder); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#viewHolderState. -// ^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#restore(). -// ^^^^^^ reference local9 - } - - boundViewHolders.put(holder); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#boundViewHolders. -// ^^^ reference com/airbnb/epoxy/BoundViewHolders#put(). -// ^^^^^^ reference local9 - - if (diffPayloadsEnabled()) { -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#diffPayloadsEnabled(). - onModelBound(holder, modelToShow, position, previouslyBoundModel); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#onModelBound(+1). -// ^^^^^^ reference local9 -// ^^^^^^^^^^^ reference local12 -// ^^^^^^^^ reference local10 -// ^^^^^^^^^^^^^^^^^^^^ reference local13 - } else { - onModelBound(holder, modelToShow, position, payloads); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#onModelBound(). -// ^^^^^^ reference local9 -// ^^^^^^^^^^^ reference local12 -// ^^^^^^^^ reference local10 -// ^^^^^^^^ reference local11 - } - } - - boolean diffPayloadsEnabled() { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#diffPayloadsEnabled(). boolean diffPayloadsEnabled() - return false; - } - - /** - * Called immediately after a model is bound to a view holder. Subclasses can override this if - * they want alerts on when a model is bound. - */ - protected void onModelBound(EpoxyViewHolder holder, EpoxyModel model, int position, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onModelBound(). protected void onModelBound(EpoxyViewHolder holder, EpoxyModel model, int position, List payloads) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local14 EpoxyViewHolder holder -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local15 EpoxyModel model -// ^^^^^^^^ definition local16 int position - @Nullable List payloads) { -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^ reference java/util/List# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^ definition local17 @Nullable List payloads - onModelBound(holder, model, position); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#onModelBound(+2). -// ^^^^^^ reference local14 -// ^^^^^ reference local15 -// ^^^^^^^^ reference local16 - } - - void onModelBound(EpoxyViewHolder holder, EpoxyModel model, int position, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onModelBound(+1). void onModelBound(EpoxyViewHolder holder, EpoxyModel model, int position, EpoxyModel previouslyBoundModel) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local18 EpoxyViewHolder holder -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local19 EpoxyModel model -// ^^^^^^^^ definition local20 int position - @Nullable EpoxyModel previouslyBoundModel) { -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^^ definition local21 @Nullable EpoxyModel previouslyBoundModel - onModelBound(holder, model, position); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#onModelBound(+2). -// ^^^^^^ reference local18 -// ^^^^^ reference local19 -// ^^^^^^^^ reference local20 - } - - /** - * Called immediately after a model is bound to a view holder. Subclasses can override this if - * they want alerts on when a model is bound. - */ - protected void onModelBound(EpoxyViewHolder holder, EpoxyModel model, int position) { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onModelBound(+2). protected void onModelBound(EpoxyViewHolder holder, EpoxyModel model, int position) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local22 EpoxyViewHolder holder -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local23 EpoxyModel model -// ^^^^^^^^ definition local24 int position - - } - - /** - * Returns an object that manages the view holders currently bound to the RecyclerView. This - * object is mainly used by the base Epoxy adapter to save view states, but you may find it useful - * to help access views or models currently shown in the RecyclerView. - */ - protected BoundViewHolders getBoundViewHolders() { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#getBoundViewHolders(). protected BoundViewHolders getBoundViewHolders() - return boundViewHolders; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#boundViewHolders. - } - - EpoxyModel getModelForPosition(int position) { -//^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#getModelForPosition(). EpoxyModel getModelForPosition(int position) -// ^^^^^^^^ definition local25 int position - return getCurrentModels().get(position); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getCurrentModels(). -// ^^^ reference java/util/List#get(). -// ^^^^^^^^ reference local25 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onViewRecycled(EpoxyViewHolder holder) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onViewRecycled(). @Override public void onViewRecycled(EpoxyViewHolder holder) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local26 EpoxyViewHolder holder - viewHolderState.save(holder); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#viewHolderState. -// ^^^^ reference com/airbnb/epoxy/ViewHolderState#save(+1). -// ^^^^^^ reference local26 - boundViewHolders.remove(holder); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#boundViewHolders. -// ^^^^^^ reference com/airbnb/epoxy/BoundViewHolders#remove(). -// ^^^^^^ reference local26 - - EpoxyModel model = holder.getModel(); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local27 EpoxyModel model -// ^^^^^^ reference local26 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). - holder.unbind(); -// ^^^^^^ reference local26 -// ^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#unbind(). - onModelUnbound(holder, model); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#onModelUnbound(). -// ^^^^^^ reference local26 -// ^^^^^ reference local27 - } - - @CallSuper -// ^^^^^^^^^ reference androidx/annotation/CallSuper# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onDetachedFromRecyclerView(@NonNull RecyclerView recyclerView) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onDetachedFromRecyclerView(). @CallSuper @Override public void onDetachedFromRecyclerView(unresolved_type recyclerView) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local28 @NonNull unresolved_type recyclerView - // The last model is saved for optimization, but holding onto it can leak anything saved inside - // the model (like a click listener that references a Fragment). This is only needed during - // the viewholder creation phase, so it is safe to clear now. - viewTypeManager.lastModelForViewTypeLookup = null; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#viewTypeManager. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#lastModelForViewTypeLookup. - } - - /** - * Called immediately after a model is unbound from a view holder. Subclasses can override this if - * they want alerts on when a model is unbound. - */ - protected void onModelUnbound(EpoxyViewHolder holder, EpoxyModel model) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onModelUnbound(). protected void onModelUnbound(EpoxyViewHolder holder, EpoxyModel model) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local29 EpoxyViewHolder holder -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local30 EpoxyModel model - - } - - @CallSuper -// ^^^^^^^^^ reference androidx/annotation/CallSuper# - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean onFailedToRecycleView(EpoxyViewHolder holder) { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onFailedToRecycleView(). @CallSuper @Override public boolean onFailedToRecycleView(EpoxyViewHolder holder) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local31 EpoxyViewHolder holder - //noinspection unchecked,rawtypes - return ((EpoxyModel) holder.getModel()).onFailedToRecycleView(holder.objectToBind()); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ reference local31 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onFailedToRecycleView(). -// ^^^^^^ reference local31 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). - } - - @CallSuper -// ^^^^^^^^^ reference androidx/annotation/CallSuper# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onViewAttachedToWindow(EpoxyViewHolder holder) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onViewAttachedToWindow(). @CallSuper @Override public void onViewAttachedToWindow(EpoxyViewHolder holder) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local32 EpoxyViewHolder holder - //noinspection unchecked,rawtypes - ((EpoxyModel) holder.getModel()).onViewAttachedToWindow(holder.objectToBind()); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ reference local32 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onViewAttachedToWindow(). -// ^^^^^^ reference local32 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). - } - - @CallSuper -// ^^^^^^^^^ reference androidx/annotation/CallSuper# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onViewDetachedFromWindow(EpoxyViewHolder holder) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onViewDetachedFromWindow(). @CallSuper @Override public void onViewDetachedFromWindow(EpoxyViewHolder holder) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local33 EpoxyViewHolder holder - //noinspection unchecked,rawtypes - ((EpoxyModel) holder.getModel()).onViewDetachedFromWindow(holder.objectToBind()); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ reference local33 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onViewDetachedFromWindow(). -// ^^^^^^ reference local33 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). - } - - public void onSaveInstanceState(Bundle outState) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onSaveInstanceState(). public void onSaveInstanceState(unresolved_type outState) -// ^^^^^^ reference _root_/ -// ^^^^^^^^ definition local34 unresolved_type outState - // Save the state of currently bound views first so they are included. Views that were - // scrolled off and unbound will already have had - // their state saved. - for (EpoxyViewHolder holder : boundViewHolders) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local35 EpoxyViewHolder holder -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#boundViewHolders. - viewHolderState.save(holder); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#viewHolderState. -// ^^^^ reference com/airbnb/epoxy/ViewHolderState#save(+1). -// ^^^^^^ reference local35 - } - - if (viewHolderState.size() > 0 && !hasStableIds()) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#viewHolderState. -// ^^^^ reference androidx/collection/LongSparseArray#size(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#hasStableIds# - throw new IllegalStateException("Must have stable ids when saving view holder state"); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - } - - outState.putParcelable(SAVED_STATE_ARG_VIEW_HOLDERS, viewHolderState); -// ^^^^^^^^ reference local34 -// ^^^^^^^^^^^^^ reference putParcelable# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#SAVED_STATE_ARG_VIEW_HOLDERS. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#viewHolderState. - } - - public void onRestoreInstanceState(@Nullable Bundle inState) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#onRestoreInstanceState(). public void onRestoreInstanceState(unresolved_type inState) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^ reference _root_/ -// ^^^^^^^ definition local36 @Nullable unresolved_type inState - // To simplify things we enforce that state is restored before views are bound, otherwise it - // is more difficult to update view state once they are bound - if (boundViewHolders.size() > 0) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#boundViewHolders. -// ^^^^ reference com/airbnb/epoxy/BoundViewHolders#size(). - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "State cannot be restored once views have been bound. It should be done before adding " - + "the adapter to the recycler view."); - } - - if (inState != null) { -// ^^^^^^^ reference local36 - viewHolderState = inState.getParcelable(SAVED_STATE_ARG_VIEW_HOLDERS); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#viewHolderState. -// ^^^^^^^ reference local36 -// ^^^^^^^^^^^^^ reference getParcelable# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#SAVED_STATE_ARG_VIEW_HOLDERS. - if (viewHolderState == null) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#viewHolderState. - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "Tried to restore instance state, but onSaveInstanceState was never called."); - } - } - } - - /** - * Finds the position of the given model in the list. Doesn't use indexOf to avoid unnecessary - * equals() calls since we're looking for the same object instance. - * - * @return The position of the given model in the current models list, or -1 if the model can't be - * found. - */ - protected int getModelPosition(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#getModelPosition(). protected int getModelPosition(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local37 EpoxyModel model - int size = getCurrentModels().size(); -// ^^^^ definition local38 int size -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getCurrentModels(). -// ^^^^ reference java/util/List#size(). - for (int i = 0; i < size; i++) { -// ^ definition local39 int i -// ^ reference local39 -// ^^^^ reference local38 -// ^ reference local39 - if (model == getCurrentModels().get(i)) { -// ^^^^^ reference local37 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getCurrentModels(). -// ^^^ reference java/util/List#get(). -// ^ reference local39 - return i; -// ^ reference local39 - } - } - - return -1; - } - - /** - * For use with a grid layout manager - use this to get the {@link SpanSizeLookup} for models in - * this adapter. This will delegate span look up calls to each model's {@link - * EpoxyModel#getSpanSize(int, int, int)}. Make sure to also call {@link #setSpanCount(int)} so - * the span count is correct. - */ - public SpanSizeLookup getSpanSizeLookup() { -// ^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#getSpanSizeLookup(). public unresolved_type getSpanSizeLookup() - return spanSizeLookup; -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#spanSizeLookup. - } - - /** - * If you are using a grid layout manager you must call this to set the span count of the grid. - * This span count will be passed on to the models so models can choose what span count to be. - * - * @see #getSpanSizeLookup() - * @see EpoxyModel#getSpanSize(int, int, int) - */ - public void setSpanCount(int spanCount) { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#setSpanCount(). public void setSpanCount(int spanCount) -// ^^^^^^^^^ definition local40 int spanCount - this.spanCount = spanCount; -// ^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#spanCount. -// ^^^^^^^^^ reference local40 - } - - public int getSpanCount() { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#getSpanCount(). public int getSpanCount() - return spanCount; -// ^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#spanCount. - } - - public boolean isMultiSpan() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#isMultiSpan(). public boolean isMultiSpan() - return spanCount > 1; -// ^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#spanCount. - } - - //region Sticky header - - /** - * Optional callback to setup the sticky view, - * by default it doesn't do anything. - *

- * The sub-classes should override the function if they are - * using sticky header feature. - */ - @Override -// ^^^^^^^^ reference java/lang/Override# - public void setupStickyHeaderView(@NotNull View stickyHeader) { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#setupStickyHeaderView(). @Override public void setupStickyHeaderView(unresolved_type stickyHeader) -// ^^^^^^^ reference org/jetbrains/annotations/NotNull# -// ^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local41 @NotNull unresolved_type stickyHeader - // no-op - } - - /** - * Optional callback to perform tear down operation on the - * sticky view, by default it doesn't do anything. - *

- * The sub-classes should override the function if they are - * using sticky header feature. - */ - @Override -// ^^^^^^^^ reference java/lang/Override# - public void teardownStickyHeaderView(@NotNull View stickyHeader) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#teardownStickyHeaderView(). @Override public void teardownStickyHeaderView(unresolved_type stickyHeader) -// ^^^^^^^ reference org/jetbrains/annotations/NotNull# -// ^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local42 @NotNull unresolved_type stickyHeader - // no-op - } - - /** - * Called to check if the item at the position is a sticky item, - * by default returns false. - *

- * The sub-classes should override the function if they are - * using sticky header feature. - */ - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean isStickyHeader(int position) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyAdapter#isStickyHeader(). @Override public boolean isStickyHeader(int position) -// ^^^^^^^^ definition local43 int position - return false; - } - - //endregion -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/BaseEpoxyTouchCallback.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/BaseEpoxyTouchCallback.java deleted file mode 100644 index 94524eb90..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/BaseEpoxyTouchCallback.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.airbnb.epoxy; - -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# - -interface BaseEpoxyTouchCallback { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyTouchCallback# interface BaseEpoxyTouchCallback -// ^ definition com/airbnb/epoxy/BaseEpoxyTouchCallback#[T] T extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# - - /** - * Should return a composite flag which defines the enabled move directions in each state - * (idle, swiping, dragging) for the given model. - *

- * Return 0 to disable movement for the model. - * - * @param model The model being targeted for movement. - * @param adapterPosition The current adapter position of the targeted model - * @see androidx.recyclerview.widget.ItemTouchHelper.Callback#getMovementFlags - */ - int getMovementFlagsForModel(T model, int adapterPosition); -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyTouchCallback#getMovementFlagsForModel(). public abstract int getMovementFlagsForModel(T model, int adapterPosition) -// ^ reference com/airbnb/epoxy/BaseEpoxyTouchCallback#[T] -// ^^^^^ definition local0 T model -// ^^^^^^^^^^^^^^^ definition local1 int adapterPosition - - /** - * Called when the user interaction with a view is over and the view has - * completed its animation. This is a good place to clear all changes on the view that were done - * in other previous touch callbacks (such as on touch start, change, release, etc). - *

- * This is the last callback in the lifecycle of a touch event. - * - * @param model The model whose view is being cleared. - * @param itemView The view being cleared. - */ - void clearView(T model, View itemView); -// ^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyTouchCallback#clearView(). public abstract void clearView(T model, unresolved_type itemView) -// ^ reference com/airbnb/epoxy/BaseEpoxyTouchCallback#[T] -// ^^^^^ definition local2 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local3 unresolved_type itemView -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/BoundViewHolders.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/BoundViewHolders.java deleted file mode 100644 index 6f5448e93..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/BoundViewHolders.java +++ /dev/null @@ -1,146 +0,0 @@ - -package com.airbnb.epoxy; - -import java.util.Iterator; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^ reference java/util/Iterator# -import java.util.NoSuchElementException; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^^^^^^^^^^^^^ reference java/util/NoSuchElementException# - -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.collection.LongSparseArray; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/collection/ -// ^^^^^^^^^^^^^^^ reference androidx/collection/LongSparseArray# - -/** Helper class for keeping track of {@link EpoxyViewHolder}s that are currently bound. */ -@SuppressWarnings("WeakerAccess") -//^^^^^^^^^^^^^^^ reference java/lang/SuppressWarnings# -public class BoundViewHolders implements Iterable { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BoundViewHolders# @SuppressWarnings("WeakerAccess") public class BoundViewHolders -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BoundViewHolders#``(). public BoundViewHolders() -// ^^^^^^^^ reference java/lang/Iterable# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# - private final LongSparseArray holders = new LongSparseArray<>(); -// ^^^^^^^^^^^^^^^ reference androidx/collection/LongSparseArray# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^ definition com/airbnb/epoxy/BoundViewHolders#holders. private final LongSparseArray holders -// ^^^^^^^^^^^^^^^ reference androidx/collection/LongSparseArray#``(). - - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - public EpoxyViewHolder get(EpoxyViewHolder holder) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^ definition com/airbnb/epoxy/BoundViewHolders#get(). @Nullable public EpoxyViewHolder get(EpoxyViewHolder holder) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local0 EpoxyViewHolder holder - return holders.get(holder.getItemId()); -// ^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders#holders. -// ^^^ reference androidx/collection/LongSparseArray#get(). -// ^^^^^^ reference local0 -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getItemId# - } - - public void put(EpoxyViewHolder holder) { -// ^^^ definition com/airbnb/epoxy/BoundViewHolders#put(). public void put(EpoxyViewHolder holder) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local1 EpoxyViewHolder holder - holders.put(holder.getItemId(), holder); -// ^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders#holders. -// ^^^ reference androidx/collection/LongSparseArray#put(). -// ^^^^^^ reference local1 -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getItemId# -// ^^^^^^ reference local1 - } - - public void remove(EpoxyViewHolder holder) { -// ^^^^^^ definition com/airbnb/epoxy/BoundViewHolders#remove(). public void remove(EpoxyViewHolder holder) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local2 EpoxyViewHolder holder - holders.remove(holder.getItemId()); -// ^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders#holders. -// ^^^^^^ reference androidx/collection/LongSparseArray#remove(). -// ^^^^^^ reference local2 -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getItemId# - } - - public int size() { -// ^^^^ definition com/airbnb/epoxy/BoundViewHolders#size(). public int size() - return holders.size(); -// ^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders#holders. -// ^^^^ reference androidx/collection/LongSparseArray#size(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public Iterator iterator() { -// ^^^^^^^^ reference java/util/Iterator# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^ definition com/airbnb/epoxy/BoundViewHolders#iterator(). @Override public Iterator iterator() - return new HolderIterator(); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders#HolderIterator#``(). - } - - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - public EpoxyViewHolder getHolderForModel(EpoxyModel model) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BoundViewHolders#getHolderForModel(). @Nullable public EpoxyViewHolder getHolderForModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local3 EpoxyModel model - return holders.get(model.id()); -// ^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders#holders. -// ^^^ reference androidx/collection/LongSparseArray#get(). -// ^^^^^ reference local3 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). - } - - private class HolderIterator implements Iterator { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BoundViewHolders#HolderIterator# private class HolderIterator -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BoundViewHolders#HolderIterator#``(). private HolderIterator() -// ^^^^^^^^ reference java/util/Iterator# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# - private int position = 0; -// ^^^^^^^^ definition com/airbnb/epoxy/BoundViewHolders#HolderIterator#position. private int position - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean hasNext() { -// ^^^^^^^ definition com/airbnb/epoxy/BoundViewHolders#HolderIterator#hasNext(). @Override public boolean hasNext() - return position < holders.size(); -// ^^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders#HolderIterator#position. -// ^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders#holders. -// ^^^^ reference androidx/collection/LongSparseArray#size(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public EpoxyViewHolder next() { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^ definition com/airbnb/epoxy/BoundViewHolders#HolderIterator#next(). @Override public EpoxyViewHolder next() - if (!hasNext()) { -// ^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders#HolderIterator#hasNext(). - throw new NoSuchElementException(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference java/util/NoSuchElementException#``(). - } - return holders.valueAt(position++); -// ^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders#holders. -// ^^^^^^^ reference androidx/collection/LongSparseArray#valueAt(). -// ^^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders#HolderIterator#position. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void remove() { -// ^^^^^^ definition com/airbnb/epoxy/BoundViewHolders#HolderIterator#remove(). @Override public void remove() - throw new UnsupportedOperationException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/UnsupportedOperationException#``(). - } - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/Carousel.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/Carousel.java deleted file mode 100644 index 2dd25f9a2..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/Carousel.java +++ /dev/null @@ -1,1151 +0,0 @@ -package com.airbnb.epoxy; - -import android.content.Context; -// ^^^^^^^ reference android/ -// ^^^^^^^ reference android/content/ -// ^^^^^^^ reference android/content/Context# -import android.util.AttributeSet; -// ^^^^^^^ reference android/ -// ^^^^ reference android/util/ -// ^^^^^^^^^^^^ reference android/util/AttributeSet# -import android.util.DisplayMetrics; -// ^^^^^^^ reference android/ -// ^^^^ reference android/util/ -// ^^^^^^^^^^^^^^ reference android/util/DisplayMetrics# -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# -import android.view.ViewGroup; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^^^^^^ reference android/view/ViewGroup# - -import com.airbnb.epoxy.ModelView.Size; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelView# -// ^^^^ reference com/airbnb/epoxy/ModelView#Size# -import com.airbnb.viewmodeladapter.R; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^^^^^^^^^^^^ reference com/airbnb/viewmodeladapter/ -// ^ reference com/airbnb/viewmodeladapter/R# - -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -import androidx.annotation.DimenRes; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/DimenRes# -import androidx.annotation.Dimension; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^ reference androidx/annotation/Dimension# -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.annotation.Px; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^ reference androidx/annotation/Px# -import androidx.recyclerview.widget.LinearLayoutManager; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/LinearLayoutManager# -import androidx.recyclerview.widget.LinearSnapHelper; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/LinearSnapHelper# -import androidx.recyclerview.widget.SnapHelper; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^ reference androidx/recyclerview/widget/SnapHelper# - -/** - * This feature is in Beta - please report bugs, feature requests, or other feedback at - * https://github.com/airbnb/epoxy by creating a new issue. Thanks! - * - *

This is intended as a plug and play "Carousel" view - a Recyclerview with horizontal - * scrolling. It comes with common defaults and performance optimizations and can be either used as - * a top level RecyclerView, or nested within a vertical recyclerview. - * - *

This class provides: - * - *

1. Automatic integration with Epoxy. A {@link CarouselModel_} is generated from this class, - * which you can use in your EpoxyController. Just call {@link #setModels(List)} to provide the list - * of models to show in the carousel. - * - *

2. Default padding for carousel peeking, and an easy way to change this padding - {@link - * #setPaddingDp(int)} - * - *

3. Easily control how many items are shown on screen in the carousel at a time - {@link - * #setNumViewsToShowOnScreen(float)} - * - *

4. Easy snap support. By default a {@link LinearSnapHelper} is used, but you can set a global - * default for all Carousels with {@link #setDefaultGlobalSnapHelperFactory(SnapHelperFactory)} - * - *

5. All of the benefits of {@link EpoxyRecyclerView} - * - *

If you need further flexibility you can subclass this view to change its width, height, - * scrolling direction, etc. You can annotate a subclass with {@link ModelView} to generate a new - * EpoxyModel. - */ -@ModelView(saveViewState = true, autoLayout = Size.MATCH_WIDTH_WRAP_HEIGHT) -//^^^^^^^^ reference com/airbnb/epoxy/ModelView# -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelView#saveViewState(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelView#autoLayout(). -// ^^^^ reference com/airbnb/epoxy/ModelView#Size# -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelView#Size#MATCH_WIDTH_WRAP_HEIGHT. -public class Carousel extends EpoxyRecyclerView { -// ^^^^^^^^ definition com/airbnb/epoxy/Carousel# @ModelView(saveViewState = true, autoLayout = Size.MATCH_WIDTH_WRAP_HEIGHT) public class Carousel -// ^^^^^^^^^^^^^^^^^ reference _root_/ - public static final int NO_VALUE_SET = -1; -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#NO_VALUE_SET. public static final int NO_VALUE_SET - - private static SnapHelperFactory defaultGlobalSnapHelperFactory = -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#SnapHelperFactory# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#defaultGlobalSnapHelperFactory. private static SnapHelperFactory defaultGlobalSnapHelperFactory - new SnapHelperFactory() { -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#SnapHelperFactory# - - @Override -// ^^^^^^^^ reference java/lang/Override# - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - public SnapHelper buildSnapHelper(Context context) { -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^ definition local2 @Override @NonNull public unresolved_type buildSnapHelper(unresolved_type context) -// ^^^^^^^ reference _root_/ -// ^^^^^^^ definition local3 unresolved_type context - return new LinearSnapHelper(); - } - }; - - @Dimension(unit = Dimension.DP) -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^^^ reference androidx/annotation/Dimension#unit(). -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^ reference androidx/annotation/Dimension#DP. - private static int defaultSpacingBetweenItemsDp = 8; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#defaultSpacingBetweenItemsDp. @Dimension(unit = Dimension.DP) private static int defaultSpacingBetweenItemsDp - - private float numViewsToShowOnScreen; -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#numViewsToShowOnScreen. private float numViewsToShowOnScreen - - public Carousel(Context context) { -// ^^^^^^^^ definition com/airbnb/epoxy/Carousel#``(). public Carousel(unresolved_type context) -// ^^^^^^^ reference _root_/ -// ^^^^^^^ definition local4 unresolved_type context - super(context); -// ^^^^^^^ reference local4 - } - - public Carousel(Context context, @Nullable AttributeSet attrs) { -// ^^^^^^^^ definition com/airbnb/epoxy/Carousel#``(+1). public Carousel(unresolved_type context, unresolved_type attrs) -// ^^^^^^^ reference _root_/ -// ^^^^^^^ definition local5 unresolved_type context -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^ definition local6 @Nullable unresolved_type attrs - super(context, attrs); -// ^^^^^^^ reference local5 -// ^^^^^ reference local6 - } - - public Carousel(Context context, @Nullable AttributeSet attrs, int defStyle) { -// ^^^^^^^^ definition com/airbnb/epoxy/Carousel#``(+2). public Carousel(unresolved_type context, unresolved_type attrs, int defStyle) -// ^^^^^^^ reference _root_/ -// ^^^^^^^ definition local7 unresolved_type context -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^ definition local8 @Nullable unresolved_type attrs -// ^^^^^^^^ definition local9 int defStyle - super(context, attrs, defStyle); -// ^^^^^^^ reference local7 -// ^^^^^ reference local8 -// ^^^^^^^^ reference local9 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected void init() { -// ^^^^ definition com/airbnb/epoxy/Carousel#init(). @Override protected void init() - super.init(); -// ^^^^^ reference _root_/ -// ^^^^ reference init# - // When used as a model the padding can't be set via xml so we set it programmatically - int defaultSpacingDp = getDefaultSpacingBetweenItemsDp(); -// ^^^^^^^^^^^^^^^^ definition local10 int defaultSpacingDp -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getDefaultSpacingBetweenItemsDp(). - - if (defaultSpacingDp >= 0) { -// ^^^^^^^^^^^^^^^^ reference local10 - setItemSpacingDp(defaultSpacingDp); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setItemSpacingDp# -// ^^^^^^^^^^^^^^^^ reference local10 - - if (getPaddingLeft() == 0 -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getPaddingLeft# - && getPaddingRight() == 0 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getPaddingRight# - && getPaddingTop() == 0 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getPaddingTop# - && getPaddingBottom() == 0) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getPaddingBottom# - // Use the item spacing as the default padding if no other padding has been set - setPaddingDp(defaultSpacingDp); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setPaddingDp(). -// ^^^^^^^^^^^^^^^^ reference local10 - } - } - - SnapHelperFactory snapHelperFactory = getSnapHelperFactory(); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#SnapHelperFactory# -// ^^^^^^^^^^^^^^^^^ definition local11 SnapHelperFactory snapHelperFactory -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getSnapHelperFactory(). - if (snapHelperFactory != null) { -// ^^^^^^^^^^^^^^^^^ reference local11 - snapHelperFactory.buildSnapHelper(getContext()).attachToRecyclerView(this); -// ^^^^^^^^^^^^^^^^^ reference local11 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#SnapHelperFactory#buildSnapHelper(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getContext# -// ^^^^^^^^^^^^^^^^^^^^ reference ``#attachToRecyclerView# - } - - // Carousels will be detached when their parent recyclerview is - setRemoveAdapterWhenDetachedFromWindow(false); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setRemoveAdapterWhenDetachedFromWindow# - } - - /** - * Return a {@link SnapHelperFactory} instance to use with this Carousel. The {@link SnapHelper} - * created by the factory will be attached to this Carousel on view creation. Return null for no - * snap helper to be attached automatically. - */ - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - protected SnapHelperFactory getSnapHelperFactory() { -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#SnapHelperFactory# -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#getSnapHelperFactory(). @Nullable protected SnapHelperFactory getSnapHelperFactory() - return defaultGlobalSnapHelperFactory; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#defaultGlobalSnapHelperFactory. - } - - /** - * Set a {@link SnapHelperFactory} instance to use with all Carousels by default. The {@link - * SnapHelper} created by the factory will be attached to each Carousel on view creation. Set null - * for no snap helper to be attached automatically. - * - *

A Carousel subclass can implement {@link #getSnapHelperFactory()} to override the global - * default. - */ - public static void setDefaultGlobalSnapHelperFactory(@Nullable SnapHelperFactory factory) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#setDefaultGlobalSnapHelperFactory(). public static void setDefaultGlobalSnapHelperFactory(SnapHelperFactory factory) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#SnapHelperFactory# -// ^^^^^^^ definition local12 @Nullable SnapHelperFactory factory - defaultGlobalSnapHelperFactory = factory; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#defaultGlobalSnapHelperFactory. -// ^^^^^^^ reference local12 - } - - @ModelProp -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelProp# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void setHasFixedSize(boolean hasFixedSize) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#setHasFixedSize(). @ModelProp @Override public void setHasFixedSize(boolean hasFixedSize) -// ^^^^^^^^^^^^ definition local13 boolean hasFixedSize - super.setHasFixedSize(hasFixedSize); -// ^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^ reference setHasFixedSize# -// ^^^^^^^^^^^^ reference local13 - } - - /** - * Set the number of views to show on screen in this carousel at a time, partial numbers are - * allowed. - * - *

This is useful where you want to easily control for the number of items on screen, - * regardless of screen size. For example, you could set this to 1.2f so that one view is shown in - * full and 20% of the next view "peeks" from the edge to indicate that there is more content to - * scroll to. - * - *

Another pattern is setting a different view count depending on whether the device is phone - * or tablet. - * - *

Additionally, if a LinearLayoutManager is used this value will be forwarded to {@link - * LinearLayoutManager#setInitialPrefetchItemCount(int)} as a performance optimization. - * - *

If you want to only change the prefetch count without changing the view size you can simply - * use {@link #setInitialPrefetchItemCount(int)} - */ - @ModelProp(group = "prefetch") -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelProp# -// ^^^^^ reference com/airbnb/epoxy/ModelProp#group(). - public void setNumViewsToShowOnScreen(float viewCount) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#setNumViewsToShowOnScreen(). @ModelProp(group = "prefetch") public void setNumViewsToShowOnScreen(float viewCount) -// ^^^^^^^^^ definition local14 float viewCount - numViewsToShowOnScreen = viewCount; -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#numViewsToShowOnScreen. -// ^^^^^^^^^ reference local14 - setInitialPrefetchItemCount((int) Math.ceil(viewCount)); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setInitialPrefetchItemCount(). -// ^^^^ reference java/lang/Math# -// ^^^^ reference java/lang/Math#ceil(). -// ^^^^^^^^^ reference local14 - } - - /** - * @return The number of views to show on screen in this carousel at a time. - */ - public float getNumViewsToShowOnScreen() { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#getNumViewsToShowOnScreen(). public float getNumViewsToShowOnScreen() - return numViewsToShowOnScreen; -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#numViewsToShowOnScreen. - } - - /** - * If you are using a Linear or Grid layout manager you can use this to set the item prefetch - * count. Only use this if you are not using {@link #setNumViewsToShowOnScreen(float)} - * - * @see #setNumViewsToShowOnScreen(float) - * @see LinearLayoutManager#setInitialPrefetchItemCount(int) - */ - @ModelProp(group = "prefetch") -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelProp# -// ^^^^^ reference com/airbnb/epoxy/ModelProp#group(). - public void setInitialPrefetchItemCount(int numItemsToPrefetch) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#setInitialPrefetchItemCount(). @ModelProp(group = "prefetch") public void setInitialPrefetchItemCount(int numItemsToPrefetch) -// ^^^^^^^^^^^^^^^^^^ definition local15 int numItemsToPrefetch - if (numItemsToPrefetch < 0) { -// ^^^^^^^^^^^^^^^^^^ reference local15 - throw new IllegalStateException("numItemsToPrefetch must be greater than 0"); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - } - - // Use the linearlayoutmanager default of 2 if the user did not specify one - int prefetchCount = numItemsToPrefetch == 0 ? 2 : numItemsToPrefetch; -// ^^^^^^^^^^^^^ definition local16 int prefetchCount -// ^^^^^^^^^^^^^^^^^^ reference local15 -// ^^^^^^^^^^^^^^^^^^ reference local15 - - LayoutManager layoutManager = getLayoutManager(); -// ^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^ definition local17 unresolved_type layoutManager -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getLayoutManager# - if (layoutManager instanceof LinearLayoutManager) { -// ^^^^^^^^^^^^^ reference local17 -// ^^^^^^^^^^^^^^^^^^^ reference _root_/ - ((LinearLayoutManager) layoutManager).setInitialPrefetchItemCount(prefetchCount); -// ^^^^^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^ reference local17 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference setInitialPrefetchItemCount# -// ^^^^^^^^^^^^^ reference local16 - } - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onChildAttachedToWindow(View child) { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#onChildAttachedToWindow(). @Override public void onChildAttachedToWindow(unresolved_type child) -// ^^^^ reference _root_/ -// ^^^^^ definition local18 unresolved_type child - if (numViewsToShowOnScreen > 0) { -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#numViewsToShowOnScreen. - ViewGroup.LayoutParams childLayoutParams = child.getLayoutParams(); -// ^^^^^^^^^ reference ViewGroup/ -// ^^^^^^^^^^^^ reference ViewGroup/LayoutParams# -// ^^^^^^^^^^^^^^^^^ definition local19 unresolved_type childLayoutParams -// ^^^^^ reference local18 -// ^^^^^^^^^^^^^^^ reference getLayoutParams# - child.setTag(R.id.epoxy_recycler_view_child_initial_size_id, childLayoutParams.width); -// ^^^^^ reference local18 -// ^^^^^^ reference setTag# -// ^ reference R/ -// ^^ reference R/id# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference R/id#epoxy_recycler_view_child_initial_size_id# -// ^^^^^^^^^^^^^^^^^ reference local19 -// ^^^^^ reference ViewGroup/LayoutParams#width# - - int itemSpacingPx = getSpacingDecorator().getPxBetweenItems(); -// ^^^^^^^^^^^^^ definition local20 int itemSpacingPx -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getSpacingDecorator# -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getSpacingDecorator#getPxBetweenItems# - int spaceBetweenItems = 0; -// ^^^^^^^^^^^^^^^^^ definition local21 int spaceBetweenItems - if (itemSpacingPx > 0) { -// ^^^^^^^^^^^^^ reference local20 - // The item decoration space is not counted in the width of the view - spaceBetweenItems = (int) (itemSpacingPx * numViewsToShowOnScreen); -// ^^^^^^^^^^^^^^^^^ reference local21 -// ^^^^^^^^^^^^^ reference local20 -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#numViewsToShowOnScreen. - } - - boolean isScrollingHorizontally = getLayoutManager().canScrollHorizontally(); -// ^^^^^^^^^^^^^^^^^^^^^^^ definition local22 boolean isScrollingHorizontally -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getLayoutManager# -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getLayoutManager#canScrollHorizontally# - int itemSizeInScrollingDirection = -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition local23 int itemSizeInScrollingDirection - (int) - ((getSpaceForChildren(isScrollingHorizontally) - spaceBetweenItems) -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getSpaceForChildren(). -// ^^^^^^^^^^^^^^^^^^^^^^^ reference local22 -// ^^^^^^^^^^^^^^^^^ reference local21 - / numViewsToShowOnScreen); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#numViewsToShowOnScreen. - - if (isScrollingHorizontally) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference local22 - childLayoutParams.width = itemSizeInScrollingDirection; -// ^^^^^^^^^^^^^^^^^ reference local19 -// ^^^^^ reference ViewGroup/LayoutParams#width# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference local23 - } else { - childLayoutParams.height = itemSizeInScrollingDirection; -// ^^^^^^^^^^^^^^^^^ reference local19 -// ^^^^^^ reference ViewGroup/LayoutParams#height# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference local23 - } - - // We don't need to request layout because the layout manager will do that for us next - } - } - - private int getSpaceForChildren(boolean horizontal) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#getSpaceForChildren(). private int getSpaceForChildren(boolean horizontal) -// ^^^^^^^^^^ definition local24 boolean horizontal - if (horizontal) { -// ^^^^^^^^^^ reference local24 - return getTotalWidthPx(this) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getTotalWidthPx(). - - getPaddingLeft() -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getPaddingLeft# - - (getClipToPadding() ? getPaddingRight() : 0); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getClipToPadding# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getPaddingRight# - // If child views will be showing through padding than we include just one side of padding - // since when the list is at position 0 only the child towards the end of the list will show - // through the padding. - } else { - return getTotalHeightPx(this) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getTotalHeightPx(). - - getPaddingTop() -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getPaddingTop# - - (getClipToPadding() ? getPaddingBottom() : 0); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getClipToPadding# -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getPaddingBottom# - } - } - - @Px -// ^^ reference androidx/annotation/Px# - private static int getTotalWidthPx(View view) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#getTotalWidthPx(). @Px private static int getTotalWidthPx(unresolved_type view) -// ^^^^ reference _root_/ -// ^^^^ definition local25 unresolved_type view - if (view.getWidth() > 0) { -// ^^^^ reference local25 -// ^^^^^^^^ reference getWidth# - // Can only get a width if we are laid out - return view.getWidth(); -// ^^^^ reference local25 -// ^^^^^^^^ reference getWidth# - } - - if (view.getMeasuredWidth() > 0) { -// ^^^^ reference local25 -// ^^^^^^^^^^^^^^^^ reference getMeasuredWidth# - return view.getMeasuredWidth(); -// ^^^^ reference local25 -// ^^^^^^^^^^^^^^^^ reference getMeasuredWidth# - } - - // Fall back to assuming we want the full screen width - DisplayMetrics metrics = view.getContext().getResources().getDisplayMetrics(); -// ^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^ definition local26 unresolved_type metrics -// ^^^^ reference local25 -// ^^^^^^^^^^ reference getContext# -// ^^^^^^^^^^^^ reference getContext#getResources# -// ^^^^^^^^^^^^^^^^^ reference getContext#getResources#getDisplayMetrics# - return metrics.widthPixels; -// ^^^^^^^ reference local26 -// ^^^^^^^^^^^ reference widthPixels# - } - - @Px -// ^^ reference androidx/annotation/Px# - private static int getTotalHeightPx(View view) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#getTotalHeightPx(). @Px private static int getTotalHeightPx(unresolved_type view) -// ^^^^ reference _root_/ -// ^^^^ definition local27 unresolved_type view - if (view.getHeight() > 0) { -// ^^^^ reference local27 -// ^^^^^^^^^ reference getHeight# - return view.getHeight(); -// ^^^^ reference local27 -// ^^^^^^^^^ reference getHeight# - } - - if (view.getMeasuredHeight() > 0) { -// ^^^^ reference local27 -// ^^^^^^^^^^^^^^^^^ reference getMeasuredHeight# - return view.getMeasuredHeight(); -// ^^^^ reference local27 -// ^^^^^^^^^^^^^^^^^ reference getMeasuredHeight# - } - - // Fall back to assuming we want the full screen width - DisplayMetrics metrics = view.getContext().getResources().getDisplayMetrics(); -// ^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^ definition local28 unresolved_type metrics -// ^^^^ reference local27 -// ^^^^^^^^^^ reference getContext# -// ^^^^^^^^^^^^ reference getContext#getResources# -// ^^^^^^^^^^^^^^^^^ reference getContext#getResources#getDisplayMetrics# - return metrics.heightPixels; -// ^^^^^^^ reference local28 -// ^^^^^^^^^^^^ reference heightPixels# - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onChildDetachedFromWindow(View child) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#onChildDetachedFromWindow(). @Override public void onChildDetachedFromWindow(unresolved_type child) -// ^^^^ reference _root_/ -// ^^^^^ definition local29 unresolved_type child - // Restore the view width that existed before we modified it - Object initialWidth = child.getTag(R.id.epoxy_recycler_view_child_initial_size_id); -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^^^^^ definition local30 Object initialWidth -// ^^^^^ reference local29 -// ^^^^^^ reference getTag# -// ^ reference R/ -// ^^ reference R/id# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference R/id#epoxy_recycler_view_child_initial_size_id# - - if (initialWidth instanceof Integer) { -// ^^^^^^^^^^^^ reference local30 -// ^^^^^^^ reference java/lang/Integer# - ViewGroup.LayoutParams params = child.getLayoutParams(); -// ^^^^^^^^^ reference ViewGroup/ -// ^^^^^^^^^^^^ reference ViewGroup/LayoutParams# -// ^^^^^^ definition local31 unresolved_type params -// ^^^^^ reference local29 -// ^^^^^^^^^^^^^^^ reference getLayoutParams# - params.width = (int) initialWidth; -// ^^^^^^ reference local31 -// ^^^^^ reference ViewGroup/LayoutParams#width# -// ^^^^^^^^^^^^ reference local30 - child.setTag(R.id.epoxy_recycler_view_child_initial_size_id, null); -// ^^^^^ reference local29 -// ^^^^^^ reference setTag# -// ^ reference R/ -// ^^ reference R/id# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference R/id#epoxy_recycler_view_child_initial_size_id# - // No need to request layout since the view is unbound and not attached to window - } - } - - /** - * Set a global default to use as the item spacing for all Carousels. Set to 0 for no item - * spacing. - */ - public static void setDefaultItemSpacingDp(@Dimension(unit = Dimension.DP) int dp) { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#setDefaultItemSpacingDp(). public static void setDefaultItemSpacingDp(int dp) -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^^^ reference androidx/annotation/Dimension#unit(). -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^ reference androidx/annotation/Dimension#DP. -// ^^ definition local32 @Dimension(unit = Dimension.DP) int dp - defaultSpacingBetweenItemsDp = dp; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#defaultSpacingBetweenItemsDp. -// ^^ reference local32 - } - - /** - * Return the item spacing to use in this carousel, or 0 for no spacing. - * - *

By default this uses the global default set in {@link #setDefaultItemSpacingDp(int)}, but - * subclasses can override this to specify their own value. - */ - @Dimension(unit = Dimension.DP) -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^^^ reference androidx/annotation/Dimension#unit(). -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^ reference androidx/annotation/Dimension#DP. - protected int getDefaultSpacingBetweenItemsDp() { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#getDefaultSpacingBetweenItemsDp(). @Dimension(unit = Dimension.DP) protected int getDefaultSpacingBetweenItemsDp() - return defaultSpacingBetweenItemsDp; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#defaultSpacingBetweenItemsDp. - } - - /** - * Set a dimension resource to specify the padding value to use on each side of the carousel and - * in between carousel items. - */ - @ModelProp(group = "padding") -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelProp# -// ^^^^^ reference com/airbnb/epoxy/ModelProp#group(). - public void setPaddingRes(@DimenRes int paddingRes) { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#setPaddingRes(). @ModelProp(group = "padding") public void setPaddingRes(int paddingRes) -// ^^^^^^^^ reference androidx/annotation/DimenRes# -// ^^^^^^^^^^ definition local33 @DimenRes int paddingRes - int px = resToPx(paddingRes); -// ^^ definition local34 int px -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#resToPx# -// ^^^^^^^^^^ reference local33 - setPadding(px, px, px, px); -// ^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setPadding# -// ^^ reference local34 -// ^^ reference local34 -// ^^ reference local34 -// ^^ reference local34 - setItemSpacingPx(px); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setItemSpacingPx# -// ^^ reference local34 - } - - /** - * Set a DP value to use as the padding on each side of the carousel and in between carousel - * items. - * - *

The default as the value returned by {@link #getDefaultSpacingBetweenItemsDp()} - */ - @ModelProp(defaultValue = "NO_VALUE_SET", group = "padding") -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelProp# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelProp#defaultValue(). -// ^^^^^ reference com/airbnb/epoxy/ModelProp#group(). - public void setPaddingDp(@Dimension(unit = Dimension.DP) int paddingDp) { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#setPaddingDp(). @ModelProp(defaultValue = "NO_VALUE_SET", group = "padding") public void setPaddingDp(int paddingDp) -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^^^ reference androidx/annotation/Dimension#unit(). -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^ reference androidx/annotation/Dimension#DP. -// ^^^^^^^^^ definition local35 @Dimension(unit = Dimension.DP) int paddingDp - int px = dpToPx(paddingDp != NO_VALUE_SET ? paddingDp : getDefaultSpacingBetweenItemsDp()); -// ^^ definition local36 int px -// ^^^^^^ reference com/airbnb/epoxy/Carousel#dpToPx# -// ^^^^^^^^^ reference local35 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#NO_VALUE_SET. -// ^^^^^^^^^ reference local35 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#getDefaultSpacingBetweenItemsDp(). - setPadding(px, px, px, px); -// ^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setPadding# -// ^^ reference local36 -// ^^ reference local36 -// ^^ reference local36 -// ^^ reference local36 - setItemSpacingPx(px); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setItemSpacingPx# -// ^^ reference local36 - } - - /** - * Use the {@link Padding} class to specify individual padding values for each side of the - * carousel, as well as item spacing. - * - *

A value of null will set all padding and item spacing to 0. - */ - @ModelProp(group = "padding") -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelProp# -// ^^^^^ reference com/airbnb/epoxy/ModelProp#group(). - public void setPadding(@Nullable Padding padding) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#setPadding(). @ModelProp(group = "padding") public void setPadding(Padding padding) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding# -// ^^^^^^^ definition local37 @Nullable Padding padding - if (padding == null) { -// ^^^^^^^ reference local37 - setPaddingDp(0); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setPaddingDp(). - } else if (padding.paddingType == Padding.PaddingType.PX) { -// ^^^^^^^ reference local37 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#paddingType. -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding# -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType# -// ^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType#PX. - setPadding(padding.left, padding.top, padding.right, padding.bottom); -// ^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setPadding# -// ^^^^^^^ reference local37 -// ^^^^ reference com/airbnb/epoxy/Carousel#Padding#left. -// ^^^^^^^ reference local37 -// ^^^ reference com/airbnb/epoxy/Carousel#Padding#top. -// ^^^^^^^ reference local37 -// ^^^^^ reference com/airbnb/epoxy/Carousel#Padding#right. -// ^^^^^^^ reference local37 -// ^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#bottom. - setItemSpacingPx(padding.itemSpacing); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setItemSpacingPx# -// ^^^^^^^ reference local37 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#itemSpacing. - } else if (padding.paddingType == Padding.PaddingType.DP) { -// ^^^^^^^ reference local37 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#paddingType. -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding# -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType# -// ^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType#DP. - setPadding( -// ^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setPadding# - dpToPx(padding.left), dpToPx(padding.top), dpToPx(padding.right), dpToPx(padding.bottom)); -// ^^^^^^ reference com/airbnb/epoxy/Carousel#dpToPx# -// ^^^^^^^ reference local37 -// ^^^^ reference com/airbnb/epoxy/Carousel#Padding#left. -// ^^^^^^ reference com/airbnb/epoxy/Carousel#dpToPx# -// ^^^^^^^ reference local37 -// ^^^ reference com/airbnb/epoxy/Carousel#Padding#top. -// ^^^^^^ reference com/airbnb/epoxy/Carousel#dpToPx# -// ^^^^^^^ reference local37 -// ^^^^^ reference com/airbnb/epoxy/Carousel#Padding#right. -// ^^^^^^ reference com/airbnb/epoxy/Carousel#dpToPx# -// ^^^^^^^ reference local37 -// ^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#bottom. - setItemSpacingPx(dpToPx(padding.itemSpacing)); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setItemSpacingPx# -// ^^^^^^ reference com/airbnb/epoxy/Carousel#dpToPx# -// ^^^^^^^ reference local37 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#itemSpacing. - } else if (padding.paddingType == Padding.PaddingType.RESOURCE) { -// ^^^^^^^ reference local37 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#paddingType. -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding# -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType# -// ^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType#RESOURCE. - setPadding( -// ^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setPadding# - resToPx(padding.left), -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#resToPx# -// ^^^^^^^ reference local37 -// ^^^^ reference com/airbnb/epoxy/Carousel#Padding#left. - resToPx(padding.top), -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#resToPx# -// ^^^^^^^ reference local37 -// ^^^ reference com/airbnb/epoxy/Carousel#Padding#top. - resToPx(padding.right), -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#resToPx# -// ^^^^^^^ reference local37 -// ^^^^^ reference com/airbnb/epoxy/Carousel#Padding#right. - resToPx(padding.bottom)); -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#resToPx# -// ^^^^^^^ reference local37 -// ^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#bottom. - setItemSpacingPx(resToPx(padding.itemSpacing)); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#setItemSpacingPx# -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#resToPx# -// ^^^^^^^ reference local37 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#itemSpacing. - } - } - - /** - * Used to specify individual padding values programmatically. - * - * @see #setPadding(Padding) - */ - public static class Padding { -// ^^^^^^^ definition com/airbnb/epoxy/Carousel#Padding# public static class Padding - public final int left; -// ^^^^ definition com/airbnb/epoxy/Carousel#Padding#left. public final int left - public final int top; -// ^^^ definition com/airbnb/epoxy/Carousel#Padding#top. public final int top - public final int right; -// ^^^^^ definition com/airbnb/epoxy/Carousel#Padding#right. public final int right - public final int bottom; -// ^^^^^^ definition com/airbnb/epoxy/Carousel#Padding#bottom. public final int bottom - public final int itemSpacing; -// ^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#Padding#itemSpacing. public final int itemSpacing - public final PaddingType paddingType; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType# -// ^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#Padding#paddingType. public final PaddingType paddingType - - enum PaddingType { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#Padding#PaddingType# enum PaddingType -// ^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#Padding#PaddingType#``(). private PaddingType() - PX, -// ^^ definition com/airbnb/epoxy/Carousel#Padding#PaddingType#PX. PaddingType.PX /* ordinal 0 */ - DP, -// ^^ definition com/airbnb/epoxy/Carousel#Padding#PaddingType#DP. PaddingType.DP /* ordinal 1 */ - RESOURCE -// ^^^^^^^^ definition com/airbnb/epoxy/Carousel#Padding#PaddingType#RESOURCE. PaddingType.RESOURCE /* ordinal 2 */ - } - - /** - * @param paddingRes Padding as dimension resource. - * @param itemSpacingRes Space as dimension resource to add between each carousel item. Will be - * implemented via an item decoration. - */ - public static Padding resource(@DimenRes int paddingRes, @DimenRes int itemSpacingRes) { -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding# -// ^^^^^^^^ definition com/airbnb/epoxy/Carousel#Padding#resource(). public static Padding resource(int paddingRes, int itemSpacingRes) -// ^^^^^^^^ reference androidx/annotation/DimenRes# -// ^^^^^^^^^^ definition local38 @DimenRes int paddingRes -// ^^^^^^^^ reference androidx/annotation/DimenRes# -// ^^^^^^^^^^^^^^ definition local39 @DimenRes int itemSpacingRes - return new Padding( -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#``(+2). - paddingRes, paddingRes, paddingRes, paddingRes, itemSpacingRes, PaddingType.RESOURCE); -// ^^^^^^^^^^ reference local38 -// ^^^^^^^^^^ reference local38 -// ^^^^^^^^^^ reference local38 -// ^^^^^^^^^^ reference local38 -// ^^^^^^^^^^^^^^ reference local39 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType#``(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType#``(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType#``(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType# -// ^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType#RESOURCE. - } - - /** - * @param leftRes Left padding as dimension resource. - * @param topRes Top padding as dimension resource. - * @param rightRes Right padding as dimension resource. - * @param bottomRes Bottom padding as dimension resource. - * @param itemSpacingRes Space as dimension resource to add between each carousel item. Will be - * implemented via an item decoration. - */ - public static Padding resource( -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding# -// ^^^^^^^^ definition com/airbnb/epoxy/Carousel#Padding#resource(+1). public static Padding resource(int leftRes, int topRes, int rightRes, int bottomRes, int itemSpacingRes) - @DimenRes int leftRes, -// ^^^^^^^^ reference androidx/annotation/DimenRes# -// ^^^^^^^ definition local40 @DimenRes int leftRes - @DimenRes int topRes, -// ^^^^^^^^ reference androidx/annotation/DimenRes# -// ^^^^^^ definition local41 @DimenRes int topRes - @DimenRes int rightRes, -// ^^^^^^^^ reference androidx/annotation/DimenRes# -// ^^^^^^^^ definition local42 @DimenRes int rightRes - @DimenRes int bottomRes, -// ^^^^^^^^ reference androidx/annotation/DimenRes# -// ^^^^^^^^^ definition local43 @DimenRes int bottomRes - @DimenRes int itemSpacingRes) { -// ^^^^^^^^ reference androidx/annotation/DimenRes# -// ^^^^^^^^^^^^^^ definition local44 @DimenRes int itemSpacingRes - return new Padding( -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#``(+2). - leftRes, topRes, rightRes, bottomRes, itemSpacingRes, PaddingType.RESOURCE); -// ^^^^^^^ reference local40 -// ^^^^^^ reference local41 -// ^^^^^^^^ reference local42 -// ^^^^^^^^^ reference local43 -// ^^^^^^^^^^^^^^ reference local44 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType# -// ^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType#RESOURCE. - } - - /** - * @param paddingDp Padding in dp. - * @param itemSpacingDp Space in dp to add between each carousel item. Will be implemented via - * an item decoration. - */ - public static Padding dp( -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding# -// ^^ definition com/airbnb/epoxy/Carousel#Padding#dp(). public static Padding dp(int paddingDp, int itemSpacingDp) - @Dimension(unit = Dimension.DP) int paddingDp, -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^^^ reference androidx/annotation/Dimension#unit(). -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^ reference androidx/annotation/Dimension#DP. -// ^^^^^^^^^ definition local45 @Dimension(unit = Dimension.DP) int paddingDp - @Dimension(unit = Dimension.DP) int itemSpacingDp) { -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^^^ reference androidx/annotation/Dimension#unit(). -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^ reference androidx/annotation/Dimension#DP. -// ^^^^^^^^^^^^^ definition local46 @Dimension(unit = Dimension.DP) int itemSpacingDp - return new Padding(paddingDp, paddingDp, paddingDp, paddingDp, itemSpacingDp, PaddingType.DP); -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#``(+2). -// ^^^^^^^^^ reference local45 -// ^^^^^^^^^ reference local45 -// ^^^^^^^^^ reference local45 -// ^^^^^^^^^ reference local45 -// ^^^^^^^^^^^^^ reference local46 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType# -// ^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType#DP. - } - - /** - * @param leftDp Left padding in dp. - * @param topDp Top padding in dp. - * @param rightDp Right padding in dp. - * @param bottomDp Bottom padding in dp. - * @param itemSpacingDp Space in dp to add between each carousel item. Will be implemented via - * an item decoration. - */ - public static Padding dp( -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding# -// ^^ definition com/airbnb/epoxy/Carousel#Padding#dp(+1). public static Padding dp(int leftDp, int topDp, int rightDp, int bottomDp, int itemSpacingDp) - @Dimension(unit = Dimension.DP) int leftDp, -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^^^ reference androidx/annotation/Dimension#unit(). -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^ reference androidx/annotation/Dimension#DP. -// ^^^^^^ definition local47 @Dimension(unit = Dimension.DP) int leftDp - @Dimension(unit = Dimension.DP) int topDp, -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^^^ reference androidx/annotation/Dimension#unit(). -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^ reference androidx/annotation/Dimension#DP. -// ^^^^^ definition local48 @Dimension(unit = Dimension.DP) int topDp - @Dimension(unit = Dimension.DP) int rightDp, -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^^^ reference androidx/annotation/Dimension#unit(). -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^ reference androidx/annotation/Dimension#DP. -// ^^^^^^^ definition local49 @Dimension(unit = Dimension.DP) int rightDp - @Dimension(unit = Dimension.DP) int bottomDp, -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^^^ reference androidx/annotation/Dimension#unit(). -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^ reference androidx/annotation/Dimension#DP. -// ^^^^^^^^ definition local50 @Dimension(unit = Dimension.DP) int bottomDp - @Dimension(unit = Dimension.DP) int itemSpacingDp) { -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^^^ reference androidx/annotation/Dimension#unit(). -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^ reference androidx/annotation/Dimension#DP. -// ^^^^^^^^^^^^^ definition local51 @Dimension(unit = Dimension.DP) int itemSpacingDp - return new Padding(leftDp, topDp, rightDp, bottomDp, itemSpacingDp, PaddingType.DP); -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#``(+2). -// ^^^^^^ reference local47 -// ^^^^^ reference local48 -// ^^^^^^^ reference local49 -// ^^^^^^^^ reference local50 -// ^^^^^^^^^^^^^ reference local51 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType# -// ^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType#DP. - } - - /** - * @param paddingPx Padding in pixels to add on all sides of the carousel - * @param itemSpacingPx Space in pixels to add between each carousel item. Will be implemented - * via an item decoration. - */ - public Padding(@Px int paddingPx, @Px int itemSpacingPx) { -// ^^^^^^^ definition com/airbnb/epoxy/Carousel#Padding#``(). public Padding(int paddingPx, int itemSpacingPx) -// ^^ reference androidx/annotation/Px# -// ^^^^^^^^^ definition local52 @Px int paddingPx -// ^^ reference androidx/annotation/Px# -// ^^^^^^^^^^^^^ definition local53 @Px int itemSpacingPx - this(paddingPx, paddingPx, paddingPx, paddingPx, itemSpacingPx, PaddingType.PX); -// ^^^^ reference com/airbnb/epoxy/Carousel#Padding#``(+2). -// ^^^^^^^^^ reference local52 -// ^^^^^^^^^ reference local52 -// ^^^^^^^^^ reference local52 -// ^^^^^^^^^ reference local52 -// ^^^^^^^^^^^^^ reference local53 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType# -// ^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType#PX. - } - - /** - * @param leftPx Left padding in pixels. - * @param topPx Top padding in pixels. - * @param rightPx Right padding in pixels. - * @param bottomPx Bottom padding in pixels. - * @param itemSpacingPx Space in pixels to add between each carousel item. Will be implemented - * via an item decoration. - */ - public Padding( -// ^^^^^^^ definition com/airbnb/epoxy/Carousel#Padding#``(+1). public Padding(int leftPx, int topPx, int rightPx, int bottomPx, int itemSpacingPx) - @Px int leftPx, @Px int topPx, @Px int rightPx, @Px int bottomPx, @Px int itemSpacingPx) { -// ^^ reference androidx/annotation/Px# -// ^^^^^^ definition local54 @Px int leftPx -// ^^ reference androidx/annotation/Px# -// ^^^^^ definition local55 @Px int topPx -// ^^ reference androidx/annotation/Px# -// ^^^^^^^ definition local56 @Px int rightPx -// ^^ reference androidx/annotation/Px# -// ^^^^^^^^ definition local57 @Px int bottomPx -// ^^ reference androidx/annotation/Px# -// ^^^^^^^^^^^^^ definition local58 @Px int itemSpacingPx - this(leftPx, topPx, rightPx, bottomPx, itemSpacingPx, PaddingType.PX); -// ^^^^ reference com/airbnb/epoxy/Carousel#Padding#``(+2). -// ^^^^^^ reference local54 -// ^^^^^ reference local55 -// ^^^^^^^ reference local56 -// ^^^^^^^^ reference local57 -// ^^^^^^^^^^^^^ reference local58 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType# -// ^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType#PX. - } - - /** - * @param left Left padding. - * @param top Top padding. - * @param right Right padding. - * @param bottom Bottom padding. - * @param itemSpacing Space to add between each carousel item. Will be implemented via an item - * decoration. - * @param paddingType Unit / Type of the given paddings/ itemspacing. - */ - private Padding( -// ^^^^^^^ definition com/airbnb/epoxy/Carousel#Padding#``(+2). private Padding(int left, int top, int right, int bottom, int itemSpacing, PaddingType paddingType) - int left, int top, int right, int bottom, int itemSpacing, PaddingType paddingType) { -// ^^^^ definition local59 int left -// ^^^ definition local60 int top -// ^^^^^ definition local61 int right -// ^^^^^^ definition local62 int bottom -// ^^^^^^^^^^^ definition local63 int itemSpacing -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#PaddingType# -// ^^^^^^^^^^^ definition local64 PaddingType paddingType - - this.left = left; -// ^^^^ reference com/airbnb/epoxy/Carousel#Padding#left. -// ^^^^ reference local59 - this.top = top; -// ^^^ reference com/airbnb/epoxy/Carousel#Padding#top. -// ^^^ reference local60 - this.right = right; -// ^^^^^ reference com/airbnb/epoxy/Carousel#Padding#right. -// ^^^^^ reference local61 - this.bottom = bottom; -// ^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#bottom. -// ^^^^^^ reference local62 - this.itemSpacing = itemSpacing; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#itemSpacing. -// ^^^^^^^^^^^ reference local63 - this.paddingType = paddingType; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#paddingType. -// ^^^^^^^^^^^ reference local64 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean equals(Object o) { -// ^^^^^^ definition com/airbnb/epoxy/Carousel#Padding#equals(). @Override public boolean equals(Object o) -// ^^^^^^ reference java/lang/Object# -// ^ definition local65 Object o - if (this == o) { -// ^ reference local65 - return true; - } - if (o == null || getClass() != o.getClass()) { -// ^ reference local65 -// ^^^^^^^^ reference java/lang/Object#getClass(). -// ^ reference local65 -// ^^^^^^^^ reference java/lang/Object#getClass(). - return false; - } - - Padding padding = (Padding) o; -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding# -// ^^^^^^^ definition local66 Padding padding -// ^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding# -// ^ reference local65 - - if (left != padding.left) { -// ^^^^ reference com/airbnb/epoxy/Carousel#Padding#left. -// ^^^^^^^ reference local66 -// ^^^^ reference com/airbnb/epoxy/Carousel#Padding#left. - return false; - } - if (top != padding.top) { -// ^^^ reference com/airbnb/epoxy/Carousel#Padding#top. -// ^^^^^^^ reference local66 -// ^^^ reference com/airbnb/epoxy/Carousel#Padding#top. - return false; - } - if (right != padding.right) { -// ^^^^^ reference com/airbnb/epoxy/Carousel#Padding#right. -// ^^^^^^^ reference local66 -// ^^^^^ reference com/airbnb/epoxy/Carousel#Padding#right. - return false; - } - if (bottom != padding.bottom) { -// ^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#bottom. -// ^^^^^^^ reference local66 -// ^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#bottom. - return false; - } - return itemSpacing == padding.itemSpacing; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#itemSpacing. -// ^^^^^^^ reference local66 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#itemSpacing. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int hashCode() { -// ^^^^^^^^ definition com/airbnb/epoxy/Carousel#Padding#hashCode(). @Override public int hashCode() - int result = left; -// ^^^^^^ definition local67 int result -// ^^^^ reference com/airbnb/epoxy/Carousel#Padding#left. - result = 31 * result + top; -// ^^^^^^ reference local67 -// ^^^^^^ reference local67 -// ^^^ reference com/airbnb/epoxy/Carousel#Padding#top. - result = 31 * result + right; -// ^^^^^^ reference local67 -// ^^^^^^ reference local67 -// ^^^^^ reference com/airbnb/epoxy/Carousel#Padding#right. - result = 31 * result + bottom; -// ^^^^^^ reference local67 -// ^^^^^^ reference local67 -// ^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#bottom. - result = 31 * result + itemSpacing; -// ^^^^^^ reference local67 -// ^^^^^^ reference local67 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Carousel#Padding#itemSpacing. - return result; -// ^^^^^^ reference local67 - } - } - - @ModelProp -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelProp# - public void setModels(@NonNull List> models) { -// ^^^^^^^^^ definition com/airbnb/epoxy/Carousel#setModels(). @ModelProp public void setModels(List> models) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local68 @NonNull List> models - super.setModels(models); -// ^^^^^ reference _root_/ -// ^^^^^^^^^ reference setModels# -// ^^^^^^ reference local68 - } - - @OnViewRecycled -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/OnViewRecycled# - public void clear() { -// ^^^^^ definition com/airbnb/epoxy/Carousel#clear(). @OnViewRecycled public void clear() - super.clear(); -// ^^^^^ reference _root_/ -// ^^^^^ reference clear# - } - - /** Provide a SnapHelper implementation you want to use with a Carousel. */ - public abstract static class SnapHelperFactory { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#SnapHelperFactory# public abstract static class SnapHelperFactory -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#SnapHelperFactory#``(). public SnapHelperFactory() - /** - * Create and return a new instance of a {@link androidx.recyclerview.widget.SnapHelper} for use - * with a Carousel. - */ - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - public abstract SnapHelper buildSnapHelper(Context context); -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Carousel#SnapHelperFactory#buildSnapHelper(). @NonNull public abstract unresolved_type buildSnapHelper(unresolved_type context) -// ^^^^^^^ reference _root_/ -// ^^^^^^^ definition local69 unresolved_type context - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ControllerHelper.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/ControllerHelper.java deleted file mode 100644 index f4a1b594e..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ControllerHelper.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.airbnb.epoxy; - -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -/** - * A helper class for {@link EpoxyController} to handle {@link - * com.airbnb.epoxy.AutoModel} models. This is only implemented by the generated classes created the - * annotation processor. - */ -public abstract class ControllerHelper { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerHelper# public abstract class ControllerHelper -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerHelper#``(). public ControllerHelper() -// ^ definition com/airbnb/epoxy/ControllerHelper#[T] T extends EpoxyController -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# - public abstract void resetAutoModels(); -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerHelper#resetAutoModels(). public abstract void resetAutoModels() - - protected void validateModelHashCodesHaveNotChanged(T controller) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerHelper#validateModelHashCodesHaveNotChanged(). protected void validateModelHashCodesHaveNotChanged(T controller) -// ^ reference com/airbnb/epoxy/ControllerHelper#[T] -// ^^^^^^^^^^ definition local0 T controller - List> currentModels = controller.getAdapter().getCopyOfModels(); -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition local1 List> currentModels -// ^^^^^^^^^^ reference local0 -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#getAdapter(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#getCopyOfModels(). - - for (int i = 0; i < currentModels.size(); i++) { -// ^ definition local2 int i -// ^ reference local2 -// ^^^^^^^^^^^^^ reference local1 -// ^^^^ reference java/util/List#size(). -// ^ reference local2 - EpoxyModel model = currentModels.get(i); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local3 EpoxyModel model -// ^^^^^^^^^^^^^ reference local1 -// ^^^ reference java/util/List#get(). -// ^ reference local2 - model.validateStateHasNotChangedSinceAdded( -// ^^^^^ reference local3 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#validateStateHasNotChangedSinceAdded(). - "Model has changed since it was added to the controller.", i); -// ^ reference local2 - } - } - - protected void setControllerToStageTo(EpoxyModel model, T controller) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerHelper#setControllerToStageTo(). protected void setControllerToStageTo(EpoxyModel model, T controller) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local4 EpoxyModel model -// ^ reference com/airbnb/epoxy/ControllerHelper#[T] -// ^^^^^^^^^^ definition local5 T controller - model.controllerToStageTo = controller; -// ^^^^^ reference local4 -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#controllerToStageTo. -// ^^^^^^^^^^ reference local5 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ControllerHelperLookup.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/ControllerHelperLookup.java deleted file mode 100644 index 56a73aef8..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ControllerHelperLookup.java +++ /dev/null @@ -1,187 +0,0 @@ -package com.airbnb.epoxy; - -import java.lang.reflect.Constructor; -// ^^^^ reference java/ -// ^^^^ reference java/lang/ -// ^^^^^^^ reference java/lang/reflect/ -// ^^^^^^^^^^^ reference java/lang/reflect/Constructor# -import java.lang.reflect.InvocationTargetException; -// ^^^^ reference java/ -// ^^^^ reference java/lang/ -// ^^^^^^^ reference java/lang/reflect/ -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/reflect/InvocationTargetException# -import java.util.LinkedHashMap; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^^^^ reference java/util/LinkedHashMap# -import java.util.Map; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^ reference java/util/Map# - -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# - -/** - * Looks up a generated {@link ControllerHelper} implementation for a given adapter. - * If the adapter has no {@link com.airbnb.epoxy.AutoModel} models then a No-Op implementation will - * be returned. - */ -class ControllerHelperLookup { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerHelperLookup# class ControllerHelperLookup -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerHelperLookup#``(). ControllerHelperLookup() - private static final String GENERATED_HELPER_CLASS_SUFFIX = "_EpoxyHelper"; -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerHelperLookup#GENERATED_HELPER_CLASS_SUFFIX. private static final String GENERATED_HELPER_CLASS_SUFFIX - private static final Map, Constructor> BINDINGS = new LinkedHashMap<>(); -// ^^^ reference java/util/Map# -// ^^^^^ reference java/lang/Class# -// ^^^^^^^^^^^ reference java/lang/reflect/Constructor# -// ^^^^^^^^ definition com/airbnb/epoxy/ControllerHelperLookup#BINDINGS. private static final Map, Constructor> BINDINGS -// ^^^^^^^^^^^^^ reference java/util/LinkedHashMap#``(+2). - private static final NoOpControllerHelper NO_OP_CONTROLLER_HELPER = new NoOpControllerHelper(); -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/NoOpControllerHelper# -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerHelperLookup#NO_OP_CONTROLLER_HELPER. private static final NoOpControllerHelper NO_OP_CONTROLLER_HELPER -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/NoOpControllerHelper#``(). - - static ControllerHelper getHelperForController(EpoxyController controller) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ControllerHelper# -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerHelperLookup#getHelperForController(). static ControllerHelper getHelperForController(EpoxyController controller) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local0 EpoxyController controller - Constructor constructor = findConstructorForClass(controller.getClass()); -// ^^^^^^^^^^^ reference java/lang/reflect/Constructor# -// ^^^^^^^^^^^ definition local1 Constructor constructor -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ControllerHelperLookup#findConstructorForClass(). -// ^^^^^^^^^^ reference local0 -// ^^^^^^^^ reference java/lang/Object#getClass(). - if (constructor == null) { -// ^^^^^^^^^^^ reference local1 - return NO_OP_CONTROLLER_HELPER; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ControllerHelperLookup#NO_OP_CONTROLLER_HELPER. - } - - try { - return (ControllerHelper) constructor.newInstance(controller); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ControllerHelper# -// ^^^^^^^^^^^ reference local1 -// ^^^^^^^^^^^ reference java/lang/reflect/Constructor#newInstance(). -// ^^^^^^^^^^ reference local0 - } catch (IllegalAccessException e) { -// ^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalAccessException# -// ^ definition local2 IllegalAccessException e - throw new RuntimeException("Unable to invoke " + constructor, e); -// ^^^^^^^^^^^^^^^^ reference java/lang/RuntimeException#``(+2). -// ^^^^^^^^^^^ reference local1 -// ^ reference local2 - } catch (InstantiationException e) { -// ^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/InstantiationException# -// ^ definition local3 InstantiationException e - throw new RuntimeException("Unable to invoke " + constructor, e); -// ^^^^^^^^^^^^^^^^ reference java/lang/RuntimeException#``(+2). -// ^^^^^^^^^^^ reference local1 -// ^ reference local3 - } catch (InvocationTargetException e) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/reflect/InvocationTargetException# -// ^ definition local4 InvocationTargetException e - Throwable cause = e.getCause(); -// ^^^^^^^^^ reference java/lang/Throwable# -// ^^^^^ definition local5 Throwable cause -// ^ reference local4 -// ^^^^^^^^ reference java/lang/reflect/InvocationTargetException#getCause(). - if (cause instanceof RuntimeException) { -// ^^^^^ reference local5 -// ^^^^^^^^^^^^^^^^ reference java/lang/RuntimeException# - throw (RuntimeException) cause; -// ^^^^^^^^^^^^^^^^ reference java/lang/RuntimeException# -// ^^^^^ reference local5 - } - if (cause instanceof Error) { -// ^^^^^ reference local5 -// ^^^^^ reference java/lang/Error# - throw (Error) cause; -// ^^^^^ reference java/lang/Error# -// ^^^^^ reference local5 - } - throw new RuntimeException("Unable to get Epoxy helper class.", cause); -// ^^^^^^^^^^^^^^^^ reference java/lang/RuntimeException#``(+2). -// ^^^^^ reference local5 - } - } - - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - private static Constructor findConstructorForClass(Class controllerClass) { -// ^^^^^^^^^^^ reference java/lang/reflect/Constructor# -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerHelperLookup#findConstructorForClass(). @Nullable private static Constructor findConstructorForClass(Class controllerClass) -// ^^^^^ reference java/lang/Class# -// ^^^^^^^^^^^^^^^ definition local6 Class controllerClass - Constructor helperCtor = BINDINGS.get(controllerClass); -// ^^^^^^^^^^^ reference java/lang/reflect/Constructor# -// ^^^^^^^^^^ definition local7 Constructor helperCtor -// ^^^^^^^^ reference com/airbnb/epoxy/ControllerHelperLookup#BINDINGS. -// ^^^ reference java/util/Map#get(). -// ^^^^^^^^^^^^^^^ reference local6 - if (helperCtor != null || BINDINGS.containsKey(controllerClass)) { -// ^^^^^^^^^^ reference local7 -// ^^^^^^^^ reference com/airbnb/epoxy/ControllerHelperLookup#BINDINGS. -// ^^^^^^^^^^^ reference java/util/Map#containsKey(). -// ^^^^^^^^^^^^^^^ reference local6 - return helperCtor; -// ^^^^^^^^^^ reference local7 - } - - String clsName = controllerClass.getName(); -// ^^^^^^ reference java/lang/String# -// ^^^^^^^ definition local8 String clsName -// ^^^^^^^^^^^^^^^ reference local6 -// ^^^^^^^ reference java/lang/Class#getName(). - if (clsName.startsWith("android.") || clsName.startsWith("java.")) { -// ^^^^^^^ reference local8 -// ^^^^^^^^^^ reference java/lang/String#startsWith(+1). -// ^^^^^^^ reference local8 -// ^^^^^^^^^^ reference java/lang/String#startsWith(+1). - return null; - } - - try { - Class bindingClass = Class.forName(clsName + GENERATED_HELPER_CLASS_SUFFIX); -// ^^^^^ reference java/lang/Class# -// ^^^^^^^^^^^^ definition local9 Class bindingClass -// ^^^^^ reference java/lang/Class# -// ^^^^^^^ reference java/lang/Class#forName(). -// ^^^^^^^ reference local8 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ControllerHelperLookup#GENERATED_HELPER_CLASS_SUFFIX. - //noinspection unchecked - helperCtor = bindingClass.getConstructor(controllerClass); -// ^^^^^^^^^^ reference local7 -// ^^^^^^^^^^^^ reference local9 -// ^^^^^^^^^^^^^^ reference java/lang/Class#getConstructor(). -// ^^^^^^^^^^^^^^^ reference local6 - } catch (ClassNotFoundException e) { -// ^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/ClassNotFoundException# -// ^ definition local10 ClassNotFoundException e - helperCtor = findConstructorForClass(controllerClass.getSuperclass()); -// ^^^^^^^^^^ reference local7 -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ControllerHelperLookup#findConstructorForClass(). -// ^^^^^^^^^^^^^^^ reference local6 -// ^^^^^^^^^^^^^ reference java/lang/Class#getSuperclass(). - } catch (NoSuchMethodException e) { -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/NoSuchMethodException# -// ^ definition local11 NoSuchMethodException e - throw new RuntimeException("Unable to find Epoxy Helper constructor for " + clsName, e); -// ^^^^^^^^^^^^^^^^ reference java/lang/RuntimeException#``(+2). -// ^^^^^^^ reference local8 -// ^ reference local11 - } - BINDINGS.put(controllerClass, helperCtor); -// ^^^^^^^^ reference com/airbnb/epoxy/ControllerHelperLookup#BINDINGS. -// ^^^ reference java/util/Map#put(). -// ^^^^^^^^^^^^^^^ reference local6 -// ^^^^^^^^^^ reference local7 - return helperCtor; -// ^^^^^^^^^^ reference local7 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ControllerModelList.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/ControllerModelList.java deleted file mode 100644 index 02716f544..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ControllerModelList.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.airbnb.epoxy; - -/** - * This ArrayList subclass enforces that no changes are made to the list after {@link #freeze()} is - * called. This prevents model interceptors from storing the list and trying to change it later. We - * could copy the list before diffing, but that would waste memory to make the copy for every - * buildModels cycle, plus the interceptors could still try to modify the list and be confused about - * why it doesn't do anything. - */ -class ControllerModelList extends ModelList { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerModelList# class ControllerModelList -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelList# - - private static final ModelListObserver OBSERVER = new ModelListObserver() { -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#ModelListObserver# -// ^^^^^^^^ definition com/airbnb/epoxy/ControllerModelList#OBSERVER. private static final ModelListObserver OBSERVER -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#ModelListObserver# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onItemRangeInserted(int positionStart, int itemCount) { -// ^^^^^^^^^^^^^^^^^^^ definition local2 @Override public void onItemRangeInserted(int positionStart, int itemCount) -// ^^^^^^^^^^^^^ definition local4 int positionStart -// ^^^^^^^^^ definition local5 int itemCount - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "Models cannot be changed once they are added to the controller"); - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onItemRangeRemoved(int positionStart, int itemCount) { -// ^^^^^^^^^^^^^^^^^^ definition local3 @Override public void onItemRangeRemoved(int positionStart, int itemCount) -// ^^^^^^^^^^^^^ definition local6 int positionStart -// ^^^^^^^^^ definition local7 int itemCount - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "Models cannot be changed once they are added to the controller"); - } - }; - - ControllerModelList(int expectedModelCount) { -//^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerModelList#``(). ControllerModelList(int expectedModelCount) -// ^^^^^^^^^^^^^^^^^^ definition local8 int expectedModelCount - super(expectedModelCount); -// ^^^^^ reference com/airbnb/epoxy/ModelList#``(). -// ^^^^^^^^^^^^^^^^^^ reference local8 - pauseNotifications(); -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#pauseNotifications(). - } - - void freeze() { -// ^^^^^^ definition com/airbnb/epoxy/ControllerModelList#freeze(). void freeze() - setObserver(OBSERVER); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#setObserver(). -// ^^^^^^^^ reference com/airbnb/epoxy/ControllerModelList#OBSERVER. - resumeNotifications(); -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#resumeNotifications(). - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/DebugTimer.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/DebugTimer.java deleted file mode 100644 index 761e2ca05..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/DebugTimer.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.airbnb.epoxy; - -import android.util.Log; -// ^^^^^^^ reference android/ -// ^^^^ reference android/util/ -// ^^^ reference android/util/Log# - -class DebugTimer implements Timer { -// ^^^^^^^^^^ definition com/airbnb/epoxy/DebugTimer# class DebugTimer -// ^^^^^ reference com/airbnb/epoxy/Timer# - - private final String tag; -// ^^^^^^ reference java/lang/String# -// ^^^ definition com/airbnb/epoxy/DebugTimer#tag. private final String tag - private long startTime; -// ^^^^^^^^^ definition com/airbnb/epoxy/DebugTimer#startTime. private long startTime - private String sectionName; -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^^^^ definition com/airbnb/epoxy/DebugTimer#sectionName. private String sectionName - - DebugTimer(String tag) { -//^^^^^^^^^^ definition com/airbnb/epoxy/DebugTimer#``(). DebugTimer(String tag) -// ^^^^^^ reference java/lang/String# -// ^^^ definition local0 String tag - this.tag = tag; -// ^^^ reference com/airbnb/epoxy/DebugTimer#tag. -// ^^^ reference local0 - reset(); -// ^^^^^ reference com/airbnb/epoxy/DebugTimer#reset(). - } - - private void reset() { -// ^^^^^ definition com/airbnb/epoxy/DebugTimer#reset(). private void reset() - startTime = -1; -// ^^^^^^^^^ reference com/airbnb/epoxy/DebugTimer#startTime. - sectionName = null; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DebugTimer#sectionName. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void start(String sectionName) { -// ^^^^^ definition com/airbnb/epoxy/DebugTimer#start(). @Override public void start(String sectionName) -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^^^^ definition local1 String sectionName - if (startTime != -1) { -// ^^^^^^^^^ reference com/airbnb/epoxy/DebugTimer#startTime. - throw new IllegalStateException("Timer was already started"); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - } - - startTime = System.nanoTime(); -// ^^^^^^^^^ reference com/airbnb/epoxy/DebugTimer#startTime. -// ^^^^^^ reference java/lang/System# -// ^^^^^^^^ reference java/lang/System#nanoTime(). - this.sectionName = sectionName; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DebugTimer#sectionName. -// ^^^^^^^^^^^ reference local1 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void stop() { -// ^^^^ definition com/airbnb/epoxy/DebugTimer#stop(). @Override public void stop() - if (startTime == -1) { -// ^^^^^^^^^ reference com/airbnb/epoxy/DebugTimer#startTime. - throw new IllegalStateException("Timer was not started"); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - } - - float durationMs = (System.nanoTime() - startTime) / 1000000f; -// ^^^^^^^^^^ definition local2 float durationMs -// ^^^^^^ reference java/lang/System# -// ^^^^^^^^ reference java/lang/System#nanoTime(). -// ^^^^^^^^^ reference com/airbnb/epoxy/DebugTimer#startTime. - Log.d(tag, String.format(sectionName + ": %.3fms", durationMs)); -// ^^^ reference _root_/ -// ^ reference d# -// ^^^ reference com/airbnb/epoxy/DebugTimer#tag. -// ^^^^^^ reference java/lang/String# -// ^^^^^^ reference java/lang/String#format(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DebugTimer#sectionName. -// ^^^^^^^^^^ reference local2 - reset(); -// ^^^^^ reference com/airbnb/epoxy/DebugTimer#reset(). - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/DiffHelper.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/DiffHelper.java deleted file mode 100644 index 3eb988af5..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/DiffHelper.java +++ /dev/null @@ -1,948 +0,0 @@ - -package com.airbnb.epoxy; - -import java.util.ArrayList; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^ reference java/util/ArrayList# -import java.util.HashMap; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^ reference java/util/HashMap# -import java.util.Iterator; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^ reference java/util/Iterator# -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# -import java.util.Map; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^ reference java/util/Map# - -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.recyclerview.widget.RecyclerView; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView# - -/** - * Helper to track changes in the models list. - */ -class DiffHelper { -// ^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper# class DiffHelper - private ArrayList oldStateList = new ArrayList<>(); -// ^^^^^^^^^ reference java/util/ArrayList# -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#oldStateList. private ArrayList oldStateList -// ^^^^^^^^^ reference java/util/ArrayList#``(+1). - // Using a HashMap instead of a LongSparseArray to - // have faster look up times at the expense of memory - private Map oldStateMap = new HashMap<>(); -// ^^^ reference java/util/Map# -// ^^^^ reference java/lang/Long# -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#oldStateMap. private Map oldStateMap -// ^^^^^^^ reference java/util/HashMap#``(+2). - private ArrayList currentStateList = new ArrayList<>(); -// ^^^^^^^^^ reference java/util/ArrayList# -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#currentStateList. private ArrayList currentStateList -// ^^^^^^^^^ reference java/util/ArrayList#``(+1). - private Map currentStateMap = new HashMap<>(); -// ^^^ reference java/util/Map# -// ^^^^ reference java/lang/Long# -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#currentStateMap. private Map currentStateMap -// ^^^^^^^ reference java/util/HashMap#``(+2). - private final BaseEpoxyAdapter adapter; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter# -// ^^^^^^^ definition com/airbnb/epoxy/DiffHelper#adapter. private final BaseEpoxyAdapter adapter - private final boolean immutableModels; -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#immutableModels. private final boolean immutableModels - - - DiffHelper(BaseEpoxyAdapter adapter, boolean immutableModels) { -//^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#``(). DiffHelper(BaseEpoxyAdapter adapter, boolean immutableModels) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter# -// ^^^^^^^ definition local0 BaseEpoxyAdapter adapter -// ^^^^^^^^^^^^^^^ definition local1 boolean immutableModels - this.adapter = adapter; -// ^^^^^^^ reference com/airbnb/epoxy/DiffHelper#adapter. -// ^^^^^^^ reference local0 - this.immutableModels = immutableModels; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#immutableModels. -// ^^^^^^^^^^^^^^^ reference local1 - adapter.registerAdapterDataObserver(observer); -// ^^^^^^^ reference local0 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#registerAdapterDataObserver# -// ^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#observer. - } - - private final RecyclerView.AdapterDataObserver observer = new RecyclerView.AdapterDataObserver() { -// ^^^^^^^^^^^^ reference RecyclerView/ -// ^^^^^^^^^^^^^^^^^^^ reference RecyclerView/AdapterDataObserver# -// ^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#observer. private final unresolved_type observer - @Override - public void onChanged() { - throw new UnsupportedOperationException( - "Diffing is enabled. You should use notifyModelsChanged instead of notifyDataSetChanged"); - } - - @Override - public void onItemRangeChanged(int positionStart, int itemCount) { - for (int i = positionStart; i < positionStart + itemCount; i++) { - currentStateList.get(i).hashCode = adapter.getCurrentModels().get(i).hashCode(); - } - } - - @Override - public void onItemRangeInserted(int positionStart, int itemCount) { - if (itemCount == 0) { - // no-op - return; - } - - if (itemCount == 1 || positionStart == currentStateList.size()) { - for (int i = positionStart; i < positionStart + itemCount; i++) { - currentStateList.add(i, createStateForPosition(i)); - } - } else { - // Add in a batch since multiple insertions to the middle of the list are slow - List newModels = new ArrayList<>(itemCount); - for (int i = positionStart; i < positionStart + itemCount; i++) { - newModels.add(createStateForPosition(i)); - } - - currentStateList.addAll(positionStart, newModels); - } - - // Update positions of affected items - int size = currentStateList.size(); - for (int i = positionStart + itemCount; i < size; i++) { - currentStateList.get(i).position += itemCount; - } - } - - @Override - public void onItemRangeRemoved(int positionStart, int itemCount) { - if (itemCount == 0) { - // no-op - return; - } - - List modelsToRemove = - currentStateList.subList(positionStart, positionStart + itemCount); - for (ModelState model : modelsToRemove) { - currentStateMap.remove(model.id); - } - modelsToRemove.clear(); - - // Update positions of affected items - int size = currentStateList.size(); - for (int i = positionStart; i < size; i++) { - currentStateList.get(i).position -= itemCount; - } - } - - @Override - public void onItemRangeMoved(int fromPosition, int toPosition, int itemCount) { - if (fromPosition == toPosition) { - // no-op - return; - } - - if (itemCount != 1) { - throw new IllegalArgumentException("Moving more than 1 item at a time is not " - + "supported. Number of items moved: " + itemCount); - } - - ModelState model = currentStateList.remove(fromPosition); - model.position = toPosition; - currentStateList.add(toPosition, model); - - if (fromPosition < toPosition) { - // shift the affected items left - for (int i = fromPosition; i < toPosition; i++) { - currentStateList.get(i).position--; - } - } else { - // shift the affected items right - for (int i = toPosition + 1; i <= fromPosition; i++) { - currentStateList.get(i).position++; - } - } - } - }; - - /** - * Set the current list of models. The diff callbacks will be notified of the changes between the - * current list and the last list that was set. - */ - void notifyModelChanges() { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#notifyModelChanges(). void notifyModelChanges() - UpdateOpHelper updateOpHelper = new UpdateOpHelper(); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper# -// ^^^^^^^^^^^^^^ definition local2 UpdateOpHelper updateOpHelper -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#``(). - - buildDiff(updateOpHelper); -// ^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#buildDiff(). -// ^^^^^^^^^^^^^^ reference local2 - - // Send out the proper notify calls for the diff. We remove our - // observer first so that we don't react to our own notify calls - adapter.unregisterAdapterDataObserver(observer); -// ^^^^^^^ reference com/airbnb/epoxy/DiffHelper#adapter. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#unregisterAdapterDataObserver# -// ^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#observer. - notifyChanges(updateOpHelper); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#notifyChanges(). -// ^^^^^^^^^^^^^^ reference local2 - adapter.registerAdapterDataObserver(observer); -// ^^^^^^^ reference com/airbnb/epoxy/DiffHelper#adapter. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#registerAdapterDataObserver# -// ^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#observer. - } - - private void notifyChanges(UpdateOpHelper opHelper) { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#notifyChanges(). private void notifyChanges(UpdateOpHelper opHelper) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper# -// ^^^^^^^^ definition local3 UpdateOpHelper opHelper - for (UpdateOp op : opHelper.opList) { -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^ definition local4 UpdateOp op -// ^^^^^^^^ reference local3 -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#opList. - switch (op.type) { -// ^^ reference local4 -// ^^^^ reference com/airbnb/epoxy/UpdateOp#type. - case UpdateOp.ADD: -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^^ reference com/airbnb/epoxy/UpdateOp#ADD. - adapter.notifyItemRangeInserted(op.positionStart, op.itemCount); -// ^^^^^^^ reference com/airbnb/epoxy/DiffHelper#adapter. -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#notifyItemRangeInserted# -// ^^ reference local4 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. -// ^^ reference local4 -// ^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#itemCount. - break; - case UpdateOp.MOVE: -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^^^ reference com/airbnb/epoxy/UpdateOp#MOVE. - adapter.notifyItemMoved(op.positionStart, op.itemCount); -// ^^^^^^^ reference com/airbnb/epoxy/DiffHelper#adapter. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#notifyItemMoved# -// ^^ reference local4 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. -// ^^ reference local4 -// ^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#itemCount. - break; - case UpdateOp.REMOVE: -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^^^^^ reference com/airbnb/epoxy/UpdateOp#REMOVE. - adapter.notifyItemRangeRemoved(op.positionStart, op.itemCount); -// ^^^^^^^ reference com/airbnb/epoxy/DiffHelper#adapter. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#notifyItemRangeRemoved# -// ^^ reference local4 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. -// ^^ reference local4 -// ^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#itemCount. - break; - case UpdateOp.UPDATE: -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^^^^^ reference com/airbnb/epoxy/UpdateOp#UPDATE. - if (immutableModels && op.payloads != null) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#immutableModels. -// ^^ reference local4 -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#payloads. - adapter.notifyItemRangeChanged(op.positionStart, op.itemCount, -// ^^^^^^^ reference com/airbnb/epoxy/DiffHelper#adapter. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#notifyItemRangeChanged# -// ^^ reference local4 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. -// ^^ reference local4 -// ^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#itemCount. - new DiffPayload(op.payloads)); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#``(). -// ^^ reference local4 -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#payloads. - } else { - adapter.notifyItemRangeChanged(op.positionStart, op.itemCount); -// ^^^^^^^ reference com/airbnb/epoxy/DiffHelper#adapter. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#notifyItemRangeChanged# -// ^^ reference local4 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. -// ^^ reference local4 -// ^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#itemCount. - } - break; - default: - throw new IllegalArgumentException("Unknown type: " + op.type); -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalArgumentException#``(+1). -// ^^ reference local4 -// ^^^^ reference com/airbnb/epoxy/UpdateOp#type. - } - } - } - - /** - * Create a list of operations that define the difference between {@link #oldStateList} and {@link - * #currentStateList}. - */ - private UpdateOpHelper buildDiff(UpdateOpHelper updateOpHelper) { -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper# -// ^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#buildDiff(). private UpdateOpHelper buildDiff(UpdateOpHelper updateOpHelper) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper# -// ^^^^^^^^^^^^^^ definition local5 UpdateOpHelper updateOpHelper - prepareStateForDiff(); -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#prepareStateForDiff(). - - // The general approach is to first search for removals, then additions, and lastly changes. - // Focusing on one type of operation at a time makes it easy to coalesce batch changes. - // When we identify an operation and add it to the - // result list we update the positions of items in the oldStateList to reflect - // the change, this way subsequent operations will use the correct, updated positions. - collectRemovals(updateOpHelper); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#collectRemovals(). -// ^^^^^^^^^^^^^^ reference local5 - - // Only need to check for insertions if new list is bigger - boolean hasInsertions = -// ^^^^^^^^^^^^^ definition local6 boolean hasInsertions - oldStateList.size() - updateOpHelper.getNumRemovals() != currentStateList.size(); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#oldStateList. -// ^^^^ reference java/util/ArrayList#size(). -// ^^^^^^^^^^^^^^ reference local5 -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#getNumRemovals(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#currentStateList. -// ^^^^ reference java/util/ArrayList#size(). - if (hasInsertions) { -// ^^^^^^^^^^^^^ reference local6 - collectInsertions(updateOpHelper); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#collectInsertions(). -// ^^^^^^^^^^^^^^ reference local5 - } - - collectMoves(updateOpHelper); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#collectMoves(). -// ^^^^^^^^^^^^^^ reference local5 - collectChanges(updateOpHelper); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#collectChanges(). -// ^^^^^^^^^^^^^^ reference local5 - - resetOldState(); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#resetOldState(). - - return updateOpHelper; -// ^^^^^^^^^^^^^^ reference local5 - } - - private void resetOldState() { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#resetOldState(). private void resetOldState() - oldStateList.clear(); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#oldStateList. -// ^^^^^ reference java/util/ArrayList#clear(). - oldStateMap.clear(); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#oldStateMap. -// ^^^^^ reference java/util/Map#clear(). - } - - private void prepareStateForDiff() { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#prepareStateForDiff(). private void prepareStateForDiff() - // We use a list of the models as well as a map by their id, - // so we can easily find them by both position and id - - oldStateList.clear(); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#oldStateList. -// ^^^^^ reference java/util/ArrayList#clear(). - oldStateMap.clear(); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#oldStateMap. -// ^^^^^ reference java/util/Map#clear(). - - // Swap the two lists so that we have a copy of the current state to calculate the next diff - ArrayList tempList = oldStateList; -// ^^^^^^^^^ reference java/util/ArrayList# -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^ definition local7 ArrayList tempList -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#oldStateList. - oldStateList = currentStateList; -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#oldStateList. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#currentStateList. - currentStateList = tempList; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#currentStateList. -// ^^^^^^^^ reference local7 - - Map tempMap = oldStateMap; -// ^^^ reference java/util/Map# -// ^^^^ reference java/lang/Long# -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^ definition local8 Map tempMap -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#oldStateMap. - oldStateMap = currentStateMap; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#oldStateMap. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#currentStateMap. - currentStateMap = tempMap; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#currentStateMap. -// ^^^^^^^ reference local8 - - // Remove all pairings in the old states so we can tell which of them were removed. The items - // that still exist in the new list will be paired when we build the current list state below - for (ModelState modelState : oldStateList) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^^^ definition local9 ModelState modelState -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#oldStateList. - modelState.pair = null; -// ^^^^^^^^^^ reference local9 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. - } - - int modelCount = adapter.getCurrentModels().size(); -// ^^^^^^^^^^ definition local10 int modelCount -// ^^^^^^^ reference com/airbnb/epoxy/DiffHelper#adapter. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getCurrentModels(). -// ^^^^ reference java/util/List#size(). - currentStateList.ensureCapacity(modelCount); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#currentStateList. -// ^^^^^^^^^^^^^^ reference java/util/ArrayList#ensureCapacity(). -// ^^^^^^^^^^ reference local10 - - for (int i = 0; i < modelCount; i++) { -// ^ definition local11 int i -// ^ reference local11 -// ^^^^^^^^^^ reference local10 -// ^ reference local11 - currentStateList.add(createStateForPosition(i)); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#currentStateList. -// ^^^ reference java/util/ArrayList#add(). -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#createStateForPosition(). -// ^ reference local11 - } - } - - private ModelState createStateForPosition(int position) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#createStateForPosition(). private ModelState createStateForPosition(int position) -// ^^^^^^^^ definition local12 int position - EpoxyModel model = adapter.getCurrentModels().get(position); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local13 EpoxyModel model -// ^^^^^^^ reference com/airbnb/epoxy/DiffHelper#adapter. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getCurrentModels(). -// ^^^ reference java/util/List#get(). -// ^^^^^^^^ reference local12 - model.addedToAdapter = true; -// ^^^^^ reference local13 -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#addedToAdapter. - ModelState state = ModelState.build(model, position, immutableModels); -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^ definition local14 ModelState state -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^ reference com/airbnb/epoxy/ModelState#build(). -// ^^^^^ reference local13 -// ^^^^^^^^ reference local12 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#immutableModels. - - ModelState previousValue = currentStateMap.put(state.id, state); -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^^^^^^ definition local15 ModelState previousValue -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#currentStateMap. -// ^^^ reference java/util/Map#put(). -// ^^^^^ reference local14 -// ^^ reference com/airbnb/epoxy/ModelState#id. -// ^^^^^ reference local14 - if (previousValue != null) { -// ^^^^^^^^^^^^^ reference local15 - int previousPosition = previousValue.position; -// ^^^^^^^^^^^^^^^^ definition local16 int previousPosition -// ^^^^^^^^^^^^^ reference local15 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - EpoxyModel previousModel = adapter.getCurrentModels().get(previousPosition); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition local17 EpoxyModel previousModel -// ^^^^^^^ reference com/airbnb/epoxy/DiffHelper#adapter. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getCurrentModels(). -// ^^^ reference java/util/List#get(). -// ^^^^^^^^^^^^^^^^ reference local16 - throw new IllegalStateException("Two models have the same ID. ID's must be unique!" -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - + " Model at position " + position + ": " + model -// ^^^^^^^^ reference local12 -// ^^^^^ reference local13 - + " Model at position " + previousPosition + ": " + previousModel); -// ^^^^^^^^^^^^^^^^ reference local16 -// ^^^^^^^^^^^^^ reference local17 - } - - return state; -// ^^^^^ reference local14 - } - - /** - * Find all removal operations and add them to the result list. The general strategy here is to - * walk through the {@link #oldStateList} and check for items that don't exist in the new list. - * Walking through it in order makes it easy to batch adjacent removals. - */ - private void collectRemovals(UpdateOpHelper helper) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#collectRemovals(). private void collectRemovals(UpdateOpHelper helper) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper# -// ^^^^^^ definition local18 UpdateOpHelper helper - for (ModelState state : oldStateList) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^ definition local19 ModelState state -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#oldStateList. - // Update the position of the item to take into account previous removals, - // so that future operations will reference the correct position - state.position -= helper.getNumRemovals(); -// ^^^^^ reference local19 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^ reference local18 -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#getNumRemovals(). - - // This is our first time going through the list, so we - // look up the item with the matching id in the new - // list and hold a reference to it so that we can access it quickly in the future - state.pair = currentStateMap.get(state.id); -// ^^^^^ reference local19 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#currentStateMap. -// ^^^ reference java/util/Map#get(). -// ^^^^^ reference local19 -// ^^ reference com/airbnb/epoxy/ModelState#id. - if (state.pair != null) { -// ^^^^^ reference local19 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. - state.pair.pair = state; -// ^^^^^ reference local19 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^ reference local19 - continue; - } - - helper.remove(state.position); -// ^^^^^^ reference local18 -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#remove(). -// ^^^^^ reference local19 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - } - } - - /** - * Find all insertion operations and add them to the result list. The general strategy here is to - * walk through the {@link #currentStateList} and check for items that don't exist in the old - * list. Walking through it in order makes it easy to batch adjacent insertions. - */ - private void collectInsertions(UpdateOpHelper helper) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#collectInsertions(). private void collectInsertions(UpdateOpHelper helper) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper# -// ^^^^^^ definition local20 UpdateOpHelper helper - Iterator oldItemIterator = oldStateList.iterator(); -// ^^^^^^^^ reference java/util/Iterator# -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^^^^^^^^ definition local21 Iterator oldItemIterator -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#oldStateList. -// ^^^^^^^^ reference java/util/ArrayList#iterator(). - - for (ModelState itemToInsert : currentStateList) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^^^^^ definition local22 ModelState itemToInsert -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#currentStateList. - if (itemToInsert.pair != null) { -// ^^^^^^^^^^^^ reference local22 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. - // Update the position of the next item in the old list to take any insertions into account - ModelState nextOldItem = getNextItemWithPair(oldItemIterator); -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^^^^ definition local23 ModelState nextOldItem -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#getNextItemWithPair(). -// ^^^^^^^^^^^^^^^ reference local21 - if (nextOldItem != null) { -// ^^^^^^^^^^^ reference local23 - nextOldItem.position += helper.getNumInsertions(); -// ^^^^^^^^^^^ reference local23 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^ reference local20 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#getNumInsertions(). - } - continue; - } - - helper.add(itemToInsert.position); -// ^^^^^^ reference local20 -// ^^^ reference com/airbnb/epoxy/UpdateOpHelper#add(). -// ^^^^^^^^^^^^ reference local22 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - } - } - - /** - * Check if any items have had their values changed, batching if possible. - */ - private void collectChanges(UpdateOpHelper helper) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#collectChanges(). private void collectChanges(UpdateOpHelper helper) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper# -// ^^^^^^ definition local24 UpdateOpHelper helper - for (ModelState newItem : currentStateList) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^ definition local25 ModelState newItem -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#currentStateList. - ModelState previousItem = newItem.pair; -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^^^^^ definition local26 ModelState previousItem -// ^^^^^^^ reference local25 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. - if (previousItem == null) { -// ^^^^^^^^^^^^ reference local26 - continue; - } - - // We use equals when we know the models are immutable and available, otherwise we have to - // rely on the stored hashCode - boolean modelChanged; -// ^^^^^^^^^^^^ definition local27 boolean modelChanged - if (immutableModels) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#immutableModels. - // Make sure that the old model hasn't changed, otherwise comparing it with the new one - // won't be accurate. - if (previousItem.model.isDebugValidationEnabled()) { -// ^^^^^^^^^^^^ reference local26 -// ^^^^^ reference com/airbnb/epoxy/ModelState#model. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#isDebugValidationEnabled(). - previousItem.model -// ^^^^^^^^^^^^ reference local26 -// ^^^^^ reference com/airbnb/epoxy/ModelState#model. - .validateStateHasNotChangedSinceAdded("Model was changed before it could be diffed.", -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#validateStateHasNotChangedSinceAdded(). - previousItem.position); -// ^^^^^^^^^^^^ reference local26 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - } - - modelChanged = !previousItem.model.equals(newItem.model); -// ^^^^^^^^^^^^ reference local27 -// ^^^^^^^^^^^^ reference local26 -// ^^^^^ reference com/airbnb/epoxy/ModelState#model. -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModel#equals(). -// ^^^^^^^ reference local25 -// ^^^^^ reference com/airbnb/epoxy/ModelState#model. - } else { - modelChanged = previousItem.hashCode != newItem.hashCode; -// ^^^^^^^^^^^^ reference local27 -// ^^^^^^^^^^^^ reference local26 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#hashCode. -// ^^^^^^^ reference local25 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#hashCode. - } - - if (modelChanged) { -// ^^^^^^^^^^^^ reference local27 - helper.update(newItem.position, previousItem.model); -// ^^^^^^ reference local24 -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#update(+1). -// ^^^^^^^ reference local25 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^^^^^^^ reference local26 -// ^^^^^ reference com/airbnb/epoxy/ModelState#model. - } - } - } - - /** - * Check which items have had a position changed. Recyclerview does not support batching these. - */ - private void collectMoves(UpdateOpHelper helper) { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#collectMoves(). private void collectMoves(UpdateOpHelper helper) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper# -// ^^^^^^ definition local28 UpdateOpHelper helper - // This walks through both the new and old list simultaneous and checks for position changes. - Iterator oldItemIterator = oldStateList.iterator(); -// ^^^^^^^^ reference java/util/Iterator# -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^^^^^^^^ definition local29 Iterator oldItemIterator -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#oldStateList. -// ^^^^^^^^ reference java/util/ArrayList#iterator(). - ModelState nextOldItem = null; -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^^^^ definition local30 ModelState nextOldItem - - for (ModelState newItem : currentStateList) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^ definition local31 ModelState newItem -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#currentStateList. - if (newItem.pair == null) { -// ^^^^^^^ reference local31 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. - // This item was inserted. However, insertions are done at the item's final position, and - // aren't smart about inserting at a different position to take future moves into account. - // As the old state list is updated to reflect moves, it needs to also consider insertions - // affected by those moves in order for the final change set to be correct - if (helper.moves.isEmpty()) { -// ^^^^^^ reference local28 -// ^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#moves. -// ^^^^^^^ reference java/util/List#isEmpty(). - // There have been no moves, so the item is still at it's correct position - continue; - } else { - // There have been moves, so the old list needs to take this inserted item - // into account. The old list doesn't have this item inserted into it - // (for optimization purposes), but we can create a pair for this item to - // track its position in the old list and move it back to its final position if necessary - newItem.pairWithSelf(); -// ^^^^^^^ reference local31 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelState#pairWithSelf(). - } - } - - // We could iterate through only the new list and move each - // item that is out of place, however in cases such as moving the first item - // to the end, that strategy would do many moves to move all - // items up one instead of doing one move to move the first item to the end. - // To avoid this we compare the old item to the new item at - // each index and move the one that is farthest from its correct position. - // We only move on from a new item once its pair is placed in - // the correct spot. Since we move from start to end, all new items we've - // already iterated through are guaranteed to have their pair - // be already in the right spot, which won't be affected by future MOVEs. - if (nextOldItem == null) { -// ^^^^^^^^^^^ reference local30 - nextOldItem = getNextItemWithPair(oldItemIterator); -// ^^^^^^^^^^^ reference local30 -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#getNextItemWithPair(). -// ^^^^^^^^^^^^^^^ reference local29 - - // We've already iterated through all old items and moved each - // item once. However, subsequent moves may have shifted an item out of - // its correct space once it was already moved. We finish - // iterating through all the new items to ensure everything is still correct - if (nextOldItem == null) { -// ^^^^^^^^^^^ reference local30 - nextOldItem = newItem.pair; -// ^^^^^^^^^^^ reference local30 -// ^^^^^^^ reference local31 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. - } - } - - while (nextOldItem != null) { -// ^^^^^^^^^^^ reference local30 - // Make sure the positions are updated to the latest - // move operations before we calculate the next move - updateItemPosition(newItem.pair, helper.moves); -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#updateItemPosition(). -// ^^^^^^^ reference local31 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^^ reference local28 -// ^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#moves. - updateItemPosition(nextOldItem, helper.moves); -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#updateItemPosition(). -// ^^^^^^^^^^^ reference local30 -// ^^^^^^ reference local28 -// ^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#moves. - - // The item is the same and its already in the correct place - if (newItem.id == nextOldItem.id && newItem.position == nextOldItem.position) { -// ^^^^^^^ reference local31 -// ^^ reference com/airbnb/epoxy/ModelState#id. -// ^^^^^^^^^^^ reference local30 -// ^^ reference com/airbnb/epoxy/ModelState#id. -// ^^^^^^^ reference local31 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^^^^^^ reference local30 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - nextOldItem = null; -// ^^^^^^^^^^^ reference local30 - break; - } - - int newItemDistance = newItem.pair.position - newItem.position; -// ^^^^^^^^^^^^^^^ definition local32 int newItemDistance -// ^^^^^^^ reference local31 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^^ reference local31 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - int oldItemDistance = nextOldItem.pair.position - nextOldItem.position; -// ^^^^^^^^^^^^^^^ definition local33 int oldItemDistance -// ^^^^^^^^^^^ reference local30 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^^^^^^ reference local30 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - - // Both items are already in the correct position - if (newItemDistance == 0 && oldItemDistance == 0) { -// ^^^^^^^^^^^^^^^ reference local32 -// ^^^^^^^^^^^^^^^ reference local33 - nextOldItem = null; -// ^^^^^^^^^^^ reference local30 - break; - } - - if (oldItemDistance > newItemDistance) { -// ^^^^^^^^^^^^^^^ reference local33 -// ^^^^^^^^^^^^^^^ reference local32 - helper.move(nextOldItem.position, nextOldItem.pair.position); -// ^^^^^^ reference local28 -// ^^^^ reference com/airbnb/epoxy/UpdateOpHelper#move(). -// ^^^^^^^^^^^ reference local30 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^^^^^^ reference local30 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - - nextOldItem.position = nextOldItem.pair.position; -// ^^^^^^^^^^^ reference local30 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^^^^^^ reference local30 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - nextOldItem.lastMoveOp = helper.getNumMoves(); -// ^^^^^^^^^^^ reference local30 -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState#lastMoveOp. -// ^^^^^^ reference local28 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#getNumMoves(). - - nextOldItem = getNextItemWithPair(oldItemIterator); -// ^^^^^^^^^^^ reference local30 -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#getNextItemWithPair(). -// ^^^^^^^^^^^^^^^ reference local29 - } else { - helper.move(newItem.pair.position, newItem.position); -// ^^^^^^ reference local28 -// ^^^^ reference com/airbnb/epoxy/UpdateOpHelper#move(). -// ^^^^^^^ reference local31 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^^ reference local31 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - - newItem.pair.position = newItem.position; -// ^^^^^^^ reference local31 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^^ reference local31 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - newItem.pair.lastMoveOp = helper.getNumMoves(); -// ^^^^^^^ reference local31 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState#lastMoveOp. -// ^^^^^^ reference local28 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#getNumMoves(). - break; - } - } - } - } - - /** - * Apply the movement operations to the given item to update its position. Only applies the - * operations that have not been applied yet, and stores how many operations have been applied so - * we know which ones to apply next time. - */ - private void updateItemPosition(ModelState item, List moveOps) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#updateItemPosition(). private void updateItemPosition(ModelState item, List moveOps) -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^ definition local34 ModelState item -// ^^^^ reference java/util/List# -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^^^^^^ definition local35 List moveOps - int size = moveOps.size(); -// ^^^^ definition local36 int size -// ^^^^^^^ reference local35 -// ^^^^ reference java/util/List#size(). - - for (int i = item.lastMoveOp; i < size; i++) { -// ^ definition local37 int i -// ^^^^ reference local34 -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState#lastMoveOp. -// ^ reference local37 -// ^^^^ reference local36 -// ^ reference local37 - UpdateOp moveOp = moveOps.get(i); -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^^^^^ definition local38 UpdateOp moveOp -// ^^^^^^^ reference local35 -// ^^^ reference java/util/List#get(). -// ^ reference local37 - int fromPosition = moveOp.positionStart; -// ^^^^^^^^^^^^ definition local39 int fromPosition -// ^^^^^^ reference local38 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. - int toPosition = moveOp.itemCount; -// ^^^^^^^^^^ definition local40 int toPosition -// ^^^^^^ reference local38 -// ^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#itemCount. - - if (item.position > fromPosition && item.position <= toPosition) { -// ^^^^ reference local34 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^^^^^^^ reference local39 -// ^^^^ reference local34 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^^^^^ reference local40 - item.position--; -// ^^^^ reference local34 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - } else if (item.position < fromPosition && item.position >= toPosition) { -// ^^^^ reference local34 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^^^^^^^ reference local39 -// ^^^^ reference local34 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^^^^^ reference local40 - item.position++; -// ^^^^ reference local34 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - } - } - - item.lastMoveOp = size; -// ^^^^ reference local34 -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState#lastMoveOp. -// ^^^^ reference local36 - } - - /** - * Gets the next item in the list that has a pair, meaning it wasn't inserted or removed. - */ - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - private ModelState getNextItemWithPair(Iterator iterator) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffHelper#getNextItemWithPair(). @Nullable private ModelState getNextItemWithPair(Iterator iterator) -// ^^^^^^^^ reference java/util/Iterator# -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^ definition local41 Iterator iterator - ModelState nextItem = null; -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^^^^ definition local42 ModelState nextItem - while (nextItem == null && iterator.hasNext()) { -// ^^^^^^^^ reference local42 -// ^^^^^^^^ reference local41 -// ^^^^^^^ reference java/util/Iterator#hasNext(). - nextItem = iterator.next(); -// ^^^^^^^^ reference local42 -// ^^^^^^^^ reference local41 -// ^^^^ reference java/util/Iterator#next(). - - if (nextItem.pair == null) { -// ^^^^^^^^ reference local42 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. - // Skip this one and go on to the next - nextItem = null; -// ^^^^^^^^ reference local42 - } - } - - return nextItem; -// ^^^^^^^^ reference local42 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/DiffPayload.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/DiffPayload.java deleted file mode 100644 index 1e8aae602..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/DiffPayload.java +++ /dev/null @@ -1,235 +0,0 @@ -package com.airbnb.epoxy; - -import java.util.Collections; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^^ reference java/util/Collections# -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.annotation.VisibleForTesting; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^^^^^^^^^ reference androidx/annotation/VisibleForTesting# -import androidx.collection.LongSparseArray; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/collection/ -// ^^^^^^^^^^^^^^^ reference androidx/collection/LongSparseArray# - -/** - * A helper class for tracking changed models found by the {@link com.airbnb.epoxy.DiffHelper} to - * be included as a payload in the - * {@link androidx.recyclerview.widget.RecyclerView.Adapter#notifyItemChanged(int, Object)} - * call. - */ -public class DiffPayload { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/DiffPayload# public class DiffPayload - private final EpoxyModel singleModel; -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition com/airbnb/epoxy/DiffPayload#singleModel. private final EpoxyModel singleModel - private final LongSparseArray> modelsById; -// ^^^^^^^^^^^^^^^ reference androidx/collection/LongSparseArray# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^ definition com/airbnb/epoxy/DiffPayload#modelsById. private final LongSparseArray> modelsById - - DiffPayload(List> models) { -//^^^^^^^^^^^ definition com/airbnb/epoxy/DiffPayload#``(). DiffPayload(List> models) -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local0 List> models - if (models.isEmpty()) { -// ^^^^^^ reference local0 -// ^^^^^^^ reference java/util/List#isEmpty(). - throw new IllegalStateException("Models must not be empty"); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - } - - int modelCount = models.size(); -// ^^^^^^^^^^ definition local1 int modelCount -// ^^^^^^ reference local0 -// ^^^^ reference java/util/List#size(). - - if (modelCount == 1) { -// ^^^^^^^^^^ reference local1 - // Optimize for the common case of only one model changed. - singleModel = models.get(0); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#singleModel. -// ^^^^^^ reference local0 -// ^^^ reference java/util/List#get(). - modelsById = null; -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#modelsById. - } else { - singleModel = null; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#singleModel. - modelsById = new LongSparseArray<>(modelCount); -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#modelsById. -// ^^^^^^^^^^^^^^^ reference androidx/collection/LongSparseArray#``(+1). -// ^^^^^^^^^^ reference local1 - for (EpoxyModel model : models) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local2 EpoxyModel model -// ^^^^^^ reference local0 - modelsById.put(model.id(), model); -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#modelsById. -// ^^^ reference androidx/collection/LongSparseArray#put(). -// ^^^^^ reference local2 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). -// ^^^^^ reference local2 - } - } - } - - public DiffPayload(EpoxyModel changedItem) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/DiffPayload#``(+1). public DiffPayload(EpoxyModel changedItem) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition local3 EpoxyModel changedItem - this(Collections.singletonList(changedItem)); -// ^^^^ reference com/airbnb/epoxy/DiffPayload#``(). -// ^^^^^^^^^^^ reference java/util/Collections# -// ^^^^^^^^^^^^^ reference java/util/Collections#singletonList(). -// ^^^^^^^^^^^ reference local3 - } - - /** - * Looks through the payloads list and returns the first model found with the given model id. This - * assumes that the payloads list will only contain objects of type {@link DiffPayload}, and will - * throw if an unexpected type is found. - */ - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - public static EpoxyModel getModelFromPayload(List payloads, long modelId) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffPayload#getModelFromPayload(). @Nullable public static EpoxyModel getModelFromPayload(List payloads, long modelId) -// ^^^^ reference java/util/List# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^ definition local4 List payloads -// ^^^^^^^ definition local5 long modelId - if (payloads.isEmpty()) { -// ^^^^^^^^ reference local4 -// ^^^^^^^ reference java/util/List#isEmpty(). - return null; - } - - for (Object payload : payloads) { -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^ definition local6 Object payload -// ^^^^^^^^ reference local4 - DiffPayload diffPayload = (DiffPayload) payload; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload# -// ^^^^^^^^^^^ definition local7 DiffPayload diffPayload -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload# -// ^^^^^^^ reference local6 - - if (diffPayload.singleModel != null) { -// ^^^^^^^^^^^ reference local7 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#singleModel. - if (diffPayload.singleModel.id() == modelId) { -// ^^^^^^^^^^^ reference local7 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#singleModel. -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). -// ^^^^^^^ reference local5 - return diffPayload.singleModel; -// ^^^^^^^^^^^ reference local7 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#singleModel. - } - } else { - EpoxyModel modelForId = diffPayload.modelsById.get(modelId); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^ definition local8 EpoxyModel modelForId -// ^^^^^^^^^^^ reference local7 -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#modelsById. -// ^^^ reference androidx/collection/LongSparseArray#get(). -// ^^^^^^^ reference local5 - if (modelForId != null) { -// ^^^^^^^^^^ reference local8 - return modelForId; -// ^^^^^^^^^^ reference local8 - } - } - } - - return null; - } - - @VisibleForTesting -// ^^^^^^^^^^^^^^^^^ reference androidx/annotation/VisibleForTesting# - boolean equalsForTesting(DiffPayload that) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffPayload#equalsForTesting(). @VisibleForTesting boolean equalsForTesting(DiffPayload that) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload# -// ^^^^ definition local9 DiffPayload that - if (singleModel != null) { -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#singleModel. - return that.singleModel == singleModel; -// ^^^^ reference local9 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#singleModel. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#singleModel. - } - - int thisSize = modelsById.size(); -// ^^^^^^^^ definition local10 int thisSize -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#modelsById. -// ^^^^ reference androidx/collection/LongSparseArray#size(). - int thatSize = that.modelsById.size(); -// ^^^^^^^^ definition local11 int thatSize -// ^^^^ reference local9 -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#modelsById. -// ^^^^ reference androidx/collection/LongSparseArray#size(). - - if (thisSize != thatSize) { -// ^^^^^^^^ reference local10 -// ^^^^^^^^ reference local11 - return false; - } - - for (int i = 0; i < thisSize; i++) { -// ^ definition local12 int i -// ^ reference local12 -// ^^^^^^^^ reference local10 -// ^ reference local12 - long thisKey = modelsById.keyAt(i); -// ^^^^^^^ definition local13 long thisKey -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#modelsById. -// ^^^^^ reference androidx/collection/LongSparseArray#keyAt(). -// ^ reference local12 - long thatKey = that.modelsById.keyAt(i); -// ^^^^^^^ definition local14 long thatKey -// ^^^^ reference local9 -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#modelsById. -// ^^^^^ reference androidx/collection/LongSparseArray#keyAt(). -// ^ reference local12 - - if (thisKey != thatKey) { -// ^^^^^^^ reference local13 -// ^^^^^^^ reference local14 - return false; - } - - EpoxyModel thisModel = modelsById.valueAt(i); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^ definition local15 EpoxyModel thisModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#modelsById. -// ^^^^^^^ reference androidx/collection/LongSparseArray#valueAt(). -// ^ reference local12 - EpoxyModel thatModel = that.modelsById.valueAt(i); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^ definition local16 EpoxyModel thatModel -// ^^^^ reference local9 -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffPayload#modelsById. -// ^^^^^^^ reference androidx/collection/LongSparseArray#valueAt(). -// ^ reference local12 - if (thisModel != thatModel) { -// ^^^^^^^^^ reference local15 -// ^^^^^^^^^ reference local16 - return false; - } - } - - return true; - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/DiffResult.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/DiffResult.java deleted file mode 100644 index 573d23c1f..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/DiffResult.java +++ /dev/null @@ -1,224 +0,0 @@ -package com.airbnb.epoxy; - -import java.util.Collections; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^^ reference java/util/Collections# -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.recyclerview.widget.AdapterListUpdateCallback; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/AdapterListUpdateCallback# -import androidx.recyclerview.widget.DiffUtil; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^ reference androidx/recyclerview/widget/DiffUtil# -import androidx.recyclerview.widget.ListUpdateCallback; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/ListUpdateCallback# -import androidx.recyclerview.widget.RecyclerView.Adapter; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView/ -// ^^^^^^^ reference androidx/recyclerview/widget/RecyclerView/Adapter# - -/** - * Wraps the result of {@link AsyncEpoxyDiffer#submitList(List)}. - */ -public class DiffResult { -// ^^^^^^^^^^ definition com/airbnb/epoxy/DiffResult# public class DiffResult - @NonNull final List> previousModels; -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffResult#previousModels. @NonNull final List> previousModels - @NonNull final List> newModels; -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^ definition com/airbnb/epoxy/DiffResult#newModels. @NonNull final List> newModels - - /** - * If this is non null it means the full differ ran and the result is contained - * in this object. If it is null, it means that either the old list or the new list was empty, so - * we can simply add all or clear all items and skipped running the full diffing. - */ - @Nullable final DiffUtil.DiffResult differResult; -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^ reference DiffUtil/ -// ^^^^^^^^^^ reference DiffUtil/DiffResult# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/DiffResult#differResult. @Nullable final unresolved_type differResult - - /** No changes were made to the models. */ - static DiffResult noOp(@Nullable List> models) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult# -// ^^^^ definition com/airbnb/epoxy/DiffResult#noOp(). static DiffResult noOp(List> models) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local0 @Nullable List> models - if (models == null) { -// ^^^^^^ reference local0 - models = Collections.emptyList(); -// ^^^^^^ reference local0 -// ^^^^^^^^^^^ reference java/util/Collections# -// ^^^^^^^^^ reference java/util/Collections#emptyList(). - } - return new DiffResult(models, models, null); -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#``(). -// ^^^^^^ reference local0 -// ^^^^^^ reference local0 - } - - /** The previous list was empty and the given non empty list was inserted. */ - static DiffResult inserted(@NonNull List> newModels) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult# -// ^^^^^^^^ definition com/airbnb/epoxy/DiffResult#inserted(). static DiffResult inserted(List> newModels) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^ definition local1 @NonNull List> newModels - //noinspection unchecked - return new DiffResult(Collections.EMPTY_LIST, newModels, null); -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#``(). -// ^^^^^^^^^^^ reference java/util/Collections# -// ^^^^^^^^^^ reference java/util/Collections#EMPTY_LIST. -// ^^^^^^^^^ reference local1 - } - - /** The previous list was non empty and the new list is empty. */ - static DiffResult clear(@NonNull List> previousModels) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult# -// ^^^^^ definition com/airbnb/epoxy/DiffResult#clear(). static DiffResult clear(List> previousModels) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^ definition local2 @NonNull List> previousModels - //noinspection unchecked - return new DiffResult(previousModels, Collections.EMPTY_LIST, null); -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#``(). -// ^^^^^^^^^^^^^^ reference local2 -// ^^^^^^^^^^^ reference java/util/Collections# -// ^^^^^^^^^^ reference java/util/Collections#EMPTY_LIST. - } - - /** - * The previous and new models are both non empty and a full differ pass was run on them. - * There may be no changes, however. - */ - static DiffResult diff( -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult# -// ^^^^ definition com/airbnb/epoxy/DiffResult#diff(). static DiffResult diff(List> previousModels, List> newModels, unresolved_type differResult) - @NonNull List> previousModels, -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^ definition local3 @NonNull List> previousModels - @NonNull List> newModels, -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^ definition local4 @NonNull List> newModels - @NonNull DiffUtil.DiffResult differResult -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^ reference DiffUtil/ -// ^^^^^^^^^^ reference DiffUtil/DiffResult# -// ^^^^^^^^^^^^ definition local5 @NonNull unresolved_type differResult - ) { - return new DiffResult(previousModels, newModels, differResult); -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#``(). -// ^^^^^^^^^^^^^^ reference local3 -// ^^^^^^^^^ reference local4 -// ^^^^^^^^^^^^ reference local5 - } - - private DiffResult( -// ^^^^^^^^^^ definition com/airbnb/epoxy/DiffResult#``(). private DiffResult(List> previousModels, List> newModels, unresolved_type differResult) - @NonNull List> previousModels, -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^ definition local6 @NonNull List> previousModels - @NonNull List> newModels, -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^ definition local7 @NonNull List> newModels - @Nullable DiffUtil.DiffResult differResult -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^ reference DiffUtil/ -// ^^^^^^^^^^ reference DiffUtil/DiffResult# -// ^^^^^^^^^^^^ definition local8 @Nullable unresolved_type differResult - ) { - this.previousModels = previousModels; -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#previousModels. -// ^^^^^^^^^^^^^^ reference local6 - this.newModels = newModels; -// ^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#newModels. -// ^^^^^^^^^ reference local7 - this.differResult = differResult; -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#differResult. -// ^^^^^^^^^^^^ reference local8 - } - - public void dispatchTo(Adapter adapter) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/DiffResult#dispatchTo(). public void dispatchTo(unresolved_type adapter) -// ^^^^^^^ reference _root_/ -// ^^^^^^^ definition local9 unresolved_type adapter - dispatchTo(new AdapterListUpdateCallback(adapter)); -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#dispatchTo(). -// ^^^^^^^ reference local9 - } - - public void dispatchTo(ListUpdateCallback callback) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/DiffResult#dispatchTo(+1). public void dispatchTo(unresolved_type callback) -// ^^^^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^ definition local10 unresolved_type callback - if (differResult != null) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#differResult. - differResult.dispatchUpdatesTo(callback); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#differResult. -// ^^^^^^^^^^^^^^^^^ reference DiffUtil/DiffResult#dispatchUpdatesTo# -// ^^^^^^^^ reference local10 - } else if (newModels.isEmpty() && !previousModels.isEmpty()) { -// ^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#newModels. -// ^^^^^^^ reference java/util/List#isEmpty(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#previousModels. -// ^^^^^^^ reference java/util/List#isEmpty(). - callback.onRemoved(0, previousModels.size()); -// ^^^^^^^^ reference local10 -// ^^^^^^^^^ reference onRemoved# -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#previousModels. -// ^^^^ reference java/util/List#size(). - } else if (!newModels.isEmpty() && previousModels.isEmpty()) { -// ^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#newModels. -// ^^^^^^^ reference java/util/List#isEmpty(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#previousModels. -// ^^^^^^^ reference java/util/List#isEmpty(). - callback.onInserted(0, newModels.size()); -// ^^^^^^^^ reference local10 -// ^^^^^^^^^^ reference onInserted# -// ^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#newModels. -// ^^^^ reference java/util/List#size(). - } - - // Else nothing changed! - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyAdapter.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyAdapter.java deleted file mode 100644 index f176990db..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyAdapter.java +++ /dev/null @@ -1,674 +0,0 @@ - -package com.airbnb.epoxy; - -import java.util.Arrays; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^ reference java/util/Arrays# -import java.util.Collection; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^ reference java/util/Collection# -import java.util.Collections; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^^ reference java/util/Collections# -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# - -/** - * Allows you to easily combine different view types in the same adapter, and handles view holder - * creation, binding, and ids for you. Subclasses just need to add their desired {@link EpoxyModel} - * objects and the rest is done automatically. - *

- * {@link androidx.recyclerview.widget.RecyclerView.Adapter#setHasStableIds(boolean)} is set to true - * by default, since {@link EpoxyModel} makes it easy to support unique ids. If you don't want to - * support this then disable it in your base class (not recommended). - */ -@SuppressWarnings("WeakerAccess") -//^^^^^^^^^^^^^^^ reference java/lang/SuppressWarnings# -public abstract class EpoxyAdapter extends BaseEpoxyAdapter { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter# @SuppressWarnings("WeakerAccess") public abstract class EpoxyAdapter -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#``(). public EpoxyAdapter() -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter# - private final HiddenEpoxyModel hiddenModel = new HiddenEpoxyModel(); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HiddenEpoxyModel# -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#hiddenModel. private final HiddenEpoxyModel hiddenModel -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HiddenEpoxyModel#``(). - - /** - * Subclasses should modify this list as necessary with the models they want to show. Subclasses - * are responsible for notifying data changes whenever this list is changed. - */ - protected final List> models = new ModelList(); -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#models. protected final List> models -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelList#``(+1). - private DiffHelper diffHelper; -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper# -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#diffHelper. private DiffHelper diffHelper - - @Override -// ^^^^^^^^ reference java/lang/Override# - List> getCurrentModels() { -//^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#getCurrentModels(). @Override List> getCurrentModels() - return models; -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. - } - - /** - * Enables support for automatically notifying model changes via {@link #notifyModelsChanged()}. - * If used, this should be called in the constructor, before any models are changed. - * - * @see #notifyModelsChanged() - */ - protected void enableDiffing() { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#enableDiffing(). protected void enableDiffing() - if (diffHelper != null) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#diffHelper. - throw new IllegalStateException("Diffing was already enabled"); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - } - - if (!models.isEmpty()) { -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^^^^ reference java/util/List#isEmpty(). - throw new IllegalStateException("You must enable diffing before modifying models"); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - } - - if (!hasStableIds()) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#hasStableIds# - throw new IllegalStateException("You must have stable ids to use diffing"); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - } - - diffHelper = new DiffHelper(this, false); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#diffHelper. -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#``(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - EpoxyModel getModelForPosition(int position) { -//^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#getModelForPosition(). @Override EpoxyModel getModelForPosition(int position) -// ^^^^^^^^ definition local0 int position - EpoxyModel model = models.get(position); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local1 EpoxyModel model -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^ reference java/util/List#get(). -// ^^^^^^^^ reference local0 - return model.isShown() ? model : hiddenModel; -// ^^^^^ reference local1 -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#isShown(). -// ^^^^^ reference local1 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#hiddenModel. - } - - /** - * Intelligently notify item changes by comparing the current {@link #models} list against the - * previous so you don't have to micromanage notification calls yourself. This may be - * prohibitively slow for large model lists (in the hundreds), in which case consider doing - * notification calls yourself. If you use this, all your view models must implement {@link - * EpoxyModel#hashCode()} and {@link EpoxyModel#equals(Object)} to completely identify their - * state, so that changes to a model's content can be detected. Before using this you must enable - * it with {@link #enableDiffing()}, since keeping track of the model state adds extra computation - * time to all other data change notifications. - * - * @see #enableDiffing() - */ - - protected void notifyModelsChanged() { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#notifyModelsChanged(). protected void notifyModelsChanged() - if (diffHelper == null) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#diffHelper. - throw new IllegalStateException("You must enable diffing before notifying models changed"); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - } - - diffHelper.notifyModelChanges(); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#diffHelper. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/DiffHelper#notifyModelChanges(). - } - - /** - * Notify that the given model has had its data changed. It should only be called if the model - * retained the same position. - */ - protected void notifyModelChanged(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#notifyModelChanged(). protected void notifyModelChanged(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local2 EpoxyModel model - notifyModelChanged(model, null); -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#notifyModelChanged(+1). -// ^^^^^ reference local2 - } - - /** - * Notify that the given model has had its data changed. It should only be called if the model - * retained the same position. - */ - protected void notifyModelChanged(EpoxyModel model, @Nullable Object payload) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#notifyModelChanged(+1). protected void notifyModelChanged(EpoxyModel model, Object payload) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local3 EpoxyModel model -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^ definition local4 @Nullable Object payload - int index = getModelPosition(model); -// ^^^^^ definition local5 int index -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getModelPosition(). -// ^^^^^ reference local3 - if (index != -1) { -// ^^^^^ reference local5 - notifyItemChanged(index, payload); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#notifyItemChanged# -// ^^^^^ reference local5 -// ^^^^^^^ reference local4 - } - } - - /** - * Adds the model to the end of the {@link #models} list and notifies that the item was inserted. - */ - protected void addModel(EpoxyModel modelToAdd) { -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#addModel(). protected void addModel(EpoxyModel modelToAdd) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^ definition local6 EpoxyModel modelToAdd - int initialSize = models.size(); -// ^^^^^^^^^^^ definition local7 int initialSize -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^ reference java/util/List#size(). - - pauseModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#pauseModelListNotifications(). - models.add(modelToAdd); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^ reference java/util/List#add(). -// ^^^^^^^^^^ reference local6 - resumeModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#resumeModelListNotifications(). - - notifyItemRangeInserted(initialSize, 1); -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#notifyItemRangeInserted# -// ^^^^^^^^^^^ reference local7 - } - - /** - * Adds the models to the end of the {@link #models} list and notifies that the items were - * inserted. - */ - protected void addModels(EpoxyModel... modelsToAdd) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#addModels(). protected void addModels(EpoxyModel[] modelsToAdd) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition local8 EpoxyModel[] modelsToAdd - int initialSize = models.size(); -// ^^^^^^^^^^^ definition local9 int initialSize -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^ reference java/util/List#size(). - int numModelsToAdd = modelsToAdd.length; -// ^^^^^^^^^^^^^^ definition local10 int numModelsToAdd -// ^^^^^^^^^^^ reference local8 -// ^^^^^^ reference length. - - ((ModelList) models).ensureCapacity(initialSize + numModelsToAdd); -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelList# -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^^^^^^^^^^^ reference java/util/ArrayList#ensureCapacity(). -// ^^^^^^^^^^^ reference local9 -// ^^^^^^^^^^^^^^ reference local10 - - pauseModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#pauseModelListNotifications(). - Collections.addAll(models, modelsToAdd); -// ^^^^^^^^^^^ reference java/util/Collections# -// ^^^^^^ reference java/util/Collections#addAll(). -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^^^^^^^^ reference local8 - resumeModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#resumeModelListNotifications(). - - notifyItemRangeInserted(initialSize, numModelsToAdd); -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#notifyItemRangeInserted# -// ^^^^^^^^^^^ reference local9 -// ^^^^^^^^^^^^^^ reference local10 - } - - /** - * Adds the models to the end of the {@link #models} list and notifies that the items were - * inserted. - */ - protected void addModels(Collection> modelsToAdd) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#addModels(+1). protected void addModels(Collection> modelsToAdd) -// ^^^^^^^^^^ reference java/util/Collection# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition local11 Collection> modelsToAdd - int initialSize = models.size(); -// ^^^^^^^^^^^ definition local12 int initialSize -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^ reference java/util/List#size(). - - pauseModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#pauseModelListNotifications(). - models.addAll(modelsToAdd); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^^^ reference java/util/List#addAll(). -// ^^^^^^^^^^^ reference local11 - resumeModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#resumeModelListNotifications(). - - notifyItemRangeInserted(initialSize, modelsToAdd.size()); -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#notifyItemRangeInserted# -// ^^^^^^^^^^^ reference local12 -// ^^^^^^^^^^^ reference local11 -// ^^^^ reference java/util/Collection#size(). - } - - /** - * Inserts the given model before the other in the {@link #models} list, and notifies that the - * item was inserted. - */ - protected void insertModelBefore(EpoxyModel modelToInsert, EpoxyModel modelToInsertBefore) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#insertModelBefore(). protected void insertModelBefore(EpoxyModel modelToInsert, EpoxyModel modelToInsertBefore) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition local13 EpoxyModel modelToInsert -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^ definition local14 EpoxyModel modelToInsertBefore - int targetIndex = getModelPosition(modelToInsertBefore); -// ^^^^^^^^^^^ definition local15 int targetIndex -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getModelPosition(). -// ^^^^^^^^^^^^^^^^^^^ reference local14 - if (targetIndex == -1) { -// ^^^^^^^^^^^ reference local15 - throw new IllegalStateException("Model is not added: " + modelToInsertBefore); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). -// ^^^^^^^^^^^^^^^^^^^ reference local14 - } - - pauseModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#pauseModelListNotifications(). - models.add(targetIndex, modelToInsert); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^ reference java/util/List#add(+1). -// ^^^^^^^^^^^ reference local15 -// ^^^^^^^^^^^^^ reference local13 - resumeModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#resumeModelListNotifications(). - - notifyItemInserted(targetIndex); -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#notifyItemInserted# -// ^^^^^^^^^^^ reference local15 - } - - /** - * Inserts the given model after the other in the {@link #models} list, and notifies that the item - * was inserted. - */ - protected void insertModelAfter(EpoxyModel modelToInsert, EpoxyModel modelToInsertAfter) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#insertModelAfter(). protected void insertModelAfter(EpoxyModel modelToInsert, EpoxyModel modelToInsertAfter) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition local16 EpoxyModel modelToInsert -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^ definition local17 EpoxyModel modelToInsertAfter - int modelIndex = getModelPosition(modelToInsertAfter); -// ^^^^^^^^^^ definition local18 int modelIndex -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getModelPosition(). -// ^^^^^^^^^^^^^^^^^^ reference local17 - if (modelIndex == -1) { -// ^^^^^^^^^^ reference local18 - throw new IllegalStateException("Model is not added: " + modelToInsertAfter); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). -// ^^^^^^^^^^^^^^^^^^ reference local17 - } - - int targetIndex = modelIndex + 1; -// ^^^^^^^^^^^ definition local19 int targetIndex -// ^^^^^^^^^^ reference local18 - pauseModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#pauseModelListNotifications(). - models.add(targetIndex, modelToInsert); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^ reference java/util/List#add(+1). -// ^^^^^^^^^^^ reference local19 -// ^^^^^^^^^^^^^ reference local16 - resumeModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#resumeModelListNotifications(). - - notifyItemInserted(targetIndex); -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#notifyItemInserted# -// ^^^^^^^^^^^ reference local19 - } - - /** - * If the given model exists it is removed and an item removal is notified. Otherwise this does - * nothing. - */ - protected void removeModel(EpoxyModel model) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#removeModel(). protected void removeModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local20 EpoxyModel model - int index = getModelPosition(model); -// ^^^^^ definition local21 int index -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getModelPosition(). -// ^^^^^ reference local20 - if (index != -1) { -// ^^^^^ reference local21 - pauseModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#pauseModelListNotifications(). - models.remove(index); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^^^ reference java/util/List#remove(+1). -// ^^^^^ reference local21 - resumeModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#resumeModelListNotifications(). - - notifyItemRemoved(index); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#notifyItemRemoved# -// ^^^^^ reference local21 - } - } - - /** - * Removes all models - */ - protected void removeAllModels() { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#removeAllModels(). protected void removeAllModels() - int numModelsRemoved = models.size(); -// ^^^^^^^^^^^^^^^^ definition local22 int numModelsRemoved -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^ reference java/util/List#size(). - - pauseModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#pauseModelListNotifications(). - models.clear(); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^^ reference java/util/List#clear(). - resumeModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#resumeModelListNotifications(). - - notifyItemRangeRemoved(0, numModelsRemoved); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#notifyItemRangeRemoved# -// ^^^^^^^^^^^^^^^^ reference local22 - } - - /** - * Removes all models after the given model, which must have already been added. An example use - * case is you want to keep a header but clear everything else, like in the case of refreshing - * data. - */ - protected void removeAllAfterModel(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#removeAllAfterModel(). protected void removeAllAfterModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local23 EpoxyModel model - List> modelsToRemove = getAllModelsAfter(model); -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^ definition local24 List> modelsToRemove -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#getAllModelsAfter(). -// ^^^^^ reference local23 - int numModelsRemoved = modelsToRemove.size(); -// ^^^^^^^^^^^^^^^^ definition local25 int numModelsRemoved -// ^^^^^^^^^^^^^^ reference local24 -// ^^^^ reference java/util/List#size(). - int initialModelCount = models.size(); -// ^^^^^^^^^^^^^^^^^ definition local26 int initialModelCount -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^ reference java/util/List#size(). - - // This is a sublist, so clearing it will clear the models in the original list - pauseModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#pauseModelListNotifications(). - modelsToRemove.clear(); -// ^^^^^^^^^^^^^^ reference local24 -// ^^^^^ reference java/util/List#clear(). - resumeModelListNotifications(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#resumeModelListNotifications(). - - notifyItemRangeRemoved(initialModelCount - numModelsRemoved, numModelsRemoved); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#notifyItemRangeRemoved# -// ^^^^^^^^^^^^^^^^^ reference local26 -// ^^^^^^^^^^^^^^^^ reference local25 -// ^^^^^^^^^^^^^^^^ reference local25 - } - - /** - * Sets the visibility of the given model, and notifies that the item changed if the new - * visibility is different from the previous. - * - * @param model The model to show. It should already be added to the {@link #models} list. - * @param show True to show the model, false to hide it. - */ - protected void showModel(EpoxyModel model, boolean show) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#showModel(). protected void showModel(EpoxyModel model, boolean show) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local27 EpoxyModel model -// ^^^^ definition local28 boolean show - if (model.isShown() == show) { -// ^^^^^ reference local27 -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#isShown(). -// ^^^^ reference local28 - return; - } - - model.show(show); -// ^^^^^ reference local27 -// ^^^^ reference com/airbnb/epoxy/EpoxyModel#show(+1). -// ^^^^ reference local28 - notifyModelChanged(model); -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#notifyModelChanged(). -// ^^^^^ reference local27 - } - - /** - * Shows the given model, and notifies that the item changed if the item wasn't already shown. - * - * @param model The model to show. It should already be added to the {@link #models} list. - */ - protected void showModel(EpoxyModel model) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#showModel(+1). protected void showModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local29 EpoxyModel model - showModel(model, true); -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#showModel(). -// ^^^^^ reference local29 - } - - /** - * Shows the given models, and notifies that each item changed if the item wasn't already shown. - * - * @param models The models to show. They should already be added to the {@link #models} list. - */ - protected void showModels(EpoxyModel... models) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#showModels(). protected void showModels(EpoxyModel[] models) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local30 EpoxyModel[] models - showModels(Arrays.asList(models)); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#showModels(+2). -// ^^^^^^ reference java/util/Arrays# -// ^^^^^^ reference java/util/Arrays#asList(). -// ^^^^^^ reference local30 - } - - /** - * Sets the visibility of the given models, and notifies that the items changed if the new - * visibility is different from the previous. - * - * @param models The models to show. They should already be added to the {@link #models} list. - * @param show True to show the models, false to hide them. - */ - protected void showModels(boolean show, EpoxyModel... models) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#showModels(+1). protected void showModels(boolean show, EpoxyModel[] models) -// ^^^^ definition local31 boolean show -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local32 EpoxyModel[] models - showModels(Arrays.asList(models), show); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#showModels(+3). -// ^^^^^^ reference java/util/Arrays# -// ^^^^^^ reference java/util/Arrays#asList(). -// ^^^^^^ reference local32 -// ^^^^ reference local31 - } - - /** - * Shows the given models, and notifies that each item changed if the item wasn't already shown. - * - * @param models The models to show. They should already be added to the {@link #models} list. - */ - protected void showModels(Iterable> models) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#showModels(+2). protected void showModels(Iterable> models) -// ^^^^^^^^ reference java/lang/Iterable# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local33 Iterable> models - showModels(models, true); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#showModels(+3). -// ^^^^^^ reference local33 - } - - /** - * Sets the visibility of the given models, and notifies that the items changed if the new - * visibility is different from the previous. - * - * @param models The models to show. They should already be added to the {@link #models} list. - * @param show True to show the models, false to hide them. - */ - protected void showModels(Iterable> models, boolean show) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#showModels(+3). protected void showModels(Iterable> models, boolean show) -// ^^^^^^^^ reference java/lang/Iterable# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local34 Iterable> models -// ^^^^ definition local35 boolean show - for (EpoxyModel model : models) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local36 EpoxyModel model -// ^^^^^^ reference local34 - showModel(model, show); -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#showModel(). -// ^^^^^ reference local36 -// ^^^^ reference local35 - } - } - - /** - * Hides the given model, and notifies that the item changed if the item wasn't already hidden. - * - * @param model The model to hide. This should already be added to the {@link #models} list. - */ - protected void hideModel(EpoxyModel model) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#hideModel(). protected void hideModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local37 EpoxyModel model - showModel(model, false); -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#showModel(). -// ^^^^^ reference local37 - } - - /** - * Hides the given models, and notifies that each item changed if the item wasn't already hidden. - * - * @param models The models to hide. They should already be added to the {@link #models} list. - */ - protected void hideModels(Iterable> models) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#hideModels(). protected void hideModels(Iterable> models) -// ^^^^^^^^ reference java/lang/Iterable# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local38 Iterable> models - showModels(models, false); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#showModels(+3). -// ^^^^^^ reference local38 - } - - /** - * Hides the given models, and notifies that each item changed if the item wasn't already hidden. - * - * @param models The models to hide. They should already be added to the {@link #models} list. - */ - protected void hideModels(EpoxyModel... models) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#hideModels(+1). protected void hideModels(EpoxyModel[] models) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local39 EpoxyModel[] models - hideModels(Arrays.asList(models)); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#hideModels(). -// ^^^^^^ reference java/util/Arrays# -// ^^^^^^ reference java/util/Arrays#asList(). -// ^^^^^^ reference local39 - } - - /** - * Hides all models currently located after the given model in the {@link #models} list. - * - * @param model The model after which to hide. It must exist in the {@link #models} list. - */ - protected void hideAllAfterModel(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#hideAllAfterModel(). protected void hideAllAfterModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local40 EpoxyModel model - hideModels(getAllModelsAfter(model)); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#hideModels(). -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#getAllModelsAfter(). -// ^^^^^ reference local40 - } - - /** - * Returns a sub list of all items in {@link #models} that occur after the given model. This list - * is backed by the original models list, any changes to the returned list will be reflected in - * the original {@link #models} list. - * - * @param model Must exist in {@link #models}. - */ - protected List> getAllModelsAfter(EpoxyModel model) { -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#getAllModelsAfter(). protected List> getAllModelsAfter(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local41 EpoxyModel model - int index = getModelPosition(model); -// ^^^^^ definition local42 int index -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getModelPosition(). -// ^^^^^ reference local41 - if (index == -1) { -// ^^^^^ reference local42 - throw new IllegalStateException("Model is not added: " + model); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). -// ^^^^^ reference local41 - } - return models.subList(index + 1, models.size()); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^^^^ reference java/util/List#subList(). -// ^^^^^ reference local42 -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^ reference java/util/List#size(). - } - - /** - * We pause the list's notifications when we modify models internally, since we already do the - * proper adapter notifications for those modifications. By pausing these list notifications we - * prevent the differ having to do work to track them. - */ - private void pauseModelListNotifications() { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#pauseModelListNotifications(). private void pauseModelListNotifications() - ((ModelList) models).pauseNotifications(); -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelList# -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#pauseNotifications(). - } - - private void resumeModelListNotifications() { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAdapter#resumeModelListNotifications(). private void resumeModelListNotifications() - ((ModelList) models).resumeNotifications(); -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelList# -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#resumeNotifications(). - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyAsyncUtil.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyAsyncUtil.java deleted file mode 100644 index f9badfe0c..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyAsyncUtil.java +++ /dev/null @@ -1,172 +0,0 @@ -package com.airbnb.epoxy; - -import android.os.Build; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^ reference android/os/Build# -import android.os.Handler; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^^ reference android/os/Handler# -import android.os.Handler.Callback; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^^ reference android/os/Handler/ -// ^^^^^^^^ reference android/os/Handler/Callback# -import android.os.HandlerThread; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^^^^^^^^ reference android/os/HandlerThread# -import android.os.Looper; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^ reference android/os/Looper# -import android.os.Message; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^^ reference android/os/Message# - -import androidx.annotation.MainThread; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^^ reference androidx/annotation/MainThread# - -/** - * Various helpers for running Epoxy operations off the main thread. - */ -public final class EpoxyAsyncUtil { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAsyncUtil# public final class EpoxyAsyncUtil - private EpoxyAsyncUtil() { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAsyncUtil#``(). private EpoxyAsyncUtil() - } - - /** - * A Handler class that uses the main thread's Looper. - */ - public static final Handler MAIN_THREAD_HANDLER = -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAsyncUtil#MAIN_THREAD_HANDLER. public static final unresolved_type MAIN_THREAD_HANDLER - createHandler(Looper.getMainLooper(), false); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil#createHandler(). -// ^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^ reference getMainLooper# - - /** - * A Handler class that uses the main thread's Looper. Additionally, this handler calls - * {@link Message#setAsynchronous(boolean)} for - * each {@link Message} that is sent to it or {@link Runnable} that is posted to it - */ - public static final Handler AYSNC_MAIN_THREAD_HANDLER = -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAsyncUtil#AYSNC_MAIN_THREAD_HANDLER. public static final unresolved_type AYSNC_MAIN_THREAD_HANDLER - createHandler(Looper.getMainLooper(), true); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil#createHandler(). -// ^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^ reference getMainLooper# - - private static Handler asyncBackgroundHandler; -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAsyncUtil#asyncBackgroundHandler. private static unresolved_type asyncBackgroundHandler - - /** - * A Handler class that uses a separate background thread dedicated to Epoxy. Additionally, - * this handler calls {@link Message#setAsynchronous(boolean)} for - * each {@link Message} that is sent to it or {@link Runnable} that is posted to it - */ - @MainThread -// ^^^^^^^^^^ reference androidx/annotation/MainThread# - public static Handler getAsyncBackgroundHandler() { -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAsyncUtil#getAsyncBackgroundHandler(). @MainThread public static unresolved_type getAsyncBackgroundHandler() - // This is initialized lazily so we don't create the thread unless it will be used. - // It isn't synchronized so it should only be accessed on the main thread. - if (asyncBackgroundHandler == null) { -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil#asyncBackgroundHandler. - asyncBackgroundHandler = createHandler(buildBackgroundLooper("epoxy"), true); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil#asyncBackgroundHandler. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil#createHandler(). -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil#buildBackgroundLooper(). - } - - return asyncBackgroundHandler; -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil#asyncBackgroundHandler. - } - - /** - * Create a Handler with the given Looper - * - * @param async If true the Handler will calls {@link Message#setAsynchronous(boolean)} for - * each {@link Message} that is sent to it or {@link Runnable} that is posted to it. - */ - public static Handler createHandler(Looper looper, boolean async) { -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAsyncUtil#createHandler(). public static unresolved_type createHandler(unresolved_type looper, boolean async) -// ^^^^^^ reference _root_/ -// ^^^^^^ definition local0 unresolved_type looper -// ^^^^^ definition local1 boolean async - if (!async) { -// ^^^^^ reference local1 - return new Handler(looper); -// ^^^^^^ reference local0 - } - - // Standard way of exposing async handler on older api's from the support library - // https://android.googlesource.com/platform/frameworks/support/+/androidx-master-dev/core - // /src/main/java/androidx/core/os/HandlerCompat.java#51 - if (Build.VERSION.SDK_INT >= 28) { -// ^^^^^ reference Build/ -// ^^^^^^^ reference Build/VERSION# -// ^^^^^^^ reference Build/VERSION#SDK_INT# - return Handler.createAsync(looper); -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^ reference createAsync# -// ^^^^^^ reference local0 - } - if (Build.VERSION.SDK_INT >= 16) { -// ^^^^^ reference Build/ -// ^^^^^^^ reference Build/VERSION# -// ^^^^^^^ reference Build/VERSION#SDK_INT# - try { - //noinspection JavaReflectionMemberAccess - return Handler.class.getDeclaredConstructor(Looper.class, Callback.class, boolean.class) -// ^^^^^^^ reference _root_/ -// ^^^^^ reference class# -// ^^^^^^^^^^^^^^^^^^^^^^ reference class#getDeclaredConstructor# -// ^^^^^^ reference _root_/ -// ^^^^^ reference class# -// ^^^^^^^^ reference _root_/ -// ^^^^^ reference class# -// ^^^^^ reference boolean#class. - .newInstance(looper, null, true); -// ^^^^^^^^^^^ reference ``#newInstance# -// ^^^^^^ reference local0 - } catch (Throwable ignored) { -// ^^^^^^^^^ reference java/lang/Throwable# -// ^^^^^^^ definition local2 Throwable ignored - } - } - - return new Handler(looper); -// ^^^^^^ reference local0 - } - - /** - * Create a new looper that runs on a new background thread. - */ - public static Looper buildBackgroundLooper(String threadName) { -// ^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyAsyncUtil#buildBackgroundLooper(). public static unresolved_type buildBackgroundLooper(String threadName) -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^^^ definition local3 String threadName - HandlerThread handlerThread = new HandlerThread(threadName); -// ^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^ definition local4 unresolved_type handlerThread -// ^^^^^^^^^^ reference local3 - handlerThread.start(); -// ^^^^^^^^^^^^^ reference local4 -// ^^^^^ reference start# - return handlerThread.getLooper(); -// ^^^^^^^^^^^^^ reference local4 -// ^^^^^^^^^ reference getLooper# - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyController.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyController.java deleted file mode 100644 index 0049ab766..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyController.java +++ /dev/null @@ -1,1689 +0,0 @@ -package com.airbnb.epoxy; - -import android.os.Bundle; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^ reference android/os/Bundle# -import android.os.Handler; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^^ reference android/os/Handler# -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# - -import com.airbnb.epoxy.stickyheader.StickyHeaderCallbacks; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/ -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderCallbacks# - -import org.jetbrains.annotations.NotNull; -// ^^^ reference org/ -// ^^^^^^^^^ reference org/jetbrains/ -// ^^^^^^^^^^^ reference org/jetbrains/annotations/ -// ^^^^^^^ reference org/jetbrains/annotations/NotNull# - -import java.lang.annotation.Retention; -// ^^^^ reference java/ -// ^^^^ reference java/lang/ -// ^^^^^^^^^^ reference java/lang/annotation/ -// ^^^^^^^^^ reference java/lang/annotation/Retention# -import java.lang.annotation.RetentionPolicy; -// ^^^^ reference java/ -// ^^^^ reference java/lang/ -// ^^^^^^^^^^ reference java/lang/annotation/ -// ^^^^^^^^^^^^^^^ reference java/lang/annotation/RetentionPolicy# -import java.util.ArrayList; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^ reference java/util/ArrayList# -import java.util.HashSet; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^ reference java/util/HashSet# -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# -import java.util.ListIterator; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^^^ reference java/util/ListIterator# -import java.util.Set; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^ reference java/util/Set# -import java.util.concurrent.CopyOnWriteArrayList; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^ reference java/util/concurrent/ -// ^^^^^^^^^^^^^^^^^^^^ reference java/util/concurrent/CopyOnWriteArrayList# - -import androidx.annotation.IntDef; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^ reference androidx/annotation/IntDef# -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.recyclerview.widget.RecyclerView; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView# -import androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/GridLayoutManager/ -// ^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/GridLayoutManager/SpanSizeLookup# - -import static com.airbnb.epoxy.ControllerHelperLookup.getHelperForController; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ControllerHelperLookup# - -/** - * A controller for easily combining {@link EpoxyModel} instances in a {@link RecyclerView.Adapter}. - * Simply implement {@link #buildModels()} to declare which models should be used, and in which - * order. Call {@link #requestModelBuild()} whenever your data changes, and the controller will call - * {@link #buildModels()}, update the adapter with the new models, and notify any changes between - * the new and old models. - *

- * The controller maintains a {@link androidx.recyclerview.widget.RecyclerView.Adapter} with the - * latest models, which you can get via {@link #getAdapter()} to set on your RecyclerView. - *

- * All data change notifications are applied automatically via Epoxy's diffing algorithm. All of - * your models must have a unique id set on them for diffing to work. You may choose to use {@link - * AutoModel} annotations to have the controller create models with unique ids for you - * automatically. - *

- * Once a model is created and added to the controller in {@link #buildModels()} it should be - * treated as immutable and never modified again. This is necessary for adapter updates to be - * accurate. - */ -public abstract class EpoxyController implements ModelCollector, StickyHeaderCallbacks { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController# public abstract class EpoxyController -// ^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^^^ reference _root_/ - - /** - * We check that the adapter is not connected to multiple recyclerviews, but when a fragment has - * its view quickly destroyed and recreated it may temporarily attach the same adapter to the - * previous view and the new view (eg because of fragment transitions) if the controller is reused - * across views. We want to allow this case since it is a brief transient state. This should be - * enough time for screen transitions to happen. - */ - private static final int DELAY_TO_CHECK_ADAPTER_COUNT_MS = 3000; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#DELAY_TO_CHECK_ADAPTER_COUNT_MS. private static final int DELAY_TO_CHECK_ADAPTER_COUNT_MS - private static final Timer NO_OP_TIMER = new NoOpTimer(); -// ^^^^^ reference com/airbnb/epoxy/Timer# -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#NO_OP_TIMER. private static final Timer NO_OP_TIMER -// ^^^^^^^^^ reference com/airbnb/epoxy/NoOpTimer#``(). - - public static Handler defaultModelBuildingHandler = MainThreadExecutor.INSTANCE.handler; -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#defaultModelBuildingHandler. public static unresolved_type defaultModelBuildingHandler -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/MainThreadExecutor# -// ^^^^^^^^ reference com/airbnb/epoxy/MainThreadExecutor#INSTANCE. -// ^^^^^^^ reference com/airbnb/epoxy/HandlerExecutor#handler. - public static Handler defaultDiffingHandler = MainThreadExecutor.INSTANCE.handler; -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#defaultDiffingHandler. public static unresolved_type defaultDiffingHandler -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/MainThreadExecutor# -// ^^^^^^^^ reference com/airbnb/epoxy/MainThreadExecutor#INSTANCE. -// ^^^^^^^ reference com/airbnb/epoxy/HandlerExecutor#handler. - private static boolean filterDuplicatesDefault = false; -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#filterDuplicatesDefault. private static boolean filterDuplicatesDefault - private static boolean globalDebugLoggingEnabled = false; -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#globalDebugLoggingEnabled. private static boolean globalDebugLoggingEnabled - - private final EpoxyControllerAdapter adapter; -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter# -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyController#adapter. private final EpoxyControllerAdapter adapter - private EpoxyDiffLogger debugObserver; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyDiffLogger# -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#debugObserver. private EpoxyDiffLogger debugObserver - private int recyclerViewAttachCount = 0; -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#recyclerViewAttachCount. private int recyclerViewAttachCount - private final Handler modelBuildHandler; -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#modelBuildHandler. private final unresolved_type modelBuildHandler - - /** - * This is iterated over in the build models thread, but items can be inserted or removed from - * other threads at any time. - */ - private final List interceptors = new CopyOnWriteArrayList<>(); -// ^^^^ reference java/util/List# -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#Interceptor# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#interceptors. private final List interceptors -// ^^^^^^^^^^^^^^^^^^^^ reference java/util/concurrent/CopyOnWriteArrayList#``(). - - // Volatile because -> write only on main thread, read from builder thread - private volatile boolean filterDuplicates = filterDuplicatesDefault; -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#filterDuplicates. private boolean filterDuplicates -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#filterDuplicatesDefault. - /** - * This is used to track whether we are currently building models. If it is non null it means - * a thread is in the building models method. We store the thread so we can know which one - * is building models. - *

- * Volatile because -> write only on handler, read from any thread - */ - private volatile Thread threadBuildingModels = null; -// ^^^^^^ reference java/lang/Thread# -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#threadBuildingModels. private Thread threadBuildingModels - /** - * Used to know that we should build models synchronously the first time. - *

- * Volatile because -> written from the build models thread, read from the main thread. - */ - private volatile boolean hasBuiltModelsEver; -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#hasBuiltModelsEver. private boolean hasBuiltModelsEver - - ////////////////////////////////////////////////////////////////////////////////////////// - - /* - * These fields are expected to only be used on the model building thread so they are not - * synchronized. - */ - - /** Used to time operations and log their duration when in debug mode. */ - private Timer timer = NO_OP_TIMER; -// ^^^^^ reference com/airbnb/epoxy/Timer# -// ^^^^^ definition com/airbnb/epoxy/EpoxyController#timer. private Timer timer -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#NO_OP_TIMER. - private final ControllerHelper helper = getHelperForController(this); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ControllerHelper# -// ^^^^^^ definition com/airbnb/epoxy/EpoxyController#helper. private final ControllerHelper helper -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ControllerHelperLookup#getHelperForController(). - private ControllerModelList modelsBeingBuilt; -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ControllerModelList# -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. private ControllerModelList modelsBeingBuilt - private List modelInterceptorCallbacks; -// ^^^^ reference java/util/List# -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#ModelInterceptorCallback# -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#modelInterceptorCallbacks. private List modelInterceptorCallbacks - private EpoxyModel stagedModel; -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#stagedModel. private EpoxyModel stagedModel - - ////////////////////////////////////////////////////////////////////////////////////////// - - public EpoxyController() { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#``(). public EpoxyController() - this(defaultModelBuildingHandler, defaultDiffingHandler); -// ^^^^ reference com/airbnb/epoxy/EpoxyController#``(+1). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#defaultModelBuildingHandler. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#defaultDiffingHandler. - } - - public EpoxyController(Handler modelBuildingHandler, Handler diffingHandler) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#``(+1). public EpoxyController(unresolved_type modelBuildingHandler, unresolved_type diffingHandler) -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^^ definition local0 unresolved_type modelBuildingHandler -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^ definition local1 unresolved_type diffingHandler - adapter = new EpoxyControllerAdapter(this, diffingHandler); -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#``(). -// ^^^^^^^^^^^^^^ reference local1 - modelBuildHandler = modelBuildingHandler; -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelBuildHandler. -// ^^^^^^^^^^^^^^^^^^^^ reference local0 - setDebugLoggingEnabled(globalDebugLoggingEnabled); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#setDebugLoggingEnabled(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#globalDebugLoggingEnabled. - } - - /** - * Posting and canceling runnables is a bit expensive - it is synchronizes and iterates the - * list of runnables. We want clients to be able to request model builds as often as they want and - * have it act as a no-op if one is already requested, without being a performance hit. To do that - * we track whether we have a call to build models posted already so we can avoid canceling a - * current call and posting it again. - */ - @RequestedModelBuildType private volatile int requestedModelBuildType = -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType# -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#requestedModelBuildType. @RequestedModelBuildType private int requestedModelBuildType - RequestedModelBuildType.NONE; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType# -// ^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#NONE. - - @Retention(RetentionPolicy.SOURCE) -// ^^^^^^^^^ reference java/lang/annotation/Retention# -// ^^^^^^^^^^^^^^^ reference java/lang/annotation/RetentionPolicy# -// ^^^^^^ reference java/lang/annotation/RetentionPolicy#SOURCE. - @IntDef({RequestedModelBuildType.NONE, -// ^^^^^^ reference androidx/annotation/IntDef# -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType# -// ^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#NONE. - RequestedModelBuildType.NEXT_FRAME, -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#NEXT_FRAME. - RequestedModelBuildType.DELAYED}) -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType# -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#DELAYED. - private @interface RequestedModelBuildType { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#RequestedModelBuildType# @Retention(RetentionPolicy.SOURCE) @IntDef({RequestedModelBuildType.NONE, RequestedModelBuildType.NEXT_FRAME, RequestedModelBuildType.DELAYED}) private @interface RequestedModelBuildType - int NONE = 0; -// ^^^^ definition com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#NONE. public static final int NONE - /** A request has been made to build models immediately. It is posted. */ - int NEXT_FRAME = 1; -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#NEXT_FRAME. public static final int NEXT_FRAME - /** A request has been made to build models after a delay. It is post delayed. */ - int DELAYED = 2; -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#DELAYED. public static final int DELAYED - } - - /** - * Call this to request a model update. The controller will schedule a call to {@link - * #buildModels()} so that models can be rebuilt for the current data. Once a build is requested - * all subsequent requests are ignored until the model build runs. Therefore, the calling code - * need not worry about calling this multiple times in a row. - *

- * The exception is that the first time this is called on a new instance of {@link - * EpoxyController} it is run synchronously. This allows state to be restored and the initial view - * to be draw quicker. - *

- * If you would like to be alerted when models have finished building use - * {@link #addModelBuildListener(OnModelBuildFinishedListener)} - */ - public void requestModelBuild() { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#requestModelBuild(). public void requestModelBuild() - if (isBuildingModels()) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#isBuildingModels(). - throw new IllegalEpoxyUsage("Cannot call `requestModelBuild` from inside `buildModels`"); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IllegalEpoxyUsage#``(). - } - - // If it is the first time building models then we do it right away, otherwise we post the call. - // We want to do it right away the first time so that scroll position can be restored correctly, - // shared element transitions aren't delayed, and content is shown asap. We post later calls - // so that they are debounced, and so any updates to data can be completely finished before - // the models are built. - if (hasBuiltModelsEver) { -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#hasBuiltModelsEver. - requestDelayedModelBuild(0); -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestDelayedModelBuild(). - } else { - buildModelsRunnable.run(); -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#buildModelsRunnable. -// ^^^ reference java/lang/Runnable#run(). - } - } - - /** - * Whether an update to models is currently pending. This can either be because - * {@link #requestModelBuild()} was called, or because models are currently being built or diff - * on a background thread. - */ - public boolean hasPendingModelBuild() { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#hasPendingModelBuild(). public boolean hasPendingModelBuild() - return requestedModelBuildType != RequestedModelBuildType.NONE // model build is posted -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestedModelBuildType. -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType# -// ^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#NONE. - || threadBuildingModels != null // model build is in progress -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#threadBuildingModels. - || adapter.isDiffInProgress(); // Diff in progress -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#isDiffInProgress(). - } - - /** - * Add a listener that will be called every time {@link #buildModels()} has finished running - * and changes have been dispatched to the RecyclerView. - *

- * Since buildModels can be called once for many calls to {@link #requestModelBuild()}, this is - * called just once for each buildModels execution, not for every request. - *

- * Use this to react to changes in your models that need to happen after the RecyclerView has - * been notified, such as scrolling. - */ - public void addModelBuildListener(OnModelBuildFinishedListener listener) { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#addModelBuildListener(). public void addModelBuildListener(OnModelBuildFinishedListener listener) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/OnModelBuildFinishedListener# -// ^^^^^^^^ definition local2 OnModelBuildFinishedListener listener - adapter.addModelBuildListener(listener); -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#addModelBuildListener(). -// ^^^^^^^^ reference local2 - } - - /** - * Remove a listener added with {@link #addModelBuildListener(OnModelBuildFinishedListener)}. - * This is safe to call from inside the callback - * {@link OnModelBuildFinishedListener#onModelBuildFinished(DiffResult)} - */ - public void removeModelBuildListener(OnModelBuildFinishedListener listener) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#removeModelBuildListener(). public void removeModelBuildListener(OnModelBuildFinishedListener listener) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/OnModelBuildFinishedListener# -// ^^^^^^^^ definition local3 OnModelBuildFinishedListener listener - adapter.removeModelBuildListener(listener); -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#removeModelBuildListener(). -// ^^^^^^^^ reference local3 - } - - /** - * Call this to request a delayed model update. The controller will schedule a call to {@link - * #buildModels()} so that models can be rebuilt for the current data. - *

- * Using this to delay a model update may be helpful in cases where user input is causing many - * rapid changes in the models, such as typing. In that case, the view is already updated on - * screen and constantly rebuilding models is potentially slow and unnecessary. The downside to - * delaying the model build too long is that models will not be in sync with the data or view, and - * scrolling the view offscreen and back onscreen will cause the model to bind old data. - *

- * If a previous request is still pending it will be removed in favor of this new delay - *

- * Any call to {@link #requestModelBuild()} will override a delayed request. - *

- * In most cases you should use {@link #requestModelBuild()} instead of this. - * - * @param delayMs The time in milliseconds to delay the model build by. Should be greater than or - * equal to 0. A value of 0 is equivalent to calling {@link #requestModelBuild()} - */ - public synchronized void requestDelayedModelBuild(int delayMs) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#requestDelayedModelBuild(). public void requestDelayedModelBuild(int delayMs) -// ^^^^^^^ definition local4 int delayMs - if (isBuildingModels()) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#isBuildingModels(). - throw new IllegalEpoxyUsage( -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IllegalEpoxyUsage#``(). - "Cannot call `requestDelayedModelBuild` from inside `buildModels`"); - } - - if (requestedModelBuildType == RequestedModelBuildType.DELAYED) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestedModelBuildType. -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType# -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#DELAYED. - cancelPendingModelBuild(); -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#cancelPendingModelBuild(). - } else if (requestedModelBuildType == RequestedModelBuildType.NEXT_FRAME) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestedModelBuildType. -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#NEXT_FRAME. - return; - } - - requestedModelBuildType = -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestedModelBuildType. - delayMs == 0 ? RequestedModelBuildType.NEXT_FRAME : RequestedModelBuildType.DELAYED; -// ^^^^^^^ reference local4 -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#NEXT_FRAME. -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType# -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#DELAYED. - - modelBuildHandler.postDelayed(buildModelsRunnable, delayMs); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelBuildHandler. -// ^^^^^^^^^^^ reference postDelayed# -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#buildModelsRunnable. -// ^^^^^^^ reference local4 - } - - /** - * Cancels a pending call to {@link #buildModels()} if one has been queued by {@link - * #requestModelBuild()}. - */ - public synchronized void cancelPendingModelBuild() { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#cancelPendingModelBuild(). public void cancelPendingModelBuild() - // Access to requestedModelBuildType is synchronized because the model building thread clears - // it when model building starts, and the main thread needs to set it to indicate a build - // request. - // Additionally, it is crucial to guarantee that the state of requestedModelBuildType is in sync - // with the modelBuildHandler, otherwise we could end up in a state where we think a model build - // is queued, but it isn't, and model building never happens - stuck forever. - if (requestedModelBuildType != RequestedModelBuildType.NONE) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestedModelBuildType. -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType# -// ^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#NONE. - requestedModelBuildType = RequestedModelBuildType.NONE; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestedModelBuildType. -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType# -// ^^^^ reference com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#NONE. - modelBuildHandler.removeCallbacks(buildModelsRunnable); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelBuildHandler. -// ^^^^^^^^^^^^^^^ reference removeCallbacks# -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#buildModelsRunnable. - } - } - - private final Runnable buildModelsRunnable = new Runnable() { -// ^^^^^^^^ reference java/lang/Runnable# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#buildModelsRunnable. private final Runnable buildModelsRunnable -// ^^^^^^^^ reference java/lang/Runnable# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void run() { -// ^^^ definition local7 @Override public void run() - // Do this first to mark the controller as being in the model building process. - threadBuildingModels = Thread.currentThread(); -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#threadBuildingModels. -// ^^^^^^ reference java/lang/Thread# -// ^^^^^^^^^^^^^ reference java/lang/Thread#currentThread(). - - // This is needed to reset the requestedModelBuildType back to NONE. - // As soon as we do this another model build can be posted. - cancelPendingModelBuild(); -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#cancelPendingModelBuild(). - - helper.resetAutoModels(); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyController#helper. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ControllerHelper#resetAutoModels(). - - modelsBeingBuilt = new ControllerModelList(getExpectedModelCount()); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ControllerModelList#``(). -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#getExpectedModelCount(). - - timer.start("Models built"); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#timer. -// ^^^^^ reference com/airbnb/epoxy/Timer#start(). - - // The user's implementation of buildModels is wrapped in a try/catch so that if it fails - // we can reset the state of this controller. This is useful when model building is done - // on a dedicated thread, which may have its own error handler, and a failure may not - // crash the app - in which case this controller would be in an invalid state and crash later - // with confusing errors because "threadBuildingModels" and other properties are not - // correctly set. This can happen particularly with Espresso testing. - try { - buildModels(); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#buildModels(). - } catch (Throwable throwable) { -// ^^^^^^^^^ reference java/lang/Throwable# -// ^^^^^^^^^ definition local8 Throwable throwable - timer.stop(); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#timer. -// ^^^^ reference com/airbnb/epoxy/Timer#stop(). - modelsBeingBuilt = null; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. - hasBuiltModelsEver = true; -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#hasBuiltModelsEver. - threadBuildingModels = null; -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#threadBuildingModels. - stagedModel = null; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#stagedModel. - throw throwable; -// ^^^^^^^^^ reference local8 - } - - addCurrentlyStagedModelIfExists(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#addCurrentlyStagedModelIfExists(). - timer.stop(); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#timer. -// ^^^^ reference com/airbnb/epoxy/Timer#stop(). - - runInterceptors(); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#runInterceptors(). - filterDuplicatesIfNeeded(modelsBeingBuilt); -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#filterDuplicatesIfNeeded(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. - modelsBeingBuilt.freeze(); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. -// ^^^^^^ reference com/airbnb/epoxy/ControllerModelList#freeze(). - - timer.start("Models diffed"); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#timer. -// ^^^^^ reference com/airbnb/epoxy/Timer#start(). - adapter.setModels(modelsBeingBuilt); -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#setModels(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. - // This timing is only right if diffing and model building are on the same thread - timer.stop(); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#timer. -// ^^^^ reference com/airbnb/epoxy/Timer#stop(). - - modelsBeingBuilt = null; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. - hasBuiltModelsEver = true; -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#hasBuiltModelsEver. - threadBuildingModels = null; -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#threadBuildingModels. - } - }; - - /** An estimate for how many models will be built in the next {@link #buildModels()} phase. */ - private int getExpectedModelCount() { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#getExpectedModelCount(). private int getExpectedModelCount() - int currentModelCount = adapter.getItemCount(); -// ^^^^^^^^^^^^^^^^^ definition local9 int currentModelCount -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#getItemCount(). - return currentModelCount != 0 ? currentModelCount : 25; -// ^^^^^^^^^^^^^^^^^ reference local9 -// ^^^^^^^^^^^^^^^^^ reference local9 - } - - /** - * Subclasses should implement this to describe what models should be shown for the current state. - * Implementations should call either {@link #add(EpoxyModel)}, {@link - * EpoxyModel#addTo(EpoxyController)}, or {@link EpoxyModel#addIf(boolean, EpoxyController)} with - * the models that should be shown, in the order that is desired. - *

- * Once a model is added to the controller it should be treated as immutable and never modified - * again. This is necessary for adapter updates to be accurate. If "validateEpoxyModelUsage" is - * enabled then runtime validations will be done to make sure models are not changed. - *

- * You CANNOT call this method directly. Instead, call {@link #requestModelBuild()} to have the - * controller schedule an update. - */ - protected abstract void buildModels(); -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#buildModels(). protected abstract void buildModels() - - int getFirstIndexOfModelInBuildingList(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#getFirstIndexOfModelInBuildingList(). int getFirstIndexOfModelInBuildingList(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local10 EpoxyModel model - assertIsBuildingModels(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#assertIsBuildingModels(). - - int size = modelsBeingBuilt.size(); -// ^^^^ definition local11 int size -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. -// ^^^^ reference java/util/ArrayList#size(). - for (int i = 0; i < size; i++) { -// ^ definition local12 int i -// ^ reference local12 -// ^^^^ reference local11 -// ^ reference local12 - if (modelsBeingBuilt.get(i) == model) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. -// ^^^ reference java/util/ArrayList#get(). -// ^ reference local12 -// ^^^^^ reference local10 - return i; -// ^ reference local12 - } - } - - return -1; - } - - boolean isModelAddedMultipleTimes(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#isModelAddedMultipleTimes(). boolean isModelAddedMultipleTimes(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local13 EpoxyModel model - assertIsBuildingModels(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#assertIsBuildingModels(). - - int modelCount = 0; -// ^^^^^^^^^^ definition local14 int modelCount - int size = modelsBeingBuilt.size(); -// ^^^^ definition local15 int size -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. -// ^^^^ reference java/util/ArrayList#size(). - for (int i = 0; i < size; i++) { -// ^ definition local16 int i -// ^ reference local16 -// ^^^^ reference local15 -// ^ reference local16 - if (modelsBeingBuilt.get(i) == model) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. -// ^^^ reference java/util/ArrayList#get(). -// ^ reference local16 -// ^^^^^ reference local13 - modelCount++; -// ^^^^^^^^^^ reference local14 - } - } - - return modelCount > 1; -// ^^^^^^^^^^ reference local14 - } - - void addAfterInterceptorCallback(ModelInterceptorCallback callback) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#addAfterInterceptorCallback(). void addAfterInterceptorCallback(ModelInterceptorCallback callback) -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#ModelInterceptorCallback# -// ^^^^^^^^ definition local17 ModelInterceptorCallback callback - assertIsBuildingModels(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#assertIsBuildingModels(). - - if (modelInterceptorCallbacks == null) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelInterceptorCallbacks. - modelInterceptorCallbacks = new ArrayList<>(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelInterceptorCallbacks. -// ^^^^^^^^^ reference java/util/ArrayList#``(+1). - } - - modelInterceptorCallbacks.add(callback); -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelInterceptorCallbacks. -// ^^^ reference java/util/List#add(). -// ^^^^^^^^ reference local17 - } - - /** - * Callbacks to each model for when interceptors are started and stopped, so the models know when - * to allow changes. - */ - interface ModelInterceptorCallback { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#ModelInterceptorCallback# interface ModelInterceptorCallback - void onInterceptorsStarted(EpoxyController controller); -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#ModelInterceptorCallback#onInterceptorsStarted(). public abstract void onInterceptorsStarted(EpoxyController controller) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local18 EpoxyController controller - void onInterceptorsFinished(EpoxyController controller); -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#ModelInterceptorCallback#onInterceptorsFinished(). public abstract void onInterceptorsFinished(EpoxyController controller) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local19 EpoxyController controller - } - - private void runInterceptors() { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#runInterceptors(). private void runInterceptors() - if (!interceptors.isEmpty()) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#interceptors. -// ^^^^^^^ reference java/util/List#isEmpty(). - if (modelInterceptorCallbacks != null) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelInterceptorCallbacks. - for (ModelInterceptorCallback callback : modelInterceptorCallbacks) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#ModelInterceptorCallback# -// ^^^^^^^^ definition local20 ModelInterceptorCallback callback -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelInterceptorCallbacks. - callback.onInterceptorsStarted(this); -// ^^^^^^^^ reference local20 -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#ModelInterceptorCallback#onInterceptorsStarted(). - } - } - - timer.start("Interceptors executed"); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#timer. -// ^^^^^ reference com/airbnb/epoxy/Timer#start(). - - for (Interceptor interceptor : interceptors) { -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#Interceptor# -// ^^^^^^^^^^^ definition local21 Interceptor interceptor -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#interceptors. - interceptor.intercept(modelsBeingBuilt); -// ^^^^^^^^^^^ reference local21 -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#Interceptor#intercept(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. - } - - timer.stop(); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#timer. -// ^^^^ reference com/airbnb/epoxy/Timer#stop(). - - if (modelInterceptorCallbacks != null) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelInterceptorCallbacks. - for (ModelInterceptorCallback callback : modelInterceptorCallbacks) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#ModelInterceptorCallback# -// ^^^^^^^^ definition local22 ModelInterceptorCallback callback -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelInterceptorCallbacks. - callback.onInterceptorsFinished(this); -// ^^^^^^^^ reference local22 -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#ModelInterceptorCallback#onInterceptorsFinished(). - } - } - } - - // Interceptors are cleared so that future model builds don't notify past models. - // We need to make sure they are cleared even if there are no interceptors so that - // we don't leak the models. - modelInterceptorCallbacks = null; -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelInterceptorCallbacks. - } - - /** A callback that is run after {@link #buildModels()} completes and before diffing is run. */ - public interface Interceptor { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#Interceptor# public interface Interceptor - /** - * This is called immediately after {@link #buildModels()} and before diffing is run and the - * models are set on the adapter. This is a final chance to make any changes to the the models - * added in {@link #buildModels()}. This may be useful for actions that act on all models in - * aggregate, such as toggling divider settings, or for cases such as rearranging models for an - * experiment. - *

- * The models list must not be changed after this method returns. Doing so will throw an - * exception. - */ - void intercept(@NonNull List> models); -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#Interceptor#intercept(). public abstract void intercept(List> models) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local23 @NonNull List> models - } - - /** - * Add an interceptor callback to be run after models are built, to make any last changes before - * they are set on the adapter. Interceptors are run in the order they are added. - *

- * Interceptors are run on the same thread that models are built on. - * - * @see Interceptor#intercept(List) - */ - public void addInterceptor(@NonNull Interceptor interceptor) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#addInterceptor(). public void addInterceptor(Interceptor interceptor) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#Interceptor# -// ^^^^^^^^^^^ definition local24 @NonNull Interceptor interceptor - interceptors.add(interceptor); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#interceptors. -// ^^^ reference java/util/List#add(). -// ^^^^^^^^^^^ reference local24 - } - - /** Remove an interceptor that was added with {@link #addInterceptor(Interceptor)}. */ - public void removeInterceptor(@NonNull Interceptor interceptor) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#removeInterceptor(). public void removeInterceptor(Interceptor interceptor) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#Interceptor# -// ^^^^^^^^^^^ definition local25 @NonNull Interceptor interceptor - interceptors.remove(interceptor); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#interceptors. -// ^^^^^^ reference java/util/List#remove(). -// ^^^^^^^^^^^ reference local25 - } - - /** - * Get the number of models added so far during the {@link #buildModels()} phase. It is only valid - * to call this from within that method. - *

- * This is different from the number of models currently on the adapter, since models on the - * adapter are not updated until after models are finished being built. To access current adapter - * count call {@link #getAdapter()} and {@link EpoxyControllerAdapter#getItemCount()} - */ - protected int getModelCountBuiltSoFar() { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#getModelCountBuiltSoFar(). protected int getModelCountBuiltSoFar() - assertIsBuildingModels(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#assertIsBuildingModels(). - return modelsBeingBuilt.size(); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. -// ^^^^ reference java/util/ArrayList#size(). - } - - private void assertIsBuildingModels() { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#assertIsBuildingModels(). private void assertIsBuildingModels() - if (!isBuildingModels()) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#isBuildingModels(). - throw new IllegalEpoxyUsage("Can only call this when inside the `buildModels` method"); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IllegalEpoxyUsage#``(). - } - } - - private void assertNotBuildingModels() { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#assertNotBuildingModels(). private void assertNotBuildingModels() - if (isBuildingModels()) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#isBuildingModels(). - throw new IllegalEpoxyUsage("Cannot call this from inside `buildModels`"); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IllegalEpoxyUsage#``(). - } - } - - /** - * Add the model to this controller. Can only be called from inside {@link - * EpoxyController#buildModels()}. - */ - public void add(@NonNull EpoxyModel model) { -// ^^^ definition com/airbnb/epoxy/EpoxyController#add(). public void add(EpoxyModel model) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local26 @NonNull EpoxyModel model - model.addTo(this); -// ^^^^^ reference local26 -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#addTo(). - } - - /** - * Add the models to this controller. Can only be called from inside {@link - * EpoxyController#buildModels()}. - */ - protected void add(@NonNull EpoxyModel... modelsToAdd) { -// ^^^ definition com/airbnb/epoxy/EpoxyController#add(+1). protected void add(EpoxyModel[] modelsToAdd) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition local27 @NonNull EpoxyModel[] modelsToAdd - modelsBeingBuilt.ensureCapacity(modelsBeingBuilt.size() + modelsToAdd.length); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. -// ^^^^^^^^^^^^^^ reference java/util/ArrayList#ensureCapacity(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. -// ^^^^ reference java/util/ArrayList#size(). -// ^^^^^^^^^^^ reference local27 -// ^^^^^^ reference length. - - for (EpoxyModel model : modelsToAdd) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local28 EpoxyModel model -// ^^^^^^^^^^^ reference local27 - add(model); -// ^^^ reference com/airbnb/epoxy/EpoxyController#add(). -// ^^^^^ reference local28 - } - } - - /** - * Add the models to this controller. Can only be called from inside {@link - * EpoxyController#buildModels()}. - */ - protected void add(@NonNull List> modelsToAdd) { -// ^^^ definition com/airbnb/epoxy/EpoxyController#add(+2). protected void add(List> modelsToAdd) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition local29 @NonNull List> modelsToAdd - modelsBeingBuilt.ensureCapacity(modelsBeingBuilt.size() + modelsToAdd.size()); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. -// ^^^^^^^^^^^^^^ reference java/util/ArrayList#ensureCapacity(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. -// ^^^^ reference java/util/ArrayList#size(). -// ^^^^^^^^^^^ reference local29 -// ^^^^ reference java/util/List#size(). - - for (EpoxyModel model : modelsToAdd) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local30 EpoxyModel model -// ^^^^^^^^^^^ reference local29 - add(model); -// ^^^ reference com/airbnb/epoxy/EpoxyController#add(). -// ^^^^^ reference local30 - } - } - - /** - * Method to actually add the model to the list being built. Should be called after all - * validations are done. - */ - void addInternal(EpoxyModel modelToAdd) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#addInternal(). void addInternal(EpoxyModel modelToAdd) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^ definition local31 EpoxyModel modelToAdd - assertIsBuildingModels(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#assertIsBuildingModels(). - - if (modelToAdd.hasDefaultId()) { -// ^^^^^^^^^^ reference local31 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#hasDefaultId(). - throw new IllegalEpoxyUsage( -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IllegalEpoxyUsage#``(). - "You must set an id on a model before adding it. Use the @AutoModel annotation if you " - + "want an id to be automatically generated for you."); - } - - if (!modelToAdd.isShown()) { -// ^^^^^^^^^^ reference local31 -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#isShown(). - throw new IllegalEpoxyUsage( -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IllegalEpoxyUsage#``(). - "You cannot hide a model in an EpoxyController. Use `addIf` to conditionally add a " - + "model instead."); - } - - // The model being added may not have been staged if it wasn't mutated before it was added. - // In that case we may have a previously staged model that still needs to be added. - clearModelFromStaging(modelToAdd); -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#clearModelFromStaging(). -// ^^^^^^^^^^ reference local31 - modelToAdd.controllerToStageTo = null; -// ^^^^^^^^^^ reference local31 -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#controllerToStageTo. - modelsBeingBuilt.add(modelToAdd); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#modelsBeingBuilt. -// ^^^ reference com/airbnb/epoxy/ModelList#add(). -// ^^^^^^^^^^ reference local31 - } - - /** - * Staging models allows them to be implicitly added after the user finishes modifying them. This - * means that if a user has modified a model, and then moves on to modifying a different model, - * the first model is automatically added as soon as the second model is modified. - *

- * There are some edge cases for handling models that are added without modification, or models - * that are modified but then fail an `addIf` check. - *

- * This only works for AutoModels, and only if implicitly adding is enabled in configuration. - */ - void setStagedModel(EpoxyModel model) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#setStagedModel(). void setStagedModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local32 EpoxyModel model - if (model != stagedModel) { -// ^^^^^ reference local32 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#stagedModel. - addCurrentlyStagedModelIfExists(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#addCurrentlyStagedModelIfExists(). - } - - stagedModel = model; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#stagedModel. -// ^^^^^ reference local32 - } - - void addCurrentlyStagedModelIfExists() { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#addCurrentlyStagedModelIfExists(). void addCurrentlyStagedModelIfExists() - if (stagedModel != null) { -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#stagedModel. - stagedModel.addTo(this); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#stagedModel. -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#addTo(). - } - stagedModel = null; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#stagedModel. - } - - void clearModelFromStaging(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#clearModelFromStaging(). void clearModelFromStaging(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local33 EpoxyModel model - if (stagedModel != model) { -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#stagedModel. -// ^^^^^ reference local33 - addCurrentlyStagedModelIfExists(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#addCurrentlyStagedModelIfExists(). - } - stagedModel = null; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#stagedModel. - } - - /** True if the current callstack originated from the buildModels call, on the same thread. */ - protected boolean isBuildingModels() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#isBuildingModels(). protected boolean isBuildingModels() - return threadBuildingModels == Thread.currentThread(); -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#threadBuildingModels. -// ^^^^^^ reference java/lang/Thread# -// ^^^^^^^^^^^^^ reference java/lang/Thread#currentThread(). - } - - private void filterDuplicatesIfNeeded(List> models) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#filterDuplicatesIfNeeded(). private void filterDuplicatesIfNeeded(List> models) -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local34 List> models - if (!filterDuplicates) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#filterDuplicates. - return; - } - - timer.start("Duplicates filtered"); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#timer. -// ^^^^^ reference com/airbnb/epoxy/Timer#start(). - Set modelIds = new HashSet<>(models.size()); -// ^^^ reference java/util/Set# -// ^^^^ reference java/lang/Long# -// ^^^^^^^^ definition local35 Set modelIds -// ^^^^^^^ reference java/util/HashSet#``(+3). -// ^^^^^^ reference local34 -// ^^^^ reference java/util/List#size(). - - ListIterator> modelIterator = models.listIterator(); -// ^^^^^^^^^^^^ reference java/util/ListIterator# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition local36 ListIterator> modelIterator -// ^^^^^^ reference local34 -// ^^^^^^^^^^^^ reference java/util/List#listIterator(). - while (modelIterator.hasNext()) { -// ^^^^^^^^^^^^^ reference local36 -// ^^^^^^^ reference java/util/ListIterator#hasNext(). - EpoxyModel model = modelIterator.next(); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local37 EpoxyModel model -// ^^^^^^^^^^^^^ reference local36 -// ^^^^ reference java/util/ListIterator#next(). - if (!modelIds.add(model.id())) { -// ^^^^^^^^ reference local35 -// ^^^ reference java/util/Set#add(). -// ^^^^^ reference local37 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). - int indexOfDuplicate = modelIterator.previousIndex(); -// ^^^^^^^^^^^^^^^^ definition local38 int indexOfDuplicate -// ^^^^^^^^^^^^^ reference local36 -// ^^^^^^^^^^^^^ reference java/util/ListIterator#previousIndex(). - modelIterator.remove(); -// ^^^^^^^^^^^^^ reference local36 -// ^^^^^^ reference java/util/ListIterator#remove(). - - int indexOfOriginal = findPositionOfDuplicate(models, model); -// ^^^^^^^^^^^^^^^ definition local39 int indexOfOriginal -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#findPositionOfDuplicate(). -// ^^^^^^ reference local34 -// ^^^^^ reference local37 - EpoxyModel originalModel = models.get(indexOfOriginal); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition local40 EpoxyModel originalModel -// ^^^^^^ reference local34 -// ^^^ reference java/util/List#get(). -// ^^^^^^^^^^^^^^^ reference local39 - if (indexOfDuplicate <= indexOfOriginal) { -// ^^^^^^^^^^^^^^^^ reference local38 -// ^^^^^^^^^^^^^^^ reference local39 - // Adjust for the original positions of the models before the duplicate was removed - indexOfOriginal++; -// ^^^^^^^^^^^^^^^ reference local39 - } - - onExceptionSwallowed( -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#onExceptionSwallowed(). - new IllegalEpoxyUsage("Two models have the same ID. ID's must be unique!" -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IllegalEpoxyUsage#``(). - + "\nOriginal has position " + indexOfOriginal + ":\n" + originalModel -// ^^^^^^^^^^^^^^^ reference local39 -// ^^^^^^^^^^^^^ reference local40 - + "\nDuplicate has position " + indexOfDuplicate + ":\n" + model) -// ^^^^^^^^^^^^^^^^ reference local38 -// ^^^^^ reference local37 - ); - } - } - - timer.stop(); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#timer. -// ^^^^ reference com/airbnb/epoxy/Timer#stop(). - } - - private int findPositionOfDuplicate(List> models, EpoxyModel duplicateModel) { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#findPositionOfDuplicate(). private int findPositionOfDuplicate(List> models, EpoxyModel duplicateModel) -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local41 List> models -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^ definition local42 EpoxyModel duplicateModel - int size = models.size(); -// ^^^^ definition local43 int size -// ^^^^^^ reference local41 -// ^^^^ reference java/util/List#size(). - for (int i = 0; i < size; i++) { -// ^ definition local44 int i -// ^ reference local44 -// ^^^^ reference local43 -// ^ reference local44 - EpoxyModel model = models.get(i); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local45 EpoxyModel model -// ^^^^^^ reference local41 -// ^^^ reference java/util/List#get(). -// ^ reference local44 - if (model.id() == duplicateModel.id()) { -// ^^^^^ reference local45 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). -// ^^^^^^^^^^^^^^ reference local42 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). - return i; -// ^ reference local44 - } - } - - throw new IllegalArgumentException("No duplicates in list"); -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalArgumentException#``(+1). - } - - /** - * If set to true, Epoxy will search for models with duplicate ids added during {@link - * #buildModels()} and remove any duplicates found. If models with the same id are found, the - * first one is left in the adapter and any subsequent models are removed. {@link - * #onExceptionSwallowed(RuntimeException)} will be called for each duplicate removed. - *

- * This may be useful if your models are created via server supplied data, in which case the - * server may erroneously send duplicate items. Duplicate items are otherwise left in and can - * result in undefined behavior. - */ - public void setFilterDuplicates(boolean filterDuplicates) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#setFilterDuplicates(). public void setFilterDuplicates(boolean filterDuplicates) -// ^^^^^^^^^^^^^^^^ definition local46 boolean filterDuplicates - this.filterDuplicates = filterDuplicates; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#filterDuplicates. -// ^^^^^^^^^^^^^^^^ reference local46 - } - - public boolean isDuplicateFilteringEnabled() { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#isDuplicateFilteringEnabled(). public boolean isDuplicateFilteringEnabled() - return filterDuplicates; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#filterDuplicates. - } - - /** - * {@link #setFilterDuplicates(boolean)} is disabled in each EpoxyController by default. It can be - * toggled individually in each controller, or alternatively you can use this to change the - * default value for all EpoxyControllers. - */ - public static void setGlobalDuplicateFilteringDefault(boolean filterDuplicatesByDefault) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#setGlobalDuplicateFilteringDefault(). public static void setGlobalDuplicateFilteringDefault(boolean filterDuplicatesByDefault) -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition local47 boolean filterDuplicatesByDefault - EpoxyController.filterDuplicatesDefault = filterDuplicatesByDefault; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#filterDuplicatesDefault. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference local47 - } - - /** - * If enabled, DEBUG logcat messages will be printed to show when models are rebuilt, the time - * taken to build them, the time taken to diff them, and the item change outcomes from the - * differ. The tag of the logcat message is the class name of your EpoxyController. - *

- * This is useful to verify that models are being diffed as expected, as well as to watch for - * slowdowns in model building or diffing to indicate when you should optimize model building or - * model hashCode/equals implementations (which can often slow down diffing). - *

- * This should only be used in debug builds to avoid a performance hit in prod. - */ - public void setDebugLoggingEnabled(boolean enabled) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#setDebugLoggingEnabled(). public void setDebugLoggingEnabled(boolean enabled) -// ^^^^^^^ definition local48 boolean enabled - assertNotBuildingModels(); -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#assertNotBuildingModels(). - - if (enabled) { -// ^^^^^^^ reference local48 - timer = new DebugTimer(getClass().getSimpleName()); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#timer. -// ^^^^^^^^^^ reference com/airbnb/epoxy/DebugTimer#``(). -// ^^^^^^^^ reference java/lang/Object#getClass(). -// ^^^^^^^^^^^^^ reference java/lang/Class#getSimpleName(). - if (debugObserver == null) { -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#debugObserver. - debugObserver = new EpoxyDiffLogger(getClass().getSimpleName()); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#debugObserver. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyDiffLogger#``(). -// ^^^^^^^^ reference java/lang/Object#getClass(). -// ^^^^^^^^^^^^^ reference java/lang/Class#getSimpleName(). - } - adapter.registerAdapterDataObserver(debugObserver); -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#registerAdapterDataObserver# -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#debugObserver. - } else { - timer = NO_OP_TIMER; -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#timer. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#NO_OP_TIMER. - if (debugObserver != null) { -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#debugObserver. - adapter.unregisterAdapterDataObserver(debugObserver); -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#unregisterAdapterDataObserver# -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#debugObserver. - } - } - } - - public boolean isDebugLoggingEnabled() { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#isDebugLoggingEnabled(). public boolean isDebugLoggingEnabled() - return timer != NO_OP_TIMER; -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#timer. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#NO_OP_TIMER. - } - - /** - * Similar to {@link #setDebugLoggingEnabled(boolean)}, but this changes the global default for - * all EpoxyControllers. - *

- * The default is false. - */ - public static void setGlobalDebugLoggingEnabled(boolean globalDebugLoggingEnabled) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#setGlobalDebugLoggingEnabled(). public static void setGlobalDebugLoggingEnabled(boolean globalDebugLoggingEnabled) -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition local49 boolean globalDebugLoggingEnabled - EpoxyController.globalDebugLoggingEnabled = globalDebugLoggingEnabled; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#globalDebugLoggingEnabled. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference local49 - } - - /** - * An optimized way to move a model from one position to another without rebuilding all models. - * This is intended to be used with {@link androidx.recyclerview.widget.ItemTouchHelper} to - * allow for efficient item dragging and rearranging. It cannot be - *

- * If you call this you MUST also update the data backing your models as necessary. - *

- * This will immediately change the model's position and notify the change to the RecyclerView. - * However, a delayed request to rebuild models will be scheduled for the future to guarantee that - * models are in sync with data. - * - * @param fromPosition Previous position of the item. - * @param toPosition New position of the item. - */ - public void moveModel(int fromPosition, int toPosition) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#moveModel(). public void moveModel(int fromPosition, int toPosition) -// ^^^^^^^^^^^^ definition local50 int fromPosition -// ^^^^^^^^^^ definition local51 int toPosition - assertNotBuildingModels(); -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#assertNotBuildingModels(). - - adapter.moveModel(fromPosition, toPosition); -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#moveModel(). -// ^^^^^^^^^^^^ reference local50 -// ^^^^^^^^^^ reference local51 - - requestDelayedModelBuild(500); -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestDelayedModelBuild(). - } - - - /** - * An way to notify the adapter that a model has changed. This is intended to be used with - * {@link androidx.recyclerview.widget.ItemTouchHelper} to allow revert swiping a model. - *

- * This will immediately notify the change to the RecyclerView. - * - * @param position Position of the item. - */ - public void notifyModelChanged(int position) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#notifyModelChanged(). public void notifyModelChanged(int position) -// ^^^^^^^^ definition local52 int position - assertNotBuildingModels(); -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#assertNotBuildingModels(). - - adapter.notifyModelChanged(position); -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#notifyModelChanged(). -// ^^^^^^^^ reference local52 - } - - - /** - * Get the underlying adapter built by this controller. Use this to get the adapter to set on a - * RecyclerView, or to get information about models currently in use. - */ - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - public EpoxyControllerAdapter getAdapter() { -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter# -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#getAdapter(). @NonNull public EpoxyControllerAdapter getAdapter() - return adapter; -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. - } - - public void onSaveInstanceState(@NonNull Bundle outState) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#onSaveInstanceState(). public void onSaveInstanceState(unresolved_type outState) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^ reference _root_/ -// ^^^^^^^^ definition local53 @NonNull unresolved_type outState - adapter.onSaveInstanceState(outState); -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#onSaveInstanceState(). -// ^^^^^^^^ reference local53 - } - - public void onRestoreInstanceState(@Nullable Bundle inState) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#onRestoreInstanceState(). public void onRestoreInstanceState(unresolved_type inState) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^ reference _root_/ -// ^^^^^^^ definition local54 @Nullable unresolved_type inState - adapter.onRestoreInstanceState(inState); -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#onRestoreInstanceState(). -// ^^^^^^^ reference local54 - } - - /** - * For use with a grid layout manager - use this to get the {@link SpanSizeLookup} for models in - * this controller. This will delegate span look up calls to each model's {@link - * EpoxyModel#getSpanSize(int, int, int)}. Make sure to also call {@link #setSpanCount(int)} so - * the span count is correct. - */ - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - public SpanSizeLookup getSpanSizeLookup() { -// ^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#getSpanSizeLookup(). @NonNull public unresolved_type getSpanSizeLookup() - return adapter.getSpanSizeLookup(); -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getSpanSizeLookup(). - } - - /** - * If you are using a grid layout manager you must call this to set the span count of the grid. - * This span count will be passed on to the models so models can choose which span count to be. - * - * @see #getSpanSizeLookup() - * @see EpoxyModel#getSpanSize(int, int, int) - */ - public void setSpanCount(int spanCount) { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#setSpanCount(). public void setSpanCount(int spanCount) -// ^^^^^^^^^ definition local55 int spanCount - adapter.setSpanCount(spanCount); -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#setSpanCount(). -// ^^^^^^^^^ reference local55 - } - - public int getSpanCount() { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#getSpanCount(). public int getSpanCount() - return adapter.getSpanCount(); -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getSpanCount(). - } - - public boolean isMultiSpan() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#isMultiSpan(). public boolean isMultiSpan() - return adapter.isMultiSpan(); -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyController#adapter. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#isMultiSpan(). - } - - /** - * This is called when recoverable exceptions occur at runtime. By default they are ignored and - * Epoxy will recover, but you can override this to be aware of when they happen. - *

- * A common use for this is being aware of duplicates when {@link #setFilterDuplicates(boolean)} - * is enabled. - *

- * By default the global exception handler provided by - * {@link #setGlobalExceptionHandler(ExceptionHandler)} - * is called with the exception. Overriding this allows you to provide your own handling for a - * controller. - */ - protected void onExceptionSwallowed(@NonNull RuntimeException exception) { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#onExceptionSwallowed(). protected void onExceptionSwallowed(RuntimeException exception) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^^ reference java/lang/RuntimeException# -// ^^^^^^^^^ definition local56 @NonNull RuntimeException exception - globalExceptionHandler.onException(this, exception); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#globalExceptionHandler. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#ExceptionHandler#onException(). -// ^^^^^^^^^ reference local56 - } - - /** - * Default handler for exceptions in all EpoxyControllers. Set with {@link - * #setGlobalExceptionHandler(ExceptionHandler)} - */ - private static ExceptionHandler globalExceptionHandler = -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#ExceptionHandler# -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#globalExceptionHandler. private static ExceptionHandler globalExceptionHandler - new ExceptionHandler() { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#ExceptionHandler# - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onException(@NonNull EpoxyController controller, -// ^^^^^^^^^^^ definition local59 @Override public void onException(EpoxyController controller, RuntimeException exception) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local60 @NonNull EpoxyController controller - @NonNull RuntimeException exception) { -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^^ reference java/lang/RuntimeException# -// ^^^^^^^^^ definition local61 @NonNull RuntimeException exception - // Ignore exceptions as the default - } - }; - - /** - * Set a callback to be notified when a recoverable exception occurs at runtime. By default these - * are ignored and Epoxy will recover, but you can override this to be aware of when they happen. - *

- * For example, you could choose to rethrow the exception in development builds, or log them in - * production. - *

- * A common use for this is being aware of duplicates when {@link #setFilterDuplicates(boolean)} - * is enabled. - *

- * This callback will be used in all EpoxyController classes. If you would like specific handling - * in a certain controller you can override {@link #onExceptionSwallowed(RuntimeException)} in - * that controller. - */ - public static void setGlobalExceptionHandler( -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#setGlobalExceptionHandler(). public static void setGlobalExceptionHandler(ExceptionHandler globalExceptionHandler) - @NonNull ExceptionHandler globalExceptionHandler) { -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#ExceptionHandler# -// ^^^^^^^^^^^^^^^^^^^^^^ definition local62 @NonNull ExceptionHandler globalExceptionHandler - EpoxyController.globalExceptionHandler = globalExceptionHandler; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#globalExceptionHandler. -// ^^^^^^^^^^^^^^^^^^^^^^ reference local62 - } - - public interface ExceptionHandler { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#ExceptionHandler# public interface ExceptionHandler - /** - * This is called when recoverable exceptions happen at runtime. They can be ignored and Epoxy - * will recover, but you can override this to be aware of when they happen. - *

- * For example, you could choose to rethrow the exception in development builds, or log them in - * production. - * - * @param controller The EpoxyController that the error occurred in. - */ - void onException(@NonNull EpoxyController controller, @NonNull RuntimeException exception); -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#ExceptionHandler#onException(). public abstract void onException(EpoxyController controller, RuntimeException exception) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local63 @NonNull EpoxyController controller -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^^ reference java/lang/RuntimeException# -// ^^^^^^^^^ definition local64 @NonNull RuntimeException exception - } - - void onAttachedToRecyclerViewInternal(RecyclerView recyclerView) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#onAttachedToRecyclerViewInternal(). void onAttachedToRecyclerViewInternal(unresolved_type recyclerView) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local65 unresolved_type recyclerView - recyclerViewAttachCount++; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#recyclerViewAttachCount. - - if (recyclerViewAttachCount > 1) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#recyclerViewAttachCount. - MainThreadExecutor.INSTANCE.handler.postDelayed(new Runnable() { -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/MainThreadExecutor# -// ^^^^^^^^ reference com/airbnb/epoxy/MainThreadExecutor#INSTANCE. -// ^^^^^^^ reference com/airbnb/epoxy/HandlerExecutor#handler. -// ^^^^^^^^^^^ reference postDelayed# -// ^^^^^^^^ reference java/lang/Runnable# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void run() { -// ^^^ definition local68 @Override public void run() - // Only warn if there are still multiple adapters attached after a delay, to allow for - // a grace period - if (recyclerViewAttachCount > 1) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#recyclerViewAttachCount. - onExceptionSwallowed(new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#onExceptionSwallowed(). -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "This EpoxyController had its adapter added to more than one ReyclerView. Epoxy " - + "does not support attaching an adapter to multiple RecyclerViews because " - + "saved state will not work properly. If you did not intend to attach your " - + "adapter " - + "to multiple RecyclerViews you may be leaking a " - + "reference to a previous RecyclerView. Make sure to remove the adapter from " - + "any " - + "previous RecyclerViews (eg if the adapter is reused in a Fragment across " - + "multiple onCreateView/onDestroyView cycles). See https://github" - + ".com/airbnb/epoxy/wiki/Avoiding-Memory-Leaks for more information.")); - } - } - }, DELAY_TO_CHECK_ADAPTER_COUNT_MS); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#DELAY_TO_CHECK_ADAPTER_COUNT_MS. - } - - onAttachedToRecyclerView(recyclerView); -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#onAttachedToRecyclerView(). -// ^^^^^^^^^^^^ reference local65 - } - - void onDetachedFromRecyclerViewInternal(RecyclerView recyclerView) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#onDetachedFromRecyclerViewInternal(). void onDetachedFromRecyclerViewInternal(unresolved_type recyclerView) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local69 unresolved_type recyclerView - recyclerViewAttachCount--; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#recyclerViewAttachCount. - onDetachedFromRecyclerView(recyclerView); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#onDetachedFromRecyclerView(). -// ^^^^^^^^^^^^ reference local69 - } - - /** Called when the controller's adapter is attach to a recyclerview. */ - protected void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#onAttachedToRecyclerView(). protected void onAttachedToRecyclerView(unresolved_type recyclerView) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local70 @NonNull unresolved_type recyclerView - - } - - /** Called when the controller's adapter is detached from a recyclerview. */ - protected void onDetachedFromRecyclerView(@NonNull RecyclerView recyclerView) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#onDetachedFromRecyclerView(). protected void onDetachedFromRecyclerView(unresolved_type recyclerView) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local71 @NonNull unresolved_type recyclerView - - } - - /** - * Called immediately after a model is bound to a view holder. Subclasses can override this if - * they want alerts on when a model is bound. Alternatively you may attach a listener directly to - * a generated model with model.onBind(...) - * - * @param previouslyBoundModel If non null, this is a model with the same id as the newly bound - * model, and was previously bound to a view. This means that {@link - * #buildModels()} returned a model that is different from the - * previouslyBoundModel and the view is being rebound to incorporate - * the change. You can compare this previous model with the new one to - * see exactly what changed. - *

- * The newly bound model and the previously bound model are guaranteed - * to have the same id, but will not necessarily be of the same type - * depending on your implementation of {@link #buildModels()}. With - * common usage patterns of Epoxy they should be the same type, and - * will only differ if you are using different model classes with the - * same id. - *

- * Comparing the newly bound model with the previous model allows you - * to be more intelligent when updating your view. This may help you - * optimize, or make it easier to work with animations. - *

- * If the new model and the previous model have the same view type - * (given by {@link EpoxyModel#getViewType()}), and if you are using - * the default ReyclerView item animator, the same view will be kept. - * If you are using a custom item animator then the view will be the - * same if the animator returns true in canReuseUpdatedViewHolder. - *

- * This previously bound model is taken as a payload from the diffing - * process, and follows the same general conditions for all - * recyclerview change payloads. - */ - protected void onModelBound(@NonNull EpoxyViewHolder holder, @NonNull EpoxyModel boundModel, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#onModelBound(). protected void onModelBound(EpoxyViewHolder holder, EpoxyModel boundModel, int position, EpoxyModel previouslyBoundModel) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local72 @NonNull EpoxyViewHolder holder -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^ definition local73 @NonNull EpoxyModel boundModel - int position, -// ^^^^^^^^ definition local74 int position - @Nullable EpoxyModel previouslyBoundModel) { -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^^ definition local75 @Nullable EpoxyModel previouslyBoundModel - } - - /** - * Called immediately after a model is unbound from a view holder. Subclasses can override this if - * they want alerts on when a model is unbound. Alternatively you may attach a listener directly - * to a generated model with model.onUnbind(...) - */ - protected void onModelUnbound(@NonNull EpoxyViewHolder holder, @NonNull EpoxyModel model) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#onModelUnbound(). protected void onModelUnbound(EpoxyViewHolder holder, EpoxyModel model) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local76 @NonNull EpoxyViewHolder holder -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local77 @NonNull EpoxyModel model - - } - - /** - * Called when the given viewholder is attached to the window, along with the model it is bound - * to. - * - * @see BaseEpoxyAdapter#onViewAttachedToWindow(EpoxyViewHolder) - */ - protected void onViewAttachedToWindow(@NonNull EpoxyViewHolder holder, -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#onViewAttachedToWindow(). protected void onViewAttachedToWindow(EpoxyViewHolder holder, EpoxyModel model) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local78 @NonNull EpoxyViewHolder holder - @NonNull EpoxyModel model) { -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local79 @NonNull EpoxyModel model - - } - - /** - * Called when the given viewholder is detechaed from the window, along with the model it is bound - * to. - * - * @see BaseEpoxyAdapter#onViewDetachedFromWindow(EpoxyViewHolder) - */ - protected void onViewDetachedFromWindow(@NonNull EpoxyViewHolder holder, -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#onViewDetachedFromWindow(). protected void onViewDetachedFromWindow(EpoxyViewHolder holder, EpoxyModel model) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local80 @NonNull EpoxyViewHolder holder - @NonNull EpoxyModel model) { -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local81 @NonNull EpoxyModel model - - } - - //region Sticky header - - /** - * Optional callback to setup the sticky view, - * by default it doesn't do anything. - * - * The sub-classes should override the function if they are - * using sticky header feature. - */ - @Override -// ^^^^^^^^ reference java/lang/Override# - public void setupStickyHeaderView(@NotNull View stickyHeader) { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#setupStickyHeaderView(). @Override public void setupStickyHeaderView(unresolved_type stickyHeader) -// ^^^^^^^ reference org/jetbrains/annotations/NotNull# -// ^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local82 @NotNull unresolved_type stickyHeader - // no-op - } - - /** - * Optional callback to perform tear down operation on the - * sticky view, by default it doesn't do anything. - * - * The sub-classes should override the function if they are - * using sticky header feature. - */ - @Override -// ^^^^^^^^ reference java/lang/Override# - public void teardownStickyHeaderView(@NotNull View stickyHeader) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#teardownStickyHeaderView(). @Override public void teardownStickyHeaderView(unresolved_type stickyHeader) -// ^^^^^^^ reference org/jetbrains/annotations/NotNull# -// ^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local83 @NotNull unresolved_type stickyHeader - // no-op - } - - /** - * Called to check if the item at the position is a sticky item, - * by default returns false. - * - * The sub-classes should override the function if they are - * using sticky header feature. - */ - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean isStickyHeader(int position) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyController#isStickyHeader(). @Override public boolean isStickyHeader(int position) -// ^^^^^^^^ definition local84 int position - return false; - } - - //endregion -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyControllerAdapter.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyControllerAdapter.java deleted file mode 100644 index 6175f6b13..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyControllerAdapter.java +++ /dev/null @@ -1,640 +0,0 @@ -package com.airbnb.epoxy; - -import android.os.Handler; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^^ reference android/os/Handler# -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# - -import com.airbnb.epoxy.AsyncEpoxyDiffer.ResultCallback; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer# -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#ResultCallback# - -import org.jetbrains.annotations.NotNull; -// ^^^ reference org/ -// ^^^^^^^^^ reference org/jetbrains/ -// ^^^^^^^^^^^ reference org/jetbrains/annotations/ -// ^^^^^^^ reference org/jetbrains/annotations/NotNull# - -import java.util.ArrayList; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^ reference java/util/ArrayList# -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.annotation.UiThread; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/UiThread# -import androidx.recyclerview.widget.DiffUtil.ItemCallback; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^ reference androidx/recyclerview/widget/DiffUtil/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/DiffUtil/ItemCallback# -import androidx.recyclerview.widget.RecyclerView; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView# - -public final class EpoxyControllerAdapter extends BaseEpoxyAdapter implements ResultCallback { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter# public final class EpoxyControllerAdapter -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter# -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#ResultCallback# - private final NotifyBlocker notifyBlocker = new NotifyBlocker(); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker# -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#notifyBlocker. private final NotifyBlocker notifyBlocker -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#``(). - private final AsyncEpoxyDiffer differ; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer# -// ^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#differ. private final AsyncEpoxyDiffer differ - private final EpoxyController epoxyController; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#epoxyController. private final EpoxyController epoxyController - private int itemCount; -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#itemCount. private int itemCount - private final List modelBuildListeners = new ArrayList<>(); -// ^^^^ reference java/util/List# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/OnModelBuildFinishedListener# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#modelBuildListeners. private final List modelBuildListeners -// ^^^^^^^^^ reference java/util/ArrayList#``(+1). - - EpoxyControllerAdapter(@NonNull EpoxyController epoxyController, Handler diffingHandler) { -//^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#``(). EpoxyControllerAdapter(EpoxyController epoxyController, unresolved_type diffingHandler) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^^^^^^ definition local0 @NonNull EpoxyController epoxyController -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^ definition local1 unresolved_type diffingHandler - this.epoxyController = epoxyController; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#epoxyController. -// ^^^^^^^^^^^^^^^ reference local0 - differ = new AsyncEpoxyDiffer( -// ^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#differ. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#``(). - diffingHandler, -// ^^^^^^^^^^^^^^ reference local1 - this, - ITEM_CALLBACK -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#ITEM_CALLBACK. - ); - registerAdapterDataObserver(notifyBlocker); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#registerAdapterDataObserver# -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#notifyBlocker. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected void onExceptionSwallowed(@NonNull RuntimeException exception) { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#onExceptionSwallowed(). @Override protected void onExceptionSwallowed(RuntimeException exception) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^^ reference java/lang/RuntimeException# -// ^^^^^^^^^ definition local2 @NonNull RuntimeException exception - epoxyController.onExceptionSwallowed(exception); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#epoxyController. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#onExceptionSwallowed(). -// ^^^^^^^^^ reference local2 - } - - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - @Override -// ^^^^^^^^ reference java/lang/Override# - List> getCurrentModels() { -//^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#getCurrentModels(). @NonNull @Override List> getCurrentModels() - return differ.getCurrentList(); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#differ. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#getCurrentList(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int getItemCount() { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#getItemCount(). @Override public int getItemCount() - // RecyclerView calls this A LOT. The base class implementation does - // getCurrentModels().size() which adds some overhead because of the method calls. - // We can easily memoize this, which seems to help when there are lots of models. - return itemCount; -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#itemCount. - } - - /** This is set from whatever thread model building happened on, so must be thread safe. */ - void setModels(@NonNull ControllerModelList models) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#setModels(). void setModels(ControllerModelList models) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ControllerModelList# -// ^^^^^^ definition local3 @NonNull ControllerModelList models - // If debug model validations are on then we should help detect the error case where models - // were incorrectly mutated once they were added. That check is also done before and after - // bind, but there is no other check after that to see if a model is incorrectly - // mutated after being bound. - // If a data class inside a model is mutated, then when models are rebuilt the differ - // will still recognize the old and new models as equal, even though the old model was changed. - // To help catch that error case we check for mutations here, before running the differ. - // - // https://github.com/airbnb/epoxy/issues/805 - List> currentModels = getCurrentModels(); -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition local4 List> currentModels -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#getCurrentModels(). - if (!currentModels.isEmpty() && currentModels.get(0).isDebugValidationEnabled()) { -// ^^^^^^^^^^^^^ reference local4 -// ^^^^^^^ reference java/util/List#isEmpty(). -// ^^^^^^^^^^^^^ reference local4 -// ^^^ reference java/util/List#get(). -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#isDebugValidationEnabled(). - for (int i = 0; i < currentModels.size(); i++) { -// ^ definition local5 int i -// ^ reference local5 -// ^^^^^^^^^^^^^ reference local4 -// ^^^^ reference java/util/List#size(). -// ^ reference local5 - EpoxyModel model = currentModels.get(i); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local6 EpoxyModel model -// ^^^^^^^^^^^^^ reference local4 -// ^^^ reference java/util/List#get(). -// ^ reference local5 - model.validateStateHasNotChangedSinceAdded( -// ^^^^^ reference local6 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#validateStateHasNotChangedSinceAdded(). - "The model was changed between being bound and when models were rebuilt", - i -// ^ reference local5 - ); - } - } - - differ.submitList(models); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#differ. -// ^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#submitList(). -// ^^^^^^ reference local3 - } - - /** - * @return True if a diff operation is in progress. - */ - public boolean isDiffInProgress() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#isDiffInProgress(). public boolean isDiffInProgress() - return differ.isDiffInProgress(); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#differ. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#isDiffInProgress(). - } - - // Called on diff results from the differ - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onResult(@NonNull DiffResult result) { -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#onResult(). @Override public void onResult(DiffResult result) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult# -// ^^^^^^ definition local7 @NonNull DiffResult result - itemCount = result.newModels.size(); -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#itemCount. -// ^^^^^^ reference local7 -// ^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#newModels. -// ^^^^ reference java/util/List#size(). - notifyBlocker.allowChanges(); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#notifyBlocker. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#allowChanges(). - result.dispatchTo(this); -// ^^^^^^ reference local7 -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult#dispatchTo(). - notifyBlocker.blockChanges(); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#notifyBlocker. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#blockChanges(). - - for (int i = modelBuildListeners.size() - 1; i >= 0; i--) { -// ^ definition local8 int i -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#modelBuildListeners. -// ^^^^ reference java/util/List#size(). -// ^ reference local8 -// ^ reference local8 - modelBuildListeners.get(i).onModelBuildFinished(result); -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#modelBuildListeners. -// ^^^ reference java/util/List#get(). -// ^ reference local8 -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/OnModelBuildFinishedListener#onModelBuildFinished(). -// ^^^^^^ reference local7 - } - } - - public void addModelBuildListener(OnModelBuildFinishedListener listener) { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#addModelBuildListener(). public void addModelBuildListener(OnModelBuildFinishedListener listener) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/OnModelBuildFinishedListener# -// ^^^^^^^^ definition local9 OnModelBuildFinishedListener listener - modelBuildListeners.add(listener); -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#modelBuildListeners. -// ^^^ reference java/util/List#add(). -// ^^^^^^^^ reference local9 - } - - public void removeModelBuildListener(OnModelBuildFinishedListener listener) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#removeModelBuildListener(). public void removeModelBuildListener(OnModelBuildFinishedListener listener) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/OnModelBuildFinishedListener# -// ^^^^^^^^ definition local10 OnModelBuildFinishedListener listener - modelBuildListeners.remove(listener); -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#modelBuildListeners. -// ^^^^^^ reference java/util/List#remove(). -// ^^^^^^^^ reference local10 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - boolean diffPayloadsEnabled() { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#diffPayloadsEnabled(). @Override boolean diffPayloadsEnabled() - return true; - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onAttachedToRecyclerView(@NonNull RecyclerView recyclerView) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#onAttachedToRecyclerView(). @Override public void onAttachedToRecyclerView(unresolved_type recyclerView) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local11 @NonNull unresolved_type recyclerView - super.onAttachedToRecyclerView(recyclerView); -// ^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#super. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#onAttachedToRecyclerView# -// ^^^^^^^^^^^^ reference local11 - epoxyController.onAttachedToRecyclerViewInternal(recyclerView); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#epoxyController. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#onAttachedToRecyclerViewInternal(). -// ^^^^^^^^^^^^ reference local11 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onDetachedFromRecyclerView(@NonNull RecyclerView recyclerView) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#onDetachedFromRecyclerView(). @Override public void onDetachedFromRecyclerView(unresolved_type recyclerView) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local12 @NonNull unresolved_type recyclerView - super.onDetachedFromRecyclerView(recyclerView); -// ^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#super. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#onDetachedFromRecyclerView(). -// ^^^^^^^^^^^^ reference local12 - epoxyController.onDetachedFromRecyclerViewInternal(recyclerView); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#epoxyController. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#onDetachedFromRecyclerViewInternal(). -// ^^^^^^^^^^^^ reference local12 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onViewAttachedToWindow(@NonNull EpoxyViewHolder holder) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#onViewAttachedToWindow(). @Override public void onViewAttachedToWindow(EpoxyViewHolder holder) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local13 @NonNull EpoxyViewHolder holder - super.onViewAttachedToWindow(holder); -// ^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#super. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#onViewAttachedToWindow(). -// ^^^^^^ reference local13 - epoxyController.onViewAttachedToWindow(holder, holder.getModel()); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#epoxyController. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#onViewAttachedToWindow(). -// ^^^^^^ reference local13 -// ^^^^^^ reference local13 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onViewDetachedFromWindow(@NonNull EpoxyViewHolder holder) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#onViewDetachedFromWindow(). @Override public void onViewDetachedFromWindow(EpoxyViewHolder holder) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local14 @NonNull EpoxyViewHolder holder - super.onViewDetachedFromWindow(holder); -// ^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#super. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#onViewDetachedFromWindow(). -// ^^^^^^ reference local14 - epoxyController.onViewDetachedFromWindow(holder, holder.getModel()); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#epoxyController. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#onViewDetachedFromWindow(). -// ^^^^^^ reference local14 -// ^^^^^^ reference local14 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected void onModelBound(@NonNull EpoxyViewHolder holder, @NonNull EpoxyModel model, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#onModelBound(). @Override protected void onModelBound(EpoxyViewHolder holder, EpoxyModel model, int position, EpoxyModel previouslyBoundModel) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local15 @NonNull EpoxyViewHolder holder -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local16 @NonNull EpoxyModel model - int position, @Nullable EpoxyModel previouslyBoundModel) { -// ^^^^^^^^ definition local17 int position -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^^ definition local18 @Nullable EpoxyModel previouslyBoundModel - epoxyController.onModelBound(holder, model, position, previouslyBoundModel); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#epoxyController. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#onModelBound(). -// ^^^^^^ reference local15 -// ^^^^^ reference local16 -// ^^^^^^^^ reference local17 -// ^^^^^^^^^^^^^^^^^^^^ reference local18 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected void onModelUnbound(@NonNull EpoxyViewHolder holder, @NonNull EpoxyModel model) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#onModelUnbound(). @Override protected void onModelUnbound(EpoxyViewHolder holder, EpoxyModel model) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local19 @NonNull EpoxyViewHolder holder -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local20 @NonNull EpoxyModel model - epoxyController.onModelUnbound(holder, model); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#epoxyController. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#onModelUnbound(). -// ^^^^^^ reference local19 -// ^^^^^ reference local20 - } - - /** Get an unmodifiable copy of the current models set on the adapter. */ - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - public List> getCopyOfModels() { -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#getCopyOfModels(). @NonNull public List> getCopyOfModels() - //noinspection unchecked - return (List>) getCurrentModels(); -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#getCurrentModels(). - } - - /** - * @throws IndexOutOfBoundsException If the given position is out of range of the current model - * list. - */ - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - public EpoxyModel getModelAtPosition(int position) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#getModelAtPosition(). @NonNull public EpoxyModel getModelAtPosition(int position) -// ^^^^^^^^ definition local21 int position - return getCurrentModels().get(position); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#getCurrentModels(). -// ^^^ reference java/util/List#get(). -// ^^^^^^^^ reference local21 - } - - /** - * Searches the current model list for the model with the given id. Returns the matching model if - * one is found, otherwise null is returned. - */ - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - public EpoxyModel getModelById(long id) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#getModelById(). @Nullable public EpoxyModel getModelById(long id) -// ^^ definition local22 long id - for (EpoxyModel model : getCurrentModels()) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local23 EpoxyModel model -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#getCurrentModels(). - if (model.id() == id) { -// ^^^^^ reference local23 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). -// ^^ reference local22 - return model; -// ^^^^^ reference local23 - } - } - - return null; - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int getModelPosition(@NonNull EpoxyModel targetModel) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#getModelPosition(). @Override public int getModelPosition(EpoxyModel targetModel) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition local24 @NonNull EpoxyModel targetModel - int size = getCurrentModels().size(); -// ^^^^ definition local25 int size -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#getCurrentModels(). -// ^^^^ reference java/util/List#size(). - for (int i = 0; i < size; i++) { -// ^ definition local26 int i -// ^ reference local26 -// ^^^^ reference local25 -// ^ reference local26 - EpoxyModel model = getCurrentModels().get(i); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local27 EpoxyModel model -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#getCurrentModels(). -// ^^^ reference java/util/List#get(). -// ^ reference local26 - if (model.id() == targetModel.id()) { -// ^^^^^ reference local27 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). -// ^^^^^^^^^^^ reference local24 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). - return i; -// ^ reference local26 - } - } - - return -1; - } - - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - @Override -// ^^^^^^^^ reference java/lang/Override# - public BoundViewHolders getBoundViewHolders() { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#getBoundViewHolders(). @NonNull @Override public BoundViewHolders getBoundViewHolders() - return super.getBoundViewHolders(); -// ^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#super. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getBoundViewHolders(). - } - - @UiThread -// ^^^^^^^^ reference androidx/annotation/UiThread# - void moveModel(int fromPosition, int toPosition) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#moveModel(). @UiThread void moveModel(int fromPosition, int toPosition) -// ^^^^^^^^^^^^ definition local28 int fromPosition -// ^^^^^^^^^^ definition local29 int toPosition - ArrayList> updatedList = new ArrayList<>(getCurrentModels()); -// ^^^^^^^^^ reference java/util/ArrayList# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition local30 ArrayList> updatedList -// ^^^^^^^^^ reference java/util/ArrayList#``(+2). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#getCurrentModels(). - - updatedList.add(toPosition, updatedList.remove(fromPosition)); -// ^^^^^^^^^^^ reference local30 -// ^^^ reference java/util/ArrayList#add(+1). -// ^^^^^^^^^^ reference local29 -// ^^^^^^^^^^^ reference local30 -// ^^^^^^ reference java/util/ArrayList#remove(). -// ^^^^^^^^^^^^ reference local28 - notifyBlocker.allowChanges(); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#notifyBlocker. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#allowChanges(). - notifyItemMoved(fromPosition, toPosition); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#notifyItemMoved# -// ^^^^^^^^^^^^ reference local28 -// ^^^^^^^^^^ reference local29 - notifyBlocker.blockChanges(); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#notifyBlocker. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#blockChanges(). - - boolean interruptedDiff = differ.forceListOverride(updatedList); -// ^^^^^^^^^^^^^^^ definition local31 boolean interruptedDiff -// ^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#differ. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#forceListOverride(). -// ^^^^^^^^^^^ reference local30 - - if (interruptedDiff) { -// ^^^^^^^^^^^^^^^ reference local31 - // The move interrupted a model rebuild/diff that was in progress, - // so models may be out of date and we should force them to rebuilt - epoxyController.requestModelBuild(); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#epoxyController. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestModelBuild(). - } - } - - @UiThread -// ^^^^^^^^ reference androidx/annotation/UiThread# - void notifyModelChanged(int position) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#notifyModelChanged(). @UiThread void notifyModelChanged(int position) -// ^^^^^^^^ definition local32 int position - ArrayList> updatedList = new ArrayList<>(getCurrentModels()); -// ^^^^^^^^^ reference java/util/ArrayList# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition local33 ArrayList> updatedList -// ^^^^^^^^^ reference java/util/ArrayList#``(+2). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#getCurrentModels(). - - notifyBlocker.allowChanges(); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#notifyBlocker. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#allowChanges(). - notifyItemChanged(position); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#notifyItemChanged# -// ^^^^^^^^ reference local32 - notifyBlocker.blockChanges(); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#notifyBlocker. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#blockChanges(). - - boolean interruptedDiff = differ.forceListOverride(updatedList); -// ^^^^^^^^^^^^^^^ definition local34 boolean interruptedDiff -// ^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#differ. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/AsyncEpoxyDiffer#forceListOverride(). -// ^^^^^^^^^^^ reference local33 - - if (interruptedDiff) { -// ^^^^^^^^^^^^^^^ reference local34 - // The move interrupted a model rebuild/diff that was in progress, - // so models may be out of date and we should force them to rebuilt - epoxyController.requestModelBuild(); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#epoxyController. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestModelBuild(). - } - } - - private static final ItemCallback> ITEM_CALLBACK = -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#ITEM_CALLBACK. private static final unresolved_type ITEM_CALLBACK - new ItemCallback>() { - @Override - public boolean areItemsTheSame(EpoxyModel oldItem, EpoxyModel newItem) { - return oldItem.id() == newItem.id(); - } - - @Override - public boolean areContentsTheSame(EpoxyModel oldItem, EpoxyModel newItem) { - return oldItem.equals(newItem); - } - - @Override - public Object getChangePayload(EpoxyModel oldItem, EpoxyModel newItem) { - return new DiffPayload(oldItem); - } - }; - - /** - * Delegates the callbacks received in the adapter - * to the controller. - */ - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean isStickyHeader(int position) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#isStickyHeader(). @Override public boolean isStickyHeader(int position) -// ^^^^^^^^ definition local35 int position - return epoxyController.isStickyHeader(position); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#epoxyController. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#isStickyHeader(). -// ^^^^^^^^ reference local35 - } - - /** - * Delegates the callbacks received in the adapter - * to the controller. - */ - @Override -// ^^^^^^^^ reference java/lang/Override# - public void setupStickyHeaderView(@NotNull View stickyHeader) { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#setupStickyHeaderView(). @Override public void setupStickyHeaderView(unresolved_type stickyHeader) -// ^^^^^^^ reference org/jetbrains/annotations/NotNull# -// ^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local36 @NotNull unresolved_type stickyHeader - epoxyController.setupStickyHeaderView(stickyHeader); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#epoxyController. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#setupStickyHeaderView(). -// ^^^^^^^^^^^^ reference local36 - } - - /** - * Delegates the callbacks received in the adapter - * to the controller. - */ - @Override -// ^^^^^^^^ reference java/lang/Override# - public void teardownStickyHeaderView(@NotNull View stickyHeader) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyControllerAdapter#teardownStickyHeaderView(). @Override public void teardownStickyHeaderView(unresolved_type stickyHeader) -// ^^^^^^^ reference org/jetbrains/annotations/NotNull# -// ^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local37 @NotNull unresolved_type stickyHeader - epoxyController.teardownStickyHeaderView(stickyHeader); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#epoxyController. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#teardownStickyHeaderView(). -// ^^^^^^^^^^^^ reference local37 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyDiffLogger.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyDiffLogger.java deleted file mode 100644 index a5c8b71f2..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyDiffLogger.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.airbnb.epoxy; - -import android.util.Log; -// ^^^^^^^ reference android/ -// ^^^^ reference android/util/ -// ^^^ reference android/util/Log# - -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView/ -// ^^^^^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView/AdapterDataObserver# - -/** - * This data observer can be registered with an Epoxy adapter or controller to log all item change - * events. This may be useful to use in debug builds in order to observe model updates and monitor - * for issues. - *

- * You may want to look for unexpected item updates to catch improper hashCode/equals - * implementations in your models. - *

- * Additionally, you may want to look for frequent or unnecessary updates as an opportunity for - * optimization. - */ -public class EpoxyDiffLogger extends AdapterDataObserver { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyDiffLogger# public class EpoxyDiffLogger -// ^^^^^^^^^^^^^^^^^^^ reference _root_/ - private final String tag; -// ^^^^^^ reference java/lang/String# -// ^^^ definition com/airbnb/epoxy/EpoxyDiffLogger#tag. private final String tag - - public EpoxyDiffLogger(String tag) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyDiffLogger#``(). public EpoxyDiffLogger(String tag) -// ^^^^^^ reference java/lang/String# -// ^^^ definition local0 String tag - this.tag = tag; -// ^^^ reference com/airbnb/epoxy/EpoxyDiffLogger#tag. -// ^^^ reference local0 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onItemRangeChanged(int positionStart, int itemCount) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyDiffLogger#onItemRangeChanged(). @Override public void onItemRangeChanged(int positionStart, int itemCount) -// ^^^^^^^^^^^^^ definition local1 int positionStart -// ^^^^^^^^^ definition local2 int itemCount - Log.d(tag, "Item range changed. Start: " + positionStart + " Count: " + itemCount); -// ^^^ reference _root_/ -// ^ reference d# -// ^^^ reference com/airbnb/epoxy/EpoxyDiffLogger#tag. -// ^^^^^^^^^^^^^ reference local1 -// ^^^^^^^^^ reference local2 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onItemRangeChanged(int positionStart, int itemCount, @Nullable Object payload) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyDiffLogger#onItemRangeChanged(+1). @Override public void onItemRangeChanged(int positionStart, int itemCount, Object payload) -// ^^^^^^^^^^^^^ definition local3 int positionStart -// ^^^^^^^^^ definition local4 int itemCount -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^ definition local5 @Nullable Object payload - if (payload == null) { -// ^^^^^^^ reference local5 - onItemRangeChanged(positionStart, itemCount); -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyDiffLogger#onItemRangeChanged(). -// ^^^^^^^^^^^^^ reference local3 -// ^^^^^^^^^ reference local4 - } else { - Log.d(tag, -// ^^^ reference _root_/ -// ^ reference d# -// ^^^ reference com/airbnb/epoxy/EpoxyDiffLogger#tag. - "Item range changed with payloads. Start: " + positionStart + " Count: " + itemCount); -// ^^^^^^^^^^^^^ reference local3 -// ^^^^^^^^^ reference local4 - } - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onItemRangeInserted(int positionStart, int itemCount) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyDiffLogger#onItemRangeInserted(). @Override public void onItemRangeInserted(int positionStart, int itemCount) -// ^^^^^^^^^^^^^ definition local6 int positionStart -// ^^^^^^^^^ definition local7 int itemCount - Log.d(tag, "Item range inserted. Start: " + positionStart + " Count: " + itemCount); -// ^^^ reference _root_/ -// ^ reference d# -// ^^^ reference com/airbnb/epoxy/EpoxyDiffLogger#tag. -// ^^^^^^^^^^^^^ reference local6 -// ^^^^^^^^^ reference local7 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onItemRangeRemoved(int positionStart, int itemCount) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyDiffLogger#onItemRangeRemoved(). @Override public void onItemRangeRemoved(int positionStart, int itemCount) -// ^^^^^^^^^^^^^ definition local8 int positionStart -// ^^^^^^^^^ definition local9 int itemCount - Log.d(tag, "Item range removed. Start: " + positionStart + " Count: " + itemCount); -// ^^^ reference _root_/ -// ^ reference d# -// ^^^ reference com/airbnb/epoxy/EpoxyDiffLogger#tag. -// ^^^^^^^^^^^^^ reference local8 -// ^^^^^^^^^ reference local9 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onItemRangeMoved(int fromPosition, int toPosition, int itemCount) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyDiffLogger#onItemRangeMoved(). @Override public void onItemRangeMoved(int fromPosition, int toPosition, int itemCount) -// ^^^^^^^^^^^^ definition local10 int fromPosition -// ^^^^^^^^^^ definition local11 int toPosition -// ^^^^^^^^^ definition local12 int itemCount - Log.d(tag, "Item moved. From: " + fromPosition + " To: " + toPosition); -// ^^^ reference _root_/ -// ^ reference d# -// ^^^ reference com/airbnb/epoxy/EpoxyDiffLogger#tag. -// ^^^^^^^^^^^^ reference local10 -// ^^^^^^^^^^ reference local11 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyDragCallback.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyDragCallback.java deleted file mode 100644 index 7dd27af1b..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyDragCallback.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.airbnb.epoxy; - -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# - -/** - * For use with {@link EpoxyModelTouchCallback} - */ -public interface EpoxyDragCallback extends BaseEpoxyTouchCallback { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyDragCallback# public interface EpoxyDragCallback -// ^ definition com/airbnb/epoxy/EpoxyDragCallback#[T] T extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyTouchCallback# -// ^ reference com/airbnb/epoxy/EpoxyDragCallback#[T] - - /** - * Called when the view switches from an idle state to a dragged state, as the user begins a drag - * interaction with it. You can use this callback to modify the view to indicate it is being - * dragged. - *

- * This is the first callback in the lifecycle of a drag event. - * - * @param model The model representing the view that is being dragged - * @param itemView The view that is being dragged - * @param adapterPosition The adapter position of the model - */ - void onDragStarted(T model, View itemView, int adapterPosition); -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyDragCallback#onDragStarted(). public abstract void onDragStarted(T model, unresolved_type itemView, int adapterPosition) -// ^ reference com/airbnb/epoxy/EpoxyDragCallback#[T] -// ^^^^^ definition local0 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local1 unresolved_type itemView -// ^^^^^^^^^^^^^^^ definition local2 int adapterPosition - - /** - * Called after {@link #onDragStarted(EpoxyModel, View, int)} when the dragged view is dropped to - * a new position. The EpoxyController will be updated automatically for you to reposition the - * models and notify the RecyclerView of the change. - *

- * You MUST use this callback to modify your data backing the models to reflect the change. - *

- * The next callback in the drag lifecycle will be {@link #onDragStarted(EpoxyModel, View, int)} - * - * @param modelBeingMoved The model representing the view that was moved - * @param itemView The view that was moved - * @param fromPosition The adapter position that the model came from - * @param toPosition The new adapter position of the model - */ - void onModelMoved(int fromPosition, int toPosition, T modelBeingMoved, View itemView); -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyDragCallback#onModelMoved(). public abstract void onModelMoved(int fromPosition, int toPosition, T modelBeingMoved, unresolved_type itemView) -// ^^^^^^^^^^^^ definition local3 int fromPosition -// ^^^^^^^^^^ definition local4 int toPosition -// ^ reference com/airbnb/epoxy/EpoxyDragCallback#[T] -// ^^^^^^^^^^^^^^^ definition local5 T modelBeingMoved -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local6 unresolved_type itemView - - /** - * Called after {@link #onDragStarted(EpoxyModel, View, int)} when the view being dragged is - * released. If the view was dragged to a new, valid location then {@link #onModelMoved(int, int, - * EpoxyModel, View)} will be called before this and the view will settle to the new location. - * Otherwise the view will animate back to its original position. - *

- * You can use this callback to modify the view as it animates back into position. - *

- * {@link BaseEpoxyTouchCallback#clearView(EpoxyModel, View)} will be called after this, when the - * view has finished animating. Final cleanup of the view should be done there. - * - * @param model The model representing the view that is being released - * @param itemView The view that was being dragged - */ - void onDragReleased(T model, View itemView); -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyDragCallback#onDragReleased(). public abstract void onDragReleased(T model, unresolved_type itemView) -// ^ reference com/airbnb/epoxy/EpoxyDragCallback#[T] -// ^^^^^ definition local7 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local8 unresolved_type itemView -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyHolder.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyHolder.java deleted file mode 100644 index b9ae644c3..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyHolder.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.airbnb.epoxy; - -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# -import android.view.ViewParent; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^^^^^^^ reference android/view/ViewParent# - -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# - -/** - * Used in conjunction with {@link com.airbnb.epoxy.EpoxyModelWithHolder} to provide a view holder - * pattern when binding to a model. - */ -public abstract class EpoxyHolder { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyHolder# public abstract class EpoxyHolder - - public EpoxyHolder(@NonNull ViewParent parent) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyHolder#``(). public EpoxyHolder(unresolved_type parent) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local0 @NonNull unresolved_type parent - this(); -// ^^^^ reference com/airbnb/epoxy/EpoxyHolder#``(+1). - } - - public EpoxyHolder() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyHolder#``(+1). public EpoxyHolder() - } - - /** - * Called when this holder is created, with the view that it should hold. You can use this - * opportunity to find views by id, and do any other initialization you need. This is called only - * once for the lifetime of the class. - * - * @param itemView A view inflated from the layout provided by - * {@link EpoxyModelWithHolder#getLayout()} - */ - protected abstract void bindView(@NonNull View itemView); -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyHolder#bindView(). protected abstract void bindView(unresolved_type itemView) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local1 @NonNull unresolved_type itemView -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyItemSpacingDecorator.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyItemSpacingDecorator.java deleted file mode 100644 index d77550993..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyItemSpacingDecorator.java +++ /dev/null @@ -1,470 +0,0 @@ -package com.airbnb.epoxy; - -import android.graphics.Rect; -// ^^^^^^^ reference android/ -// ^^^^^^^^ reference android/graphics/ -// ^^^^ reference android/graphics/Rect# -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# - -import androidx.annotation.Px; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^ reference androidx/annotation/Px# -import androidx.core.view.ViewCompat; -// ^^^^^^^^ reference androidx/ -// ^^^^ reference androidx/core/ -// ^^^^ reference androidx/core/view/ -// ^^^^^^^^^^ reference androidx/core/view/ViewCompat# -import androidx.recyclerview.widget.GridLayoutManager; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/GridLayoutManager# -import androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/GridLayoutManager/ -// ^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/GridLayoutManager/SpanSizeLookup# -import androidx.recyclerview.widget.LinearLayoutManager; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/LinearLayoutManager# -import androidx.recyclerview.widget.RecyclerView; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView# -import androidx.recyclerview.widget.RecyclerView.LayoutManager; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView/ -// ^^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView/LayoutManager# -import androidx.recyclerview.widget.RecyclerView.State; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView/ -// ^^^^^ reference androidx/recyclerview/widget/RecyclerView/State# - -/** - * Modifies item spacing in a recycler view so that items are equally spaced no matter where they - * are on the grid. Only designed to work with standard linear or grid layout managers. - */ -public class EpoxyItemSpacingDecorator extends RecyclerView.ItemDecoration { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator# public class EpoxyItemSpacingDecorator -// ^^^^^^^^^^^^ reference RecyclerView/ -// ^^^^^^^^^^^^^^ reference RecyclerView/ItemDecoration# - private int pxBetweenItems; -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#pxBetweenItems. private int pxBetweenItems - private boolean verticallyScrolling; -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#verticallyScrolling. private boolean verticallyScrolling - private boolean horizontallyScrolling; -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#horizontallyScrolling. private boolean horizontallyScrolling - private boolean firstItem; -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#firstItem. private boolean firstItem - private boolean lastItem; -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#lastItem. private boolean lastItem - private boolean grid; -// ^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#grid. private boolean grid - - private boolean isFirstItemInRow; -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#isFirstItemInRow. private boolean isFirstItemInRow - private boolean fillsLastSpan; -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#fillsLastSpan. private boolean fillsLastSpan - private boolean isInFirstRow; -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#isInFirstRow. private boolean isInFirstRow - private boolean isInLastRow; -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#isInLastRow. private boolean isInLastRow - - public EpoxyItemSpacingDecorator() { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#``(). public EpoxyItemSpacingDecorator() - this(0); -// ^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#``(+1). - } - - public EpoxyItemSpacingDecorator(@Px int pxBetweenItems) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#``(+1). public EpoxyItemSpacingDecorator(int pxBetweenItems) -// ^^ reference androidx/annotation/Px# -// ^^^^^^^^^^^^^^ definition local0 @Px int pxBetweenItems - setPxBetweenItems(pxBetweenItems); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#setPxBetweenItems(). -// ^^^^^^^^^^^^^^ reference local0 - } - - public void setPxBetweenItems(@Px int pxBetweenItems) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#setPxBetweenItems(). public void setPxBetweenItems(int pxBetweenItems) -// ^^ reference androidx/annotation/Px# -// ^^^^^^^^^^^^^^ definition local1 @Px int pxBetweenItems - this.pxBetweenItems = pxBetweenItems; -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#pxBetweenItems. -// ^^^^^^^^^^^^^^ reference local1 - } - - @Px -// ^^ reference androidx/annotation/Px# - public int getPxBetweenItems() { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#getPxBetweenItems(). @Px public int getPxBetweenItems() - return pxBetweenItems; -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#pxBetweenItems. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void getItemOffsets(Rect outRect, View view, RecyclerView parent, State state) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#getItemOffsets(). @Override public void getItemOffsets(unresolved_type outRect, unresolved_type view, unresolved_type parent, unresolved_type state) -// ^^^^ reference _root_/ -// ^^^^^^^ definition local2 unresolved_type outRect -// ^^^^ reference _root_/ -// ^^^^ definition local3 unresolved_type view -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local4 unresolved_type parent -// ^^^^^ reference _root_/ -// ^^^^^ definition local5 unresolved_type state - // Zero everything out for the common case - outRect.setEmpty(); -// ^^^^^^^ reference local2 -// ^^^^^^^^ reference setEmpty# - - int position = parent.getChildAdapterPosition(view); -// ^^^^^^^^ definition local6 int position -// ^^^^^^ reference local4 -// ^^^^^^^^^^^^^^^^^^^^^^^ reference getChildAdapterPosition# -// ^^^^ reference local3 - if (position == RecyclerView.NO_POSITION) { -// ^^^^^^^^ reference local6 -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^ reference NO_POSITION# - // View is not shown - return; - } - - RecyclerView.LayoutManager layout = parent.getLayoutManager(); -// ^^^^^^^^^^^^ reference RecyclerView/ -// ^^^^^^^^^^^^^ reference RecyclerView/LayoutManager# -// ^^^^^^ definition local7 unresolved_type layout -// ^^^^^^ reference local4 -// ^^^^^^^^^^^^^^^^ reference getLayoutManager# - calculatePositionDetails(parent, position, layout); -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#calculatePositionDetails(). -// ^^^^^^ reference local4 -// ^^^^^^^^ reference local6 -// ^^^^^^ reference local7 - - boolean left = useLeftPadding(); -// ^^^^ definition local8 boolean left -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#useLeftPadding(). - boolean right = useRightPadding(); -// ^^^^^ definition local9 boolean right -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#useRightPadding(). - boolean top = useTopPadding(); -// ^^^ definition local10 boolean top -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#useTopPadding(). - boolean bottom = useBottomPadding(); -// ^^^^^^ definition local11 boolean bottom -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#useBottomPadding(). - - if (shouldReverseLayout(layout, horizontallyScrolling)) { -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#shouldReverseLayout(). -// ^^^^^^ reference local7 -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#horizontallyScrolling. - if (horizontallyScrolling) { -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#horizontallyScrolling. - boolean temp = left; -// ^^^^ definition local12 boolean temp -// ^^^^ reference local8 - left = right; -// ^^^^ reference local8 -// ^^^^^ reference local9 - right = temp; -// ^^^^^ reference local9 -// ^^^^ reference local12 - } else { - boolean temp = top; -// ^^^^ definition local13 boolean temp -// ^^^ reference local10 - top = bottom; -// ^^^ reference local10 -// ^^^^^^ reference local11 - bottom = temp; -// ^^^^^^ reference local11 -// ^^^^ reference local13 - } - } - - // Divided by two because it is applied to the left side of one item and the right of another - // to add up to the total desired space - int padding = pxBetweenItems / 2; -// ^^^^^^^ definition local14 int padding -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#pxBetweenItems. - outRect.right = right ? padding : 0; -// ^^^^^^^ reference local2 -// ^^^^^ reference right# -// ^^^^^ reference local9 -// ^^^^^^^ reference local14 - outRect.left = left ? padding : 0; -// ^^^^^^^ reference local2 -// ^^^^ reference left# -// ^^^^ reference local8 -// ^^^^^^^ reference local14 - outRect.top = top ? padding : 0; -// ^^^^^^^ reference local2 -// ^^^ reference top# -// ^^^ reference local10 -// ^^^^^^^ reference local14 - outRect.bottom = bottom ? padding : 0; -// ^^^^^^^ reference local2 -// ^^^^^^ reference bottom# -// ^^^^^^ reference local11 -// ^^^^^^^ reference local14 - } - - private void calculatePositionDetails(RecyclerView parent, int position, LayoutManager layout) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#calculatePositionDetails(). private void calculatePositionDetails(unresolved_type parent, int position, unresolved_type layout) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local15 unresolved_type parent -// ^^^^^^^^ definition local16 int position -// ^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local17 unresolved_type layout - int itemCount = parent.getAdapter().getItemCount(); -// ^^^^^^^^^ definition local18 int itemCount -// ^^^^^^ reference local15 -// ^^^^^^^^^^ reference getAdapter# -// ^^^^^^^^^^^^ reference getAdapter#getItemCount# - firstItem = position == 0; -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#firstItem. -// ^^^^^^^^ reference local16 - lastItem = position == itemCount - 1; -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#lastItem. -// ^^^^^^^^ reference local16 -// ^^^^^^^^^ reference local18 - horizontallyScrolling = layout.canScrollHorizontally(); -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#horizontallyScrolling. -// ^^^^^^ reference local17 -// ^^^^^^^^^^^^^^^^^^^^^ reference canScrollHorizontally# - verticallyScrolling = layout.canScrollVertically(); -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#verticallyScrolling. -// ^^^^^^ reference local17 -// ^^^^^^^^^^^^^^^^^^^ reference canScrollVertically# - grid = layout instanceof GridLayoutManager; -// ^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#grid. -// ^^^^^^ reference local17 -// ^^^^^^^^^^^^^^^^^ reference _root_/ - - if (grid) { -// ^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#grid. - GridLayoutManager grid = (GridLayoutManager) layout; -// ^^^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^ definition local19 unresolved_type grid -// ^^^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ reference local17 - final SpanSizeLookup spanSizeLookup = grid.getSpanSizeLookup(); -// ^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^ definition local20 final unresolved_type spanSizeLookup -// ^^^^ reference local19 -// ^^^^^^^^^^^^^^^^^ reference getSpanSizeLookup# - int spanSize = spanSizeLookup.getSpanSize(position); -// ^^^^^^^^ definition local21 int spanSize -// ^^^^^^^^^^^^^^ reference local20 -// ^^^^^^^^^^^ reference getSpanSize# -// ^^^^^^^^ reference local16 - int spanCount = grid.getSpanCount(); -// ^^^^^^^^^ definition local22 int spanCount -// ^^^^ reference local19 -// ^^^^^^^^^^^^ reference getSpanCount# - int spanIndex = spanSizeLookup.getSpanIndex(position, spanCount); -// ^^^^^^^^^ definition local23 int spanIndex -// ^^^^^^^^^^^^^^ reference local20 -// ^^^^^^^^^^^^ reference getSpanIndex# -// ^^^^^^^^ reference local16 -// ^^^^^^^^^ reference local22 - isFirstItemInRow = spanIndex == 0; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#isFirstItemInRow. -// ^^^^^^^^^ reference local23 - fillsLastSpan = spanIndex + spanSize == spanCount; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#fillsLastSpan. -// ^^^^^^^^^ reference local23 -// ^^^^^^^^ reference local21 -// ^^^^^^^^^ reference local22 - isInFirstRow = isInFirstRow(position, spanSizeLookup, spanCount); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#isInFirstRow. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#isInFirstRow(). -// ^^^^^^^^ reference local16 -// ^^^^^^^^^^^^^^ reference local20 -// ^^^^^^^^^ reference local22 - isInLastRow = -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#isInLastRow. - !isInFirstRow && isInLastRow(position, itemCount, spanSizeLookup, spanCount); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#isInFirstRow. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#isInLastRow(). -// ^^^^^^^^ reference local16 -// ^^^^^^^^^ reference local18 -// ^^^^^^^^^^^^^^ reference local20 -// ^^^^^^^^^ reference local22 - } - } - - private static boolean shouldReverseLayout(LayoutManager layout, boolean horizontallyScrolling) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#shouldReverseLayout(). private static boolean shouldReverseLayout(unresolved_type layout, boolean horizontallyScrolling) -// ^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local24 unresolved_type layout -// ^^^^^^^^^^^^^^^^^^^^^ definition local25 boolean horizontallyScrolling - boolean reverseLayout = -// ^^^^^^^^^^^^^ definition local26 boolean reverseLayout - layout instanceof LinearLayoutManager && ((LinearLayoutManager) layout).getReverseLayout(); -// ^^^^^^ reference local24 -// ^^^^^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ reference local24 -// ^^^^^^^^^^^^^^^^ reference getReverseLayout# - boolean rtl = layout.getLayoutDirection() == ViewCompat.LAYOUT_DIRECTION_RTL; -// ^^^ definition local27 boolean rtl -// ^^^^^^ reference local24 -// ^^^^^^^^^^^^^^^^^^ reference getLayoutDirection# -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^^ reference LAYOUT_DIRECTION_RTL# - if (horizontallyScrolling && rtl) { -// ^^^^^^^^^^^^^^^^^^^^^ reference local25 -// ^^^ reference local27 - // This is how linearlayout checks if it should reverse layout in #resolveShouldLayoutReverse - reverseLayout = !reverseLayout; -// ^^^^^^^^^^^^^ reference local26 -// ^^^^^^^^^^^^^ reference local26 - } - - return reverseLayout; -// ^^^^^^^^^^^^^ reference local26 - } - - private boolean useBottomPadding() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#useBottomPadding(). private boolean useBottomPadding() - if (grid) { -// ^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#grid. - return (horizontallyScrolling && !fillsLastSpan) -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#horizontallyScrolling. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#fillsLastSpan. - || (verticallyScrolling && !isInLastRow); -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#verticallyScrolling. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#isInLastRow. - } - - return verticallyScrolling && !lastItem; -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#verticallyScrolling. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#lastItem. - } - - private boolean useTopPadding() { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#useTopPadding(). private boolean useTopPadding() - if (grid) { -// ^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#grid. - return (horizontallyScrolling && !isFirstItemInRow) -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#horizontallyScrolling. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#isFirstItemInRow. - || (verticallyScrolling && !isInFirstRow); -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#verticallyScrolling. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#isInFirstRow. - } - - return verticallyScrolling && !firstItem; -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#verticallyScrolling. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#firstItem. - } - - private boolean useRightPadding() { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#useRightPadding(). private boolean useRightPadding() - if (grid) { -// ^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#grid. - return (horizontallyScrolling && !isInLastRow) -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#horizontallyScrolling. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#isInLastRow. - || (verticallyScrolling && !fillsLastSpan); -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#verticallyScrolling. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#fillsLastSpan. - } - - return horizontallyScrolling && !lastItem; -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#horizontallyScrolling. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#lastItem. - } - - private boolean useLeftPadding() { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#useLeftPadding(). private boolean useLeftPadding() - if (grid) { -// ^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#grid. - return (horizontallyScrolling && !isInFirstRow) -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#horizontallyScrolling. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#isInFirstRow. - || (verticallyScrolling && !isFirstItemInRow); -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#verticallyScrolling. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#isFirstItemInRow. - } - - return horizontallyScrolling && !firstItem; -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#horizontallyScrolling. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyItemSpacingDecorator#firstItem. - } - - private static boolean isInFirstRow(int position, SpanSizeLookup spanSizeLookup, int spanCount) { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#isInFirstRow(). private static boolean isInFirstRow(int position, unresolved_type spanSizeLookup, int spanCount) -// ^^^^^^^^ definition local28 int position -// ^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^ definition local29 unresolved_type spanSizeLookup -// ^^^^^^^^^ definition local30 int spanCount - int totalSpan = 0; -// ^^^^^^^^^ definition local31 int totalSpan - for (int i = 0; i <= position; i++) { -// ^ definition local32 int i -// ^ reference local32 -// ^^^^^^^^ reference local28 -// ^ reference local32 - totalSpan += spanSizeLookup.getSpanSize(i); -// ^^^^^^^^^ reference local31 -// ^^^^^^^^^^^^^^ reference local29 -// ^^^^^^^^^^^ reference getSpanSize# -// ^ reference local32 - if (totalSpan > spanCount) { -// ^^^^^^^^^ reference local31 -// ^^^^^^^^^ reference local30 - return false; - } - } - - return true; - } - - private static boolean isInLastRow(int position, int itemCount, SpanSizeLookup spanSizeLookup, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyItemSpacingDecorator#isInLastRow(). private static boolean isInLastRow(int position, int itemCount, unresolved_type spanSizeLookup, int spanCount) -// ^^^^^^^^ definition local33 int position -// ^^^^^^^^^ definition local34 int itemCount -// ^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^ definition local35 unresolved_type spanSizeLookup - int spanCount) { -// ^^^^^^^^^ definition local36 int spanCount - int totalSpan = 0; -// ^^^^^^^^^ definition local37 int totalSpan - for (int i = itemCount - 1; i >= position; i--) { -// ^ definition local38 int i -// ^^^^^^^^^ reference local34 -// ^ reference local38 -// ^^^^^^^^ reference local33 -// ^ reference local38 - totalSpan += spanSizeLookup.getSpanSize(i); -// ^^^^^^^^^ reference local37 -// ^^^^^^^^^^^^^^ reference local35 -// ^^^^^^^^^^^ reference getSpanSize# -// ^ reference local38 - if (totalSpan > spanCount) { -// ^^^^^^^^^ reference local37 -// ^^^^^^^^^ reference local36 - return false; - } - } - - return true; - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModel.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModel.java deleted file mode 100644 index 976919ab8..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModel.java +++ /dev/null @@ -1,1080 +0,0 @@ -package com.airbnb.epoxy; - -import android.view.LayoutInflater; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^^^^^^^^^^^ reference android/view/LayoutInflater# -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# -import android.view.ViewGroup; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^^^^^^ reference android/view/ViewGroup# - -import com.airbnb.epoxy.EpoxyController.ModelInterceptorCallback; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#ModelInterceptorCallback# -import com.airbnb.epoxy.VisibilityState.Visibility; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState# -// ^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState#Visibility# - -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -import androidx.annotation.FloatRange; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^^ reference androidx/annotation/FloatRange# -import androidx.annotation.LayoutRes; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.annotation.Px; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^ reference androidx/annotation/Px# - -import static com.airbnb.epoxy.IdUtils.hashLong64Bit; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^ reference com/airbnb/epoxy/IdUtils# -import static com.airbnb.epoxy.IdUtils.hashString64Bit; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^ reference com/airbnb/epoxy/IdUtils# - -/** - * Helper to bind data to a view using a builder style. The parameterized type should extend - * Android's View or EpoxyHolder. - * - * @see EpoxyModelWithHolder - * @see EpoxyModelWithView - */ -public abstract class EpoxyModel { -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel# public abstract class EpoxyModel -// ^ definition com/airbnb/epoxy/EpoxyModel#[T] T - - /** - * Counts how many of these objects are created, so that each new object can have a unique id . - * Uses negative values so that these autogenerated ids don't clash with database ids that may be - * set with {@link #id(long)} - */ - private static long idCounter = -1; -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#idCounter. private static long idCounter - - /** - * An id that can be used to uniquely identify this {@link EpoxyModel} for use in RecyclerView - * stable ids. It defaults to a unique id for this object instance, if you want to maintain the - * same id across instances use {@link #id(long)} - */ - private long id; -// ^^ definition com/airbnb/epoxy/EpoxyModel#id. private long id - @LayoutRes private int layout; -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# -// ^^^^^^ definition com/airbnb/epoxy/EpoxyModel#layout. @LayoutRes private int layout - private boolean shown = true; -// ^^^^^ definition com/airbnb/epoxy/EpoxyModel#shown. private boolean shown - /** - * Set to true once this model is diffed in an adapter. Used to ensure that this model's id - * doesn't change after being diffed. - */ - boolean addedToAdapter; -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#addedToAdapter. boolean addedToAdapter - /** - * The first controller this model was added to. A reference is kept in debug mode in order to run - * validations. The model is allowed to be added to other controllers, but we only keep a - * reference to the first. - */ - private EpoxyController firstControllerAddedTo; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#firstControllerAddedTo. private EpoxyController firstControllerAddedTo - /** - * Models are staged when they are changed. This allows them to be automatically added when they - * are done being changed (eg the next model is changed/added or buildModels finishes). It is only - * allowed for AutoModels, and only if implicit adding is enabled. - */ - EpoxyController controllerToStageTo; -//^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#controllerToStageTo. EpoxyController controllerToStageTo - private boolean currentlyInInterceptors; -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#currentlyInInterceptors. private boolean currentlyInInterceptors - private int hashCodeWhenAdded; -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#hashCodeWhenAdded. private int hashCodeWhenAdded - private boolean hasDefaultId; -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#hasDefaultId. private boolean hasDefaultId - @Nullable private SpanSizeOverrideCallback spanSizeOverride; -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#SpanSizeOverrideCallback# -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#spanSizeOverride. @Nullable private SpanSizeOverrideCallback spanSizeOverride - - protected EpoxyModel(long id) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#``(). protected EpoxyModel(long id) -// ^^ definition local0 long id - id(id); -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(+1). -// ^^ reference local0 - } - - public EpoxyModel() { -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#``(+1). public EpoxyModel() - this(idCounter--); -// ^^^^ reference com/airbnb/epoxy/EpoxyModel#``(). -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#idCounter. - hasDefaultId = true; -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#hasDefaultId. - } - - boolean hasDefaultId() { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#hasDefaultId(). boolean hasDefaultId() - return hasDefaultId; -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#hasDefaultId. - } - - /** - * Get the view type to associate with this model in the recyclerview. For models that use a - * layout resource, the view type is simply the layout resource value by default. - *

- * If this returns 0 Epoxy will assign a unique view type for this model at run time. - * - * @see androidx.recyclerview.widget.RecyclerView.Adapter#getItemViewType(int) - */ - protected int getViewType() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#getViewType(). protected int getViewType() - return getLayout(); -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#getLayout(). - } - - /** - * Create and return a new instance of a view for this model. By default a view is created by - * inflating the layout resource. - */ - protected View buildView(@NonNull ViewGroup parent) { -// ^^^^ reference _root_/ -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#buildView(). protected unresolved_type buildView(unresolved_type parent) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local1 @NonNull unresolved_type parent - return LayoutInflater.from(parent.getContext()).inflate(getLayout(), parent, false); -// ^^^^^^^^^^^^^^ reference _root_/ -// ^^^^ reference from# -// ^^^^^^ reference local1 -// ^^^^^^^^^^ reference getContext# -// ^^^^^^^ reference ``#inflate# -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#getLayout(). -// ^^^^^^ reference local1 - } - - /** - * Binds the current data to the given view. You should bind all fields including unset/empty - * fields to ensure proper recycling. - */ - public void bind(@NonNull T view) { -// ^^^^ definition com/airbnb/epoxy/EpoxyModel#bind(). public void bind(T view) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^ definition local2 @NonNull T view - - } - - /** - * Similar to {@link #bind(Object)}, but provides a non null, non empty list of payloads - * describing what changed. This is the payloads list specified in the adapter's notifyItemChanged - * method. This is a useful optimization to allow you to only change part of a view instead of - * updating the whole thing, which may prevent unnecessary layout calls. If there are no payloads - * then {@link #bind(Object)} is called instead. This will only be used if the model is used with - * an {@link EpoxyAdapter} - */ - public void bind(@NonNull T view, @NonNull List payloads) { -// ^^^^ definition com/airbnb/epoxy/EpoxyModel#bind(+1). public void bind(T view, List payloads) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^ definition local3 @NonNull T view -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference java/util/List# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^ definition local4 @NonNull List payloads - bind(view); -// ^^^^ reference com/airbnb/epoxy/EpoxyModel#bind(). -// ^^^^ reference local3 - } - - /** - * Similar to {@link #bind(Object)}, but provides a non null model which was previously bound to - * this view. This will only be called if the model is used with an {@link EpoxyController}. - * - * @param previouslyBoundModel This is a model with the same id that was previously bound. You can - * compare this previous model with the current one to see exactly - * what changed. - *

- * This model and the previously bound model are guaranteed to have - * the same id, but will not necessarily be of the same type depending - * on your implementation of {@link EpoxyController#buildModels()}. - * With common usage patterns of Epoxy they should be the same type, - * and will only differ if you are using different model classes with - * the same id. - *

- * Comparing the newly bound model with the previous model allows you - * to be more intelligent when binding your view. This may help you - * optimize view binding, or make it easier to work with animations. - *

- * If the new model and the previous model have the same view type - * (given by {@link EpoxyModel#getViewType()}), and if you are using - * the default ReyclerView item animator, the same view will be - * reused. This means that you only need to update the view to reflect - * the data that changed. If you are using a custom item animator then - * the view will be the same if the animator returns true in - * canReuseUpdatedViewHolder. - *

- * This previously bound model is taken as a payload from the diffing - * process, and follows the same general conditions for all - * recyclerview change payloads. - */ - public void bind(@NonNull T view, @NonNull EpoxyModel previouslyBoundModel) { -// ^^^^ definition com/airbnb/epoxy/EpoxyModel#bind(+2). public void bind(T view, EpoxyModel previouslyBoundModel) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^ definition local5 @NonNull T view -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^^ definition local6 @NonNull EpoxyModel previouslyBoundModel - bind(view); -// ^^^^ reference com/airbnb/epoxy/EpoxyModel#bind(). -// ^^^^ reference local5 - } - - /** - * Called when the view bound to this model is recycled. Subclasses can override this if their - * view should release resources when it's recycled. - *

- * Note that {@link #bind(Object)} can be called multiple times without an unbind call in between - * if the view has remained on screen to be reused across item changes. This means that you should - * not rely on unbind to clear a view or model's state before bind is called again. - * - * @see EpoxyAdapter#onViewRecycled(EpoxyViewHolder) - */ - public void unbind(@NonNull T view) { -// ^^^^^^ definition com/airbnb/epoxy/EpoxyModel#unbind(). public void unbind(T view) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^ definition local7 @NonNull T view - } - - /** - * TODO link to the wiki - * - * @see OnVisibilityStateChanged annotation - */ - public void onVisibilityStateChanged(@Visibility int visibilityState, @NonNull T view) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#onVisibilityStateChanged(). public void onVisibilityStateChanged(int visibilityState, T view) -// ^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState#Visibility# -// ^^^^^^^^^^^^^^^ definition local8 @Visibility int visibilityState -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^ definition local9 @NonNull T view - } - - /** - * TODO link to the wiki - * - * @see OnVisibilityChanged annotation - */ - public void onVisibilityChanged( -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#onVisibilityChanged(). public void onVisibilityChanged(float percentVisibleHeight, float percentVisibleWidth, int visibleHeight, int visibleWidth, T view) - @FloatRange(from = 0.0f, to = 100.0f) float percentVisibleHeight, -// ^^^^^^^^^^ reference androidx/annotation/FloatRange# -// ^^^^ reference androidx/annotation/FloatRange#from(). -// ^^ reference androidx/annotation/FloatRange#to(). -// ^^^^^^^^^^^^^^^^^^^^ definition local10 @FloatRange(from = 0.0f, to = 100.0f) float percentVisibleHeight - @FloatRange(from = 0.0f, to = 100.0f) float percentVisibleWidth, -// ^^^^^^^^^^ reference androidx/annotation/FloatRange# -// ^^^^ reference androidx/annotation/FloatRange#from(). -// ^^ reference androidx/annotation/FloatRange#to(). -// ^^^^^^^^^^^^^^^^^^^ definition local11 @FloatRange(from = 0.0f, to = 100.0f) float percentVisibleWidth - @Px int visibleHeight, -// ^^ reference androidx/annotation/Px# -// ^^^^^^^^^^^^^ definition local12 @Px int visibleHeight - @Px int visibleWidth, -// ^^ reference androidx/annotation/Px# -// ^^^^^^^^^^^^ definition local13 @Px int visibleWidth - @NonNull T view -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^ definition local14 @NonNull T view - ) { - } - - public long id() { -// ^^ definition com/airbnb/epoxy/EpoxyModel#id(). public long id() - return id; -// ^^ reference com/airbnb/epoxy/EpoxyModel#id. - } - - /** - * Override the default id in cases where the data subject naturally has an id, like an object - * from a database. This id can only be set before the model is added to the adapter, it is an - * error to change the id after that. - */ - public EpoxyModel id(long id) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^ definition com/airbnb/epoxy/EpoxyModel#id(+1). public EpoxyModel id(long id) -// ^^ definition local15 long id - if ((addedToAdapter || firstControllerAddedTo != null) && id != this.id) { -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#addedToAdapter. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#firstControllerAddedTo. -// ^^ reference local15 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id. - throw new IllegalEpoxyUsage( -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IllegalEpoxyUsage#``(). - "Cannot change a model's id after it has been added to the adapter."); - } - - hasDefaultId = false; -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#hasDefaultId. - this.id = id; -// ^^ reference com/airbnb/epoxy/EpoxyModel#id. -// ^^ reference local15 - return this; - } - - /** - * Use multiple numbers as the id for this model. Useful when you don't have a single long that - * represents a unique id. - *

- * This hashes the numbers, so there is a tiny risk of collision with other ids. - */ - public EpoxyModel id(@Nullable Number... ids) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^ definition com/airbnb/epoxy/EpoxyModel#id(+2). public EpoxyModel id(Number[] ids) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^ reference java/lang/Number# -// ^^^ definition local16 @Nullable Number[] ids - long result = 0; -// ^^^^^^ definition local17 long result - if (ids != null) { -// ^^^ reference local16 - for (@Nullable Number id : ids) { -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^ reference java/lang/Number# -// ^^ definition local18 @Nullable Number id -// ^^^ reference local16 - result = 31 * result + hashLong64Bit(id == null ? 0 : id.hashCode()); -// ^^^^^^ reference local17 -// ^^^^^^ reference local17 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/IdUtils#hashLong64Bit(). -// ^^ reference local18 -// ^^ reference local18 -// ^^^^^^^^ reference java/lang/Object#hashCode(). - } - } - return id(result); -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(+1). -// ^^^^^^ reference local17 - } - - /** - * Use two numbers as the id for this model. Useful when you don't have a single long that - * represents a unique id. - *

- * This hashes the two numbers, so there is a tiny risk of collision with other ids. - */ - public EpoxyModel id(long id1, long id2) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^ definition com/airbnb/epoxy/EpoxyModel#id(+3). public EpoxyModel id(long id1, long id2) -// ^^^ definition local19 long id1 -// ^^^ definition local20 long id2 - long result = hashLong64Bit(id1); -// ^^^^^^ definition local21 long result -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/IdUtils#hashLong64Bit(). -// ^^^ reference local19 - result = 31 * result + hashLong64Bit(id2); -// ^^^^^^ reference local21 -// ^^^^^^ reference local21 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/IdUtils#hashLong64Bit(). -// ^^^ reference local20 - return id(result); -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(+1). -// ^^^^^^ reference local21 - } - - /** - * Use a string as the model id. Useful for models that don't clearly map to a numerical id. This - * is preferable to using {@link String#hashCode()} because that is a 32 bit hash and this is a 64 - * bit hash, giving better spread and less chance of collision with other ids. - *

- * Since this uses a hashcode method to convert the String to a long there is a very small chance - * that you may have a collision with another id. Assuming an even spread of hashcodes, and - * several hundred models in the adapter, there would be roughly 1 in 100 trillion chance of a - * collision. (http://preshing.com/20110504/hash-collision-probabilities/) - * - * @see IdUtils#hashString64Bit(CharSequence) - */ - public EpoxyModel id(@Nullable CharSequence key) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^ definition com/airbnb/epoxy/EpoxyModel#id(+4). public EpoxyModel id(CharSequence key) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^ definition local22 @Nullable CharSequence key - id(hashString64Bit(key)); -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(+1). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IdUtils#hashString64Bit(). -// ^^^ reference local22 - return this; - } - - /** - * Use several strings to define the id of the model. - *

- * Similar to {@link #id(CharSequence)}, but with additional strings. - */ - public EpoxyModel id(@Nullable CharSequence key, @Nullable CharSequence... otherKeys) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^ definition com/airbnb/epoxy/EpoxyModel#id(+5). public EpoxyModel id(CharSequence key, CharSequence[] otherKeys) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^ definition local23 @Nullable CharSequence key -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^^ definition local24 @Nullable CharSequence[] otherKeys - long result = hashString64Bit(key); -// ^^^^^^ definition local25 long result -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IdUtils#hashString64Bit(). -// ^^^ reference local23 - if (otherKeys != null) { -// ^^^^^^^^^ reference local24 - for (CharSequence otherKey : otherKeys) { -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^ definition local26 CharSequence otherKey -// ^^^^^^^^^ reference local24 - result = 31 * result + hashString64Bit(otherKey); -// ^^^^^^ reference local25 -// ^^^^^^ reference local25 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IdUtils#hashString64Bit(). -// ^^^^^^^^ reference local26 - } - } - return id(result); -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(+1). -// ^^^^^^ reference local25 - } - - /** - * Set an id that is namespaced with a string. This is useful when you need to show models of - * multiple types, side by side and don't want to risk id collisions. - *

- * Since this uses a hashcode method to convert the String to a long there is a very small chance - * that you may have a collision with another id. Assuming an even spread of hashcodes, and - * several hundred models in the adapter, there would be roughly 1 in 100 trillion chance of a - * collision. (http://preshing.com/20110504/hash-collision-probabilities/) - * - * @see IdUtils#hashString64Bit(CharSequence) - * @see IdUtils#hashLong64Bit(long) - */ - public EpoxyModel id(@Nullable CharSequence key, long id) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^ definition com/airbnb/epoxy/EpoxyModel#id(+6). public EpoxyModel id(CharSequence key, long id) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^ definition local27 @Nullable CharSequence key -// ^^ definition local28 long id - long result = hashString64Bit(key); -// ^^^^^^ definition local29 long result -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IdUtils#hashString64Bit(). -// ^^^ reference local27 - result = 31 * result + hashLong64Bit(id); -// ^^^^^^ reference local29 -// ^^^^^^ reference local29 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/IdUtils#hashLong64Bit(). -// ^^ reference local28 - id(result); -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(+1). -// ^^^^^^ reference local29 - return this; - } - - /** - * Return the default layout resource to be used when creating views for this model. The resource - * will be inflated to create a view for the model; additionally the layout int is used as the - * views type in the RecyclerView. - *

- * This can be left unimplemented if you use the {@link EpoxyModelClass} annotation to define a - * layout. - *

- * This default value can be overridden with {@link #layout(int)} at runtime to change the layout - * dynamically. - */ - @LayoutRes -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# - protected abstract int getDefaultLayout(); -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#getDefaultLayout(). @LayoutRes protected abstract int getDefaultLayout() - - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - public EpoxyModel layout(@LayoutRes int layoutRes) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^^^ definition com/airbnb/epoxy/EpoxyModel#layout(). @NonNull public EpoxyModel layout(int layoutRes) -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# -// ^^^^^^^^^ definition local30 @LayoutRes int layoutRes - onMutation(); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onMutation(). - layout = layoutRes; -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModel#layout. -// ^^^^^^^^^ reference local30 - return this; - } - - @LayoutRes -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# - public final int getLayout() { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#getLayout(). @LayoutRes public final int getLayout() - if (layout == 0) { -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModel#layout. - return getDefaultLayout(); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#getDefaultLayout(). - } - - return layout; -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModel#layout. - } - - /** - * Sets fields of the model to default ones. - */ - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - public EpoxyModel reset() { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^^ definition com/airbnb/epoxy/EpoxyModel#reset(). @NonNull public EpoxyModel reset() - onMutation(); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onMutation(). - - layout = 0; -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModel#layout. - shown = true; -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#shown. - - return this; - } - - /** - * Add this model to the given controller. Can only be called from inside {@link - * EpoxyController#buildModels()}. - */ - public void addTo(@NonNull EpoxyController controller) { -// ^^^^^ definition com/airbnb/epoxy/EpoxyModel#addTo(). public void addTo(EpoxyController controller) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local31 @NonNull EpoxyController controller - controller.addInternal(this); -// ^^^^^^^^^^ reference local31 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#addInternal(). - } - - /** - * Add this model to the given controller if the condition is true. Can only be called from inside - * {@link EpoxyController#buildModels()}. - */ - public void addIf(boolean condition, @NonNull EpoxyController controller) { -// ^^^^^ definition com/airbnb/epoxy/EpoxyModel#addIf(). public void addIf(boolean condition, EpoxyController controller) -// ^^^^^^^^^ definition local32 boolean condition -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local33 @NonNull EpoxyController controller - if (condition) { -// ^^^^^^^^^ reference local32 - addTo(controller); -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#addTo(). -// ^^^^^^^^^^ reference local33 - } else if (controllerToStageTo != null) { -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#controllerToStageTo. - // Clear this model from staging since it failed the add condition. If this model wasn't - // staged (eg not changed before addIf was called, then we need to make sure to add the - // previously staged model. - controllerToStageTo.clearModelFromStaging(this); -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#controllerToStageTo. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#clearModelFromStaging(). - controllerToStageTo = null; -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#controllerToStageTo. - } - } - - /** - * Add this model to the given controller if the {@link AddPredicate} return true. Can only be - * called from inside {@link EpoxyController#buildModels()}. - */ - public void addIf(@NonNull AddPredicate predicate, @NonNull EpoxyController controller) { -// ^^^^^ definition com/airbnb/epoxy/EpoxyModel#addIf(+1). public void addIf(AddPredicate predicate, EpoxyController controller) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#AddPredicate# -// ^^^^^^^^^ definition local34 @NonNull AddPredicate predicate -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local35 @NonNull EpoxyController controller - addIf(predicate.addIf(), controller); -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#addIf(). -// ^^^^^^^^^ reference local34 -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#AddPredicate#addIf(). -// ^^^^^^^^^^ reference local35 - } - - /** - * @see #addIf(AddPredicate, EpoxyController) - */ - public interface AddPredicate { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#AddPredicate# public interface AddPredicate - boolean addIf(); -// ^^^^^ definition com/airbnb/epoxy/EpoxyModel#AddPredicate#addIf(). public abstract boolean addIf() - } - - /** - * This is used internally by generated models to turn on validation checking when - * "validateEpoxyModelUsage" is enabled and the model is used with an {@link EpoxyController}. - */ - protected final void addWithDebugValidation(@NonNull EpoxyController controller) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#addWithDebugValidation(). protected final void addWithDebugValidation(EpoxyController controller) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local36 @NonNull EpoxyController controller - if (controller == null) { -// ^^^^^^^^^^ reference local36 - throw new IllegalArgumentException("Controller cannot be null"); -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalArgumentException#``(+1). - } - - if (controller.isModelAddedMultipleTimes(this)) { -// ^^^^^^^^^^ reference local36 -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#isModelAddedMultipleTimes(). - throw new IllegalEpoxyUsage( -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IllegalEpoxyUsage#``(). - "This model was already added to the controller at position " - + controller.getFirstIndexOfModelInBuildingList(this)); -// ^^^^^^^^^^ reference local36 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#getFirstIndexOfModelInBuildingList(). - } - - if (firstControllerAddedTo == null) { -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#firstControllerAddedTo. - firstControllerAddedTo = controller; -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#firstControllerAddedTo. -// ^^^^^^^^^^ reference local36 - - // We save the current hashCode so we can compare it to the hashCode at later points in time - // in order to validate that it doesn't change and enforce mutability. - hashCodeWhenAdded = hashCode(); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#hashCodeWhenAdded. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#hashCode(). - - // The one time it is valid to change the model is during an interceptor callback. To support - // that we need to update the hashCode after interceptors have been run. - // The model can be added to multiple controllers, but we only allow an interceptor change - // the first time, since after that it will have been added to an adapter. - controller.addAfterInterceptorCallback(new ModelInterceptorCallback() { -// ^^^^^^^^^^ reference local36 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#addAfterInterceptorCallback(). -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#ModelInterceptorCallback# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onInterceptorsStarted(EpoxyController controller) { -// ^^^^^^^^^^^^^^^^^^^^^ definition local39 @Override public void onInterceptorsStarted(EpoxyController controller) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local41 EpoxyController controller - currentlyInInterceptors = true; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#currentlyInInterceptors. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onInterceptorsFinished(EpoxyController controller) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition local40 @Override public void onInterceptorsFinished(EpoxyController controller) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local42 EpoxyController controller - hashCodeWhenAdded = EpoxyModel.this.hashCode(); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#hashCodeWhenAdded. -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^ reference com/airbnb/epoxy/EpoxyModel#this. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#hashCode(). - currentlyInInterceptors = false; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#currentlyInInterceptors. - } - }); - } - } - - boolean isDebugValidationEnabled() { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#isDebugValidationEnabled(). boolean isDebugValidationEnabled() - return firstControllerAddedTo != null; -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#firstControllerAddedTo. - } - - /** - * This is used internally by generated models to do validation checking when - * "validateEpoxyModelUsage" is enabled and the model is used with an {@link EpoxyController}. - * This method validates that it is ok to change this model. It is only valid if the model hasn't - * yet been added, or the change is being done from an {@link EpoxyController.Interceptor} - * callback. - *

- * This is also used to stage the model for implicitly adding it, if it is an AutoModel and - * implicit adding is enabled. - */ - protected final void onMutation() { -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#onMutation(). protected final void onMutation() - // The model may be added to multiple controllers, in which case if it was already diffed - // and added to an adapter in one controller we don't want to even allow interceptors - // from changing the model in a different controller - if (isDebugValidationEnabled() && !currentlyInInterceptors) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#isDebugValidationEnabled(). -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#currentlyInInterceptors. - throw new ImmutableModelException(this, -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ImmutableModelException#``(). - getPosition(firstControllerAddedTo, this)); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#getPosition(). -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#firstControllerAddedTo. - } - - if (controllerToStageTo != null) { -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#controllerToStageTo. - controllerToStageTo.setStagedModel(this); -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#controllerToStageTo. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#setStagedModel(). - } - } - - private static int getPosition(@NonNull EpoxyController controller, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#getPosition(). private static int getPosition(EpoxyController controller, EpoxyModel model) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local43 @NonNull EpoxyController controller - @NonNull EpoxyModel model) { -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local44 @NonNull EpoxyModel model - // If the model was added to multiple controllers, or was removed from the controller and then - // modified, this won't be correct. But those should be very rare cases that we don't need to - // worry about - if (controller.isBuildingModels()) { -// ^^^^^^^^^^ reference local43 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#isBuildingModels(). - return controller.getFirstIndexOfModelInBuildingList(model); -// ^^^^^^^^^^ reference local43 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#getFirstIndexOfModelInBuildingList(). -// ^^^^^ reference local44 - } - - return controller.getAdapter().getModelPosition(model); -// ^^^^^^^^^^ reference local43 -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#getAdapter(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyControllerAdapter#getModelPosition(). -// ^^^^^ reference local44 - } - - /** - * This is used internally by generated models to do validation checking when - * "validateEpoxyModelUsage" is enabled and the model is used with a {@link EpoxyController}. This - * method validates that the model's hashCode hasn't been changed since it was added to the - * controller. This is similar to {@link #onMutation()}, but that method is only used for - * specific model changes such as calling a setter. By checking the hashCode, this method allows - * us to catch more subtle changes, such as through setting a field directly or through changing - * an object that is set on the model. - */ - protected final void validateStateHasNotChangedSinceAdded(String descriptionOfChange, -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#validateStateHasNotChangedSinceAdded(). protected final void validateStateHasNotChangedSinceAdded(String descriptionOfChange, int modelPosition) -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^^^^^^^^^^^^ definition local45 String descriptionOfChange - int modelPosition) { -// ^^^^^^^^^^^^^ definition local46 int modelPosition - if (isDebugValidationEnabled() -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#isDebugValidationEnabled(). - && !currentlyInInterceptors -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#currentlyInInterceptors. - && hashCodeWhenAdded != hashCode()) { -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#hashCodeWhenAdded. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#hashCode(). - throw new ImmutableModelException(this, descriptionOfChange, modelPosition); -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ImmutableModelException#``(+1). -// ^^^^^^^^^^^^^^^^^^^ reference local45 -// ^^^^^^^^^^^^^ reference local46 - } - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean equals(Object o) { -// ^^^^^^ definition com/airbnb/epoxy/EpoxyModel#equals(). @Override public boolean equals(Object o) -// ^^^^^^ reference java/lang/Object# -// ^ definition local47 Object o - if (this == o) { -// ^ reference local47 - return true; - } - if (!(o instanceof EpoxyModel)) { -// ^ reference local47 -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# - return false; - } - - EpoxyModel that = (EpoxyModel) o; -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^ definition local48 EpoxyModel that -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference local47 - - if (id != that.id) { -// ^^ reference com/airbnb/epoxy/EpoxyModel#id. -// ^^^^ reference local48 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id. - return false; - } - if (getViewType() != that.getViewType()) { -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#getViewType(). -// ^^^^ reference local48 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#getViewType(). - return false; - } - return shown == that.shown; -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#shown. -// ^^^^ reference local48 -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#shown. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int hashCode() { -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#hashCode(). @Override public int hashCode() - int result = (int) (id ^ (id >>> 32)); -// ^^^^^^ definition local49 int result -// ^^ reference com/airbnb/epoxy/EpoxyModel#id. -// ^^ reference com/airbnb/epoxy/EpoxyModel#id. - result = 31 * result + getViewType(); -// ^^^^^^ reference local49 -// ^^^^^^ reference local49 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#getViewType(). - result = 31 * result + (shown ? 1 : 0); -// ^^^^^^ reference local49 -// ^^^^^^ reference local49 -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#shown. - return result; -// ^^^^^^ reference local49 - } - - /** - * Subclasses can override this if they want their view to take up more than one span in a grid - * layout. - * - * @param totalSpanCount The number of spans in the grid - * @param position The position of the model - * @param itemCount The total number of items in the adapter - */ - public int getSpanSize(int totalSpanCount, int position, int itemCount) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#getSpanSize(). public int getSpanSize(int totalSpanCount, int position, int itemCount) -// ^^^^^^^^^^^^^^ definition local50 int totalSpanCount -// ^^^^^^^^ definition local51 int position -// ^^^^^^^^^ definition local52 int itemCount - return 1; - } - - public EpoxyModel spanSizeOverride(@Nullable SpanSizeOverrideCallback spanSizeCallback) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#spanSizeOverride(). public EpoxyModel spanSizeOverride(SpanSizeOverrideCallback spanSizeCallback) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#SpanSizeOverrideCallback# -// ^^^^^^^^^^^^^^^^ definition local53 @Nullable SpanSizeOverrideCallback spanSizeCallback - this.spanSizeOverride = spanSizeCallback; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#spanSizeOverride. -// ^^^^^^^^^^^^^^^^ reference local53 - return this; - } - - public interface SpanSizeOverrideCallback { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#SpanSizeOverrideCallback# public interface SpanSizeOverrideCallback - int getSpanSize(int totalSpanCount, int position, int itemCount); -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#SpanSizeOverrideCallback#getSpanSize(). public abstract int getSpanSize(int totalSpanCount, int position, int itemCount) -// ^^^^^^^^^^^^^^ definition local54 int totalSpanCount -// ^^^^^^^^ definition local55 int position -// ^^^^^^^^^ definition local56 int itemCount - } - - /** - * Returns the actual span size of this model, using the {@link SpanSizeOverrideCallback} if one - * was set, otherwise using the value from {@link #getSpanSize(int, int, int)} - */ - public final int spanSize(int totalSpanCount, int position, int itemCount) { -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#spanSize(). public final int spanSize(int totalSpanCount, int position, int itemCount) -// ^^^^^^^^^^^^^^ definition local57 int totalSpanCount -// ^^^^^^^^ definition local58 int position -// ^^^^^^^^^ definition local59 int itemCount - if (spanSizeOverride != null) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#spanSizeOverride. - return spanSizeOverride.getSpanSize(totalSpanCount, position, itemCount); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#spanSizeOverride. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#SpanSizeOverrideCallback#getSpanSize(). -// ^^^^^^^^^^^^^^ reference local57 -// ^^^^^^^^ reference local58 -// ^^^^^^^^^ reference local59 - } - - return getSpanSize(totalSpanCount, position, itemCount); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#getSpanSize(). -// ^^^^^^^^^^^^^^ reference local57 -// ^^^^^^^^ reference local58 -// ^^^^^^^^^ reference local59 - } - - /** - * Change the visibility of the model so that it's view is shown. This only works if the model is - * used in {@link EpoxyAdapter} or a {@link EpoxyModelGroup}, but is not supported in {@link - * EpoxyController} - */ - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - public EpoxyModel show() { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^ definition com/airbnb/epoxy/EpoxyModel#show(). @NonNull public EpoxyModel show() - return show(true); -// ^^^^ reference com/airbnb/epoxy/EpoxyModel#show(+1). - } - - /** - * Change the visibility of the model's view. This only works if the model is - * used in {@link EpoxyAdapter} or a {@link EpoxyModelGroup}, but is not supported in {@link - * EpoxyController} - */ - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - public EpoxyModel show(boolean show) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^ definition com/airbnb/epoxy/EpoxyModel#show(+1). @NonNull public EpoxyModel show(boolean show) -// ^^^^ definition local60 boolean show - onMutation(); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onMutation(). - shown = show; -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#shown. -// ^^^^ reference local60 - return this; - } - - /** - * Change the visibility of the model so that it's view is hidden. This only works if the model is - * used in {@link EpoxyAdapter} or a {@link EpoxyModelGroup}, but is not supported in {@link - * EpoxyController} - */ - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - public EpoxyModel hide() { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^ definition com/airbnb/epoxy/EpoxyModel#hide(). @NonNull public EpoxyModel hide() - return show(false); -// ^^^^ reference com/airbnb/epoxy/EpoxyModel#show(+1). - } - - /** - * Whether the model's view should be shown on screen. If false it won't be inflated and drawn, - * and will be like it was never added to the recycler view. - */ - public boolean isShown() { -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#isShown(). public boolean isShown() - return shown; -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#shown. - } - - /** - * Whether the adapter should save the state of the view bound to this model. - */ - public boolean shouldSaveViewState() { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#shouldSaveViewState(). public boolean shouldSaveViewState() - return false; - } - - /** - * Called if the RecyclerView failed to recycle this model's view. You can take this opportunity - * to clear the animation(s) that affect the View's transient state and return true - * so that the View can be recycled. Keep in mind that the View in question is already removed - * from the RecyclerView. - * - * @return True if the View should be recycled, false otherwise - * @see EpoxyAdapter#onFailedToRecycleView(androidx.recyclerview.widget.RecyclerView.ViewHolder) - */ - public boolean onFailedToRecycleView(@NonNull T view) { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#onFailedToRecycleView(). public boolean onFailedToRecycleView(T view) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^ definition local61 @NonNull T view - return false; - } - - /** - * Called when this model's view is attached to the window. - * - * @see EpoxyAdapter#onViewAttachedToWindow(androidx.recyclerview.widget.RecyclerView.ViewHolder) - */ - public void onViewAttachedToWindow(@NonNull T view) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#onViewAttachedToWindow(). public void onViewAttachedToWindow(T view) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^ definition local62 @NonNull T view - - } - - /** - * Called when this model's view is detached from the the window. - * - * @see EpoxyAdapter#onViewDetachedFromWindow(androidx.recyclerview.widget.RecyclerView - * .ViewHolder) - */ - public void onViewDetachedFromWindow(@NonNull T view) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#onViewDetachedFromWindow(). public void onViewDetachedFromWindow(T view) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModel#[T] -// ^^^^ definition local63 @NonNull T view - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public String toString() { -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#toString(). @Override public String toString() - return getClass().getSimpleName() + "{" -// ^^^^^^^^ reference java/lang/Object#getClass(). -// ^^^^^^^^^^^^^ reference java/lang/Class#getSimpleName(). - + "id=" + id -// ^^ reference com/airbnb/epoxy/EpoxyModel#id. - + ", viewType=" + getViewType() -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#getViewType(). - + ", shown=" + shown -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#shown. - + ", addedToAdapter=" + addedToAdapter -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#addedToAdapter. - + '}'; - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelGroup.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelGroup.java deleted file mode 100644 index 62649500c..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelGroup.java +++ /dev/null @@ -1,689 +0,0 @@ -package com.airbnb.epoxy; - -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# -import android.view.ViewParent; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^^^^^^^ reference android/view/ViewParent# -import android.view.ViewStub; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^^^^^ reference android/view/ViewStub# - -import java.util.ArrayList; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^ reference java/util/ArrayList# -import java.util.Arrays; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^ reference java/util/Arrays# -import java.util.Collection; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^ reference java/util/Collection# -import java.util.Collections; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^^ reference java/util/Collections# -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -import androidx.annotation.CallSuper; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^ reference androidx/annotation/CallSuper# -import androidx.annotation.LayoutRes; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# - -/** - * An {@link EpoxyModel} that contains other models, and allows you to combine those models in - * whatever view configuration you want. - *

- * The constructors take a list of models and a layout resource. The layout must have a viewgroup as - * its top level view; it determines how the view of each model is laid out. There are two ways to - * specify this - *

- * 1. Leave the viewgroup empty. The view for each model will be inflated and added in order. This - * works fine if you don't need to include any other views, your model views don't need their layout - * params changed, and your views don't need ids (eg for saving state). - *

- * Alternatively you can have nested view groups, with the innermost viewgroup given the id - * "epoxy_model_group_child_container" to mark it as the viewgroup that should have the model views - * added to it. The viewgroup marked with this id should be empty. This allows you to nest - * viewgroups, such as a LinearLayout inside of a CardView. - *

- * 2. Include a {@link ViewStub} for each of the models in the list. There should be at least as - * many view stubs as models. Extra stubs will be ignored. Each model will have its view replace the - * stub in order of the view stub's position in the view group. That is, the view group's children - * will be iterated through in order. The first view stub found will be used for the first model in - * the models list, the second view stub will be used for the second model, and so on. A depth first - * recursive search through nested viewgroups is done to find these viewstubs. - *

- * The layout can be of any ViewGroup subclass, and can have arbitrary other child views besides the - * view stubs. It can arrange the views and view stubs however is needed. - *

- * Any layout param options set on the view stubs will be transferred to the corresponding model - * view by default. If you want a model to keep the layout params from it's own layout resource you - * can override {@link #useViewStubLayoutParams(EpoxyModel, int)} - *

- * If you want to override the id used for a model's view you can set {@link - * ViewStub#setInflatedId(int)} via xml. That id will be transferred over to the view taking that - * stub's place. This is necessary if you want your model to save view state, since without this the - * model's view won't have an id to associate the saved state with. - *

- * By default this model inherits the same id as the first model in the list. Call {@link #id(long)} - * to override that if needed. - *

- * When a model group is recycled, its child views are automatically recycled to a pool that is - * shared with all other model groups in the activity. This enables model groups to more efficiently - * manage their children. The shared pool is cleaned up when the activity is destroyed. - */ -@SuppressWarnings("rawtypes") -//^^^^^^^^^^^^^^^ reference java/lang/SuppressWarnings# -public class EpoxyModelGroup extends EpoxyModelWithHolder { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup# @SuppressWarnings("rawtypes") public class EpoxyModelGroup -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelWithHolder# -// ^^^^^^^^^^^^^^^^ reference _root_/ - - protected final List> models; -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#models. protected final List> models - - private boolean shouldSaveViewStateDefault = false; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#shouldSaveViewStateDefault. private boolean shouldSaveViewStateDefault - - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - private Boolean shouldSaveViewState = null; -// ^^^^^^^ reference java/lang/Boolean# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#shouldSaveViewState. @Nullable private Boolean shouldSaveViewState - - /** - * @param layoutRes The layout to use with these models. - * @param models The models that will be used to bind the views in the given layout. - */ - public EpoxyModelGroup(@LayoutRes int layoutRes, Collection> models) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#``(). public EpoxyModelGroup(int layoutRes, Collection> models) -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# -// ^^^^^^^^^ definition local0 @LayoutRes int layoutRes -// ^^^^^^^^^^ reference java/util/Collection# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local1 Collection> models - this(layoutRes, new ArrayList<>(models)); -// ^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#``(+2). -// ^^^^^^^^^ reference local0 -// ^^^^^^^^^ reference java/util/ArrayList#``(+2). -// ^^^^^^ reference local1 - } - - /** - * @param layoutRes The layout to use with these models. - * @param models The models that will be used to bind the views in the given layout. - */ - public EpoxyModelGroup(@LayoutRes int layoutRes, EpoxyModel... models) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#``(+1). public EpoxyModelGroup(int layoutRes, EpoxyModel[] models) -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# -// ^^^^^^^^^ definition local2 @LayoutRes int layoutRes -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local3 EpoxyModel[] models - this(layoutRes, new ArrayList<>(Arrays.asList(models))); -// ^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#``(+2). -// ^^^^^^^^^ reference local2 -// ^^^^^^^^^ reference java/util/ArrayList#``(+2). -// ^^^^^^ reference java/util/Arrays# -// ^^^^^^ reference java/util/Arrays#asList(). -// ^^^^^^ reference local3 - } - - /** - * @param layoutRes The layout to use with these models. - * @param models The models that will be used to bind the views in the given layout. - */ - private EpoxyModelGroup(@LayoutRes int layoutRes, List> models) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#``(+2). private EpoxyModelGroup(int layoutRes, List> models) -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# -// ^^^^^^^^^ definition local4 @LayoutRes int layoutRes -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local5 List> models - if (models.isEmpty()) { -// ^^^^^^ reference local5 -// ^^^^^^^ reference java/util/List#isEmpty(). - throw new IllegalArgumentException("Models cannot be empty"); -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalArgumentException#``(+1). - } - - this.models = models; -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#models. -// ^^^^^^ reference local5 - layout(layoutRes); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModel#layout(). -// ^^^^^^^^^ reference local4 - id(models.get(0).id()); -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(+1). -// ^^^^^^ reference local5 -// ^^^ reference java/util/List#get(). -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). - - boolean saveState = false; -// ^^^^^^^^^ definition local6 boolean saveState - for (EpoxyModel model : models) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local7 EpoxyModel model -// ^^^^^^ reference local5 - if (model.shouldSaveViewState()) { -// ^^^^^ reference local7 -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#shouldSaveViewState(). - saveState = true; -// ^^^^^^^^^ reference local6 - break; - } - } - // By default we save view state if any of the models need to save state. - shouldSaveViewStateDefault = saveState; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#shouldSaveViewStateDefault. -// ^^^^^^^^^ reference local6 - } - - /** - * Constructor use for DSL - */ - protected EpoxyModelGroup() { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#``(+3). protected EpoxyModelGroup() - models = new ArrayList<>(); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#models. -// ^^^^^^^^^ reference java/util/ArrayList#``(+1). - shouldSaveViewStateDefault = false; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#shouldSaveViewStateDefault. - } - - /** - * Constructor use for DSL - */ - protected EpoxyModelGroup(@LayoutRes int layoutRes) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#``(+4). protected EpoxyModelGroup(int layoutRes) -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# -// ^^^^^^^^^ definition local8 @LayoutRes int layoutRes - this(); -// ^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#``(+3). - layout(layoutRes); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModel#layout(). -// ^^^^^^^^^ reference local8 - } - - protected void addModel(@NonNull EpoxyModel model) { -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#addModel(). protected void addModel(EpoxyModel model) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local9 @NonNull EpoxyModel model - // By default we save view state if any of the models need to save state. - shouldSaveViewStateDefault |= model.shouldSaveViewState(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#shouldSaveViewStateDefault. -// ^^^^^ reference local9 -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#shouldSaveViewState(). - models.add(model); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#models. -// ^^^ reference java/util/List#add(). -// ^^^^^ reference local9 - } - - @CallSuper -// ^^^^^^^^^ reference androidx/annotation/CallSuper# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void bind(@NonNull ModelGroupHolder holder) { -// ^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#bind(). @CallSuper @Override public void bind(unresolved_type holder) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local10 @NonNull unresolved_type holder - iterateModels(holder, new IterateModelsCallback() { -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#iterateModels(). -// ^^^^^^ reference local10 -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#IterateModelsCallback# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onModel(EpoxyModel model, EpoxyViewHolder viewHolder, int modelIndex) { -// ^^^^^^^ definition local13 @Override public void onModel(EpoxyModel model, EpoxyViewHolder viewHolder, int modelIndex) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local14 EpoxyModel model -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local15 EpoxyViewHolder viewHolder -// ^^^^^^^^^^ definition local16 int modelIndex - setViewVisibility(model, viewHolder); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#setViewVisibility(). -// ^^^^^ reference local14 -// ^^^^^^^^^^ reference local15 - viewHolder.bind(model, null, Collections.emptyList(), modelIndex); -// ^^^^^^^^^^ reference local15 -// ^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#bind(). -// ^^^^^ reference local14 -// ^^^^^^^^^^^ reference java/util/Collections# -// ^^^^^^^^^ reference java/util/Collections#emptyList(). -// ^^^^^^^^^^ reference local16 - } - }); - } - - @CallSuper -// ^^^^^^^^^ reference androidx/annotation/CallSuper# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void bind(@NonNull ModelGroupHolder holder, @NonNull final List payloads) { -// ^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#bind(+1). @CallSuper @Override public void bind(unresolved_type holder, List payloads) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local17 @NonNull unresolved_type holder -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference java/util/List# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^ definition local18 @NonNull final List payloads - iterateModels(holder, new IterateModelsCallback() { -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#iterateModels(). -// ^^^^^^ reference local17 -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#IterateModelsCallback# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onModel(EpoxyModel model, EpoxyViewHolder viewHolder, int modelIndex) { -// ^^^^^^^ definition local21 @Override public void onModel(EpoxyModel model, EpoxyViewHolder viewHolder, int modelIndex) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local22 EpoxyModel model -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local23 EpoxyViewHolder viewHolder -// ^^^^^^^^^^ definition local24 int modelIndex - setViewVisibility(model, viewHolder); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#setViewVisibility(). -// ^^^^^ reference local22 -// ^^^^^^^^^^ reference local23 - viewHolder.bind(model, null, Collections.emptyList(), modelIndex); -// ^^^^^^^^^^ reference local23 -// ^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#bind(). -// ^^^^^ reference local22 -// ^^^^^^^^^^^ reference java/util/Collections# -// ^^^^^^^^^ reference java/util/Collections#emptyList(). -// ^^^^^^^^^^ reference local24 - } - }); - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void bind(@NonNull ModelGroupHolder holder, @NonNull EpoxyModel previouslyBoundModel) { -// ^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#bind(+2). @Override public void bind(unresolved_type holder, EpoxyModel previouslyBoundModel) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local25 @NonNull unresolved_type holder -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^^ definition local26 @NonNull EpoxyModel previouslyBoundModel - if (!(previouslyBoundModel instanceof EpoxyModelGroup)) { -// ^^^^^^^^^^^^^^^^^^^^ reference local26 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup# - bind(holder); -// ^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#bind(). -// ^^^^^^ reference local25 - return; - } - - final EpoxyModelGroup previousGroup = (EpoxyModelGroup) previouslyBoundModel; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup# -// ^^^^^^^^^^^^^ definition local27 final EpoxyModelGroup previousGroup -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup# -// ^^^^^^^^^^^^^^^^^^^^ reference local26 - - iterateModels(holder, new IterateModelsCallback() { -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#iterateModels(). -// ^^^^^^ reference local25 -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#IterateModelsCallback# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onModel(EpoxyModel model, EpoxyViewHolder viewHolder, int modelIndex) { -// ^^^^^^^ definition local30 @Override public void onModel(EpoxyModel model, EpoxyViewHolder viewHolder, int modelIndex) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local31 EpoxyModel model -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local32 EpoxyViewHolder viewHolder -// ^^^^^^^^^^ definition local33 int modelIndex - setViewVisibility(model, viewHolder); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#setViewVisibility(). -// ^^^^^ reference local31 -// ^^^^^^^^^^ reference local32 - - if (modelIndex < previousGroup.models.size()) { -// ^^^^^^^^^^ reference local33 -// ^^^^^^^^^^^^^ reference local27 -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#models. -// ^^^^ reference java/util/List#size(). - EpoxyModel previousModel = previousGroup.models.get(modelIndex); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition local34 EpoxyModel previousModel -// ^^^^^^^^^^^^^ reference local27 -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#models. -// ^^^ reference java/util/List#get(). -// ^^^^^^^^^^ reference local33 - if (previousModel.id() == model.id()) { -// ^^^^^^^^^^^^^ reference local34 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). -// ^^^^^ reference local31 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). - viewHolder.bind(model, previousModel, Collections.emptyList(), modelIndex); -// ^^^^^^^^^^ reference local32 -// ^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#bind(). -// ^^^^^ reference local31 -// ^^^^^^^^^^^^^ reference local34 -// ^^^^^^^^^^^ reference java/util/Collections# -// ^^^^^^^^^ reference java/util/Collections#emptyList(). -// ^^^^^^^^^^ reference local33 - return; - } - } - - viewHolder.bind(model, null, Collections.emptyList(), modelIndex); -// ^^^^^^^^^^ reference local32 -// ^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#bind(). -// ^^^^^ reference local31 -// ^^^^^^^^^^^ reference java/util/Collections# -// ^^^^^^^^^ reference java/util/Collections#emptyList(). -// ^^^^^^^^^^ reference local33 - } - }); - } - - private static void setViewVisibility(EpoxyModel model, EpoxyViewHolder viewHolder) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#setViewVisibility(). private static void setViewVisibility(EpoxyModel model, EpoxyViewHolder viewHolder) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local35 EpoxyModel model -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local36 EpoxyViewHolder viewHolder - if (model.isShown()) { -// ^^^^^ reference local35 -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#isShown(). - viewHolder.itemView.setVisibility(View.VISIBLE); -// ^^^^^^^^^^ reference local36 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView# -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView#setVisibility# -// ^^^^ reference _root_/ -// ^^^^^^^ reference VISIBLE# - } else { - viewHolder.itemView.setVisibility(View.GONE); -// ^^^^^^^^^^ reference local36 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView# -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView#setVisibility# -// ^^^^ reference _root_/ -// ^^^^ reference GONE# - } - } - - @CallSuper -// ^^^^^^^^^ reference androidx/annotation/CallSuper# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void unbind(@NonNull ModelGroupHolder holder) { -// ^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#unbind(). @CallSuper @Override public void unbind(unresolved_type holder) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local37 @NonNull unresolved_type holder - holder.unbindGroup(); -// ^^^^^^ reference local37 -// ^^^^^^^^^^^ reference unbindGroup# - } - - @CallSuper -// ^^^^^^^^^ reference androidx/annotation/CallSuper# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onViewAttachedToWindow(ModelGroupHolder holder) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#onViewAttachedToWindow(). @CallSuper @Override public void onViewAttachedToWindow(unresolved_type holder) -// ^^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local38 unresolved_type holder - iterateModels(holder, new IterateModelsCallback() { -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#iterateModels(). -// ^^^^^^ reference local38 -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#IterateModelsCallback# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onModel(EpoxyModel model, EpoxyViewHolder viewHolder, int modelIndex) { -// ^^^^^^^ definition local41 @Override public void onModel(EpoxyModel model, EpoxyViewHolder viewHolder, int modelIndex) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local42 EpoxyModel model -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local43 EpoxyViewHolder viewHolder -// ^^^^^^^^^^ definition local44 int modelIndex - //noinspection unchecked - model.onViewAttachedToWindow(viewHolder.objectToBind()); -// ^^^^^ reference local42 -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onViewAttachedToWindow(). -// ^^^^^^^^^^ reference local43 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). - } - }); - } - - @CallSuper -// ^^^^^^^^^ reference androidx/annotation/CallSuper# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onViewDetachedFromWindow(ModelGroupHolder holder) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#onViewDetachedFromWindow(). @CallSuper @Override public void onViewDetachedFromWindow(unresolved_type holder) -// ^^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local45 unresolved_type holder - iterateModels(holder, new IterateModelsCallback() { -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#iterateModels(). -// ^^^^^^ reference local45 -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#IterateModelsCallback# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onModel(EpoxyModel model, EpoxyViewHolder viewHolder, int modelIndex) { -// ^^^^^^^ definition local48 @Override public void onModel(EpoxyModel model, EpoxyViewHolder viewHolder, int modelIndex) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local49 EpoxyModel model -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local50 EpoxyViewHolder viewHolder -// ^^^^^^^^^^ definition local51 int modelIndex - //noinspection unchecked - model.onViewDetachedFromWindow(viewHolder.objectToBind()); -// ^^^^^ reference local49 -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onViewDetachedFromWindow(). -// ^^^^^^^^^^ reference local50 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). - } - }); - } - - private void iterateModels(ModelGroupHolder holder, IterateModelsCallback callback) { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#iterateModels(). private void iterateModels(unresolved_type holder, IterateModelsCallback callback) -// ^^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local52 unresolved_type holder -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#IterateModelsCallback# -// ^^^^^^^^ definition local53 IterateModelsCallback callback - holder.bindGroupIfNeeded(this); -// ^^^^^^ reference local52 -// ^^^^^^^^^^^^^^^^^ reference bindGroupIfNeeded# - int modelCount = models.size(); -// ^^^^^^^^^^ definition local54 int modelCount -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#models. -// ^^^^ reference java/util/List#size(). - - for (int i = 0; i < modelCount; i++) { -// ^ definition local55 int i -// ^ reference local55 -// ^^^^^^^^^^ reference local54 -// ^ reference local55 - callback.onModel(models.get(i), holder.getViewHolders().get(i), i); -// ^^^^^^^^ reference local53 -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#IterateModelsCallback#onModel(). -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#models. -// ^^^ reference java/util/List#get(). -// ^ reference local55 -// ^^^^^^ reference local52 -// ^^^^^^^^^^^^^^ reference getViewHolders# -// ^^^ reference getViewHolders#get# -// ^ reference local55 -// ^ reference local55 - } - } - - private interface IterateModelsCallback { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#IterateModelsCallback# private interface IterateModelsCallback - void onModel(EpoxyModel model, EpoxyViewHolder viewHolder, int modelIndex); -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#IterateModelsCallback#onModel(). public abstract void onModel(EpoxyModel model, EpoxyViewHolder viewHolder, int modelIndex) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local56 EpoxyModel model -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local57 EpoxyViewHolder viewHolder -// ^^^^^^^^^^ definition local58 int modelIndex - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int getSpanSize(int totalSpanCount, int position, int itemCount) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#getSpanSize(). @Override public int getSpanSize(int totalSpanCount, int position, int itemCount) -// ^^^^^^^^^^^^^^ definition local59 int totalSpanCount -// ^^^^^^^^ definition local60 int position -// ^^^^^^^^^ definition local61 int itemCount - // Defaults to using the span size of the first model. Override this if you need to customize it - return models.get(0).spanSize(totalSpanCount, position, itemCount); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#models. -// ^^^ reference java/util/List#get(). -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#spanSize(). -// ^^^^^^^^^^^^^^ reference local59 -// ^^^^^^^^ reference local60 -// ^^^^^^^^^ reference local61 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected final int getDefaultLayout() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#getDefaultLayout(). @Override protected final int getDefaultLayout() - throw new UnsupportedOperationException( -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/UnsupportedOperationException#``(+1). - "You should set a layout with layout(...) instead of using this."); - } - - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - public EpoxyModelGroup shouldSaveViewState(boolean shouldSaveViewState) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#shouldSaveViewState(). @NonNull public EpoxyModelGroup shouldSaveViewState(boolean shouldSaveViewState) -// ^^^^^^^^^^^^^^^^^^^ definition local62 boolean shouldSaveViewState - onMutation(); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onMutation(). - this.shouldSaveViewState = shouldSaveViewState; -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#shouldSaveViewState. -// ^^^^^^^^^^^^^^^^^^^ reference local62 - return this; - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean shouldSaveViewState() { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#shouldSaveViewState(+1). @Override public boolean shouldSaveViewState() - // By default state is saved if any of the models have saved state enabled. - // Override this if you need custom behavior. - if (shouldSaveViewState != null) { -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#shouldSaveViewState. - return shouldSaveViewState; -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#shouldSaveViewState. - } else { - return shouldSaveViewStateDefault; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#shouldSaveViewStateDefault. - } - } - - /** - * Whether the layout params set on the view stub for the given model should be carried over to - * the model's view. Default is true - *

- * Set this to false if you want the layout params on the model's layout resource to be kept. - * - * @param model The model who's view is being created - * @param modelPosition The position of the model in the models list - */ - protected boolean useViewStubLayoutParams(EpoxyModel model, int modelPosition) { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#useViewStubLayoutParams(). protected boolean useViewStubLayoutParams(EpoxyModel model, int modelPosition) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local63 EpoxyModel model -// ^^^^^^^^^^^^^ definition local64 int modelPosition - return true; - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected final ModelGroupHolder createNewHolder(@NonNull ViewParent parent) { -// ^^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#createNewHolder(). @Override protected final unresolved_type createNewHolder(unresolved_type parent) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local65 @NonNull unresolved_type parent - return new ModelGroupHolder(parent); -// ^^^^^^ reference local65 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean equals(Object o) { -// ^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#equals(). @Override public boolean equals(Object o) -// ^^^^^^ reference java/lang/Object# -// ^ definition local66 Object o - if (this == o) { -// ^ reference local66 - return true; - } - if (!(o instanceof EpoxyModelGroup)) { -// ^ reference local66 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup# - return false; - } - if (!super.equals(o)) { -// ^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#super. -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModel#equals(). -// ^ reference local66 - return false; - } - - EpoxyModelGroup that = (EpoxyModelGroup) o; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup# -// ^^^^ definition local67 EpoxyModelGroup that -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup# -// ^ reference local66 - - return models.equals(that.models); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#models. -// ^^^^^^ reference java/util/List#equals(). -// ^^^^ reference local67 -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#models. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int hashCode() { -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelGroup#hashCode(). @Override public int hashCode() - int result = super.hashCode(); -// ^^^^^^ definition local68 int result -// ^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#super. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#hashCode(). - result = 31 * result + models.hashCode(); -// ^^^^^^ reference local68 -// ^^^^^^ reference local68 -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModelGroup#models. -// ^^^^^^^^ reference java/util/List#hashCode(). - return result; -// ^^^^^^ reference local68 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelTouchCallback.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelTouchCallback.java deleted file mode 100644 index afb711f1e..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelTouchCallback.java +++ /dev/null @@ -1,623 +0,0 @@ -package com.airbnb.epoxy; - -import android.graphics.Canvas; -// ^^^^^^^ reference android/ -// ^^^^^^^^ reference android/graphics/ -// ^^^^^^ reference android/graphics/Canvas# -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# - -import com.airbnb.viewmodeladapter.R; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^^^^^^^^^^^^ reference com/airbnb/viewmodeladapter/ -// ^ reference com/airbnb/viewmodeladapter/R# - -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.recyclerview.widget.ItemTouchHelper; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/ItemTouchHelper# -import androidx.recyclerview.widget.RecyclerView; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView# - -/** - * A wrapper around {@link androidx.recyclerview.widget.ItemTouchHelper.Callback} to enable - * easier touch support when working with Epoxy models. - *

- * For simplicity you can use {@link EpoxyTouchHelper} to set up touch handling via this class for - * you instead of using this class directly. However, you may choose to use this class directly with - * your own {@link ItemTouchHelper} if you need extra flexibility or customization. - */ -public abstract class EpoxyModelTouchCallback -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback# public abstract class EpoxyModelTouchCallback -// ^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#[T] T extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# - extends EpoxyTouchHelperCallback implements EpoxyDragCallback, EpoxySwipeCallback { -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback# -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyDragCallback# -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxySwipeCallback# -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] - - private static final int TOUCH_DEBOUNCE_MILLIS = 300; -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#TOUCH_DEBOUNCE_MILLIS. private static final int TOUCH_DEBOUNCE_MILLIS - - @Nullable private final EpoxyController controller; -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#controller. @Nullable private final EpoxyController controller - private final Class targetModelClass; -// ^^^^^ reference java/lang/Class# -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#targetModelClass. private final Class targetModelClass - private EpoxyViewHolder holderBeingDragged; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#holderBeingDragged. private EpoxyViewHolder holderBeingDragged - private EpoxyViewHolder holderBeingSwiped; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#holderBeingSwiped. private EpoxyViewHolder holderBeingSwiped - - public EpoxyModelTouchCallback(@Nullable EpoxyController controller, Class targetModelClass) { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#``(). public EpoxyModelTouchCallback(EpoxyController controller, Class targetModelClass) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local0 @Nullable EpoxyController controller -// ^^^^^ reference java/lang/Class# -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^^^^^^^^^^^^ definition local1 Class targetModelClass - this.controller = controller; -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#controller. -// ^^^^^^^^^^ reference local0 - this.targetModelClass = targetModelClass; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#targetModelClass. -// ^^^^^^^^^^^^^^^^ reference local1 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected int getMovementFlags(RecyclerView recyclerView, EpoxyViewHolder viewHolder) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#getMovementFlags(). @Override protected int getMovementFlags(unresolved_type recyclerView, EpoxyViewHolder viewHolder) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local2 unresolved_type recyclerView -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local3 EpoxyViewHolder viewHolder - EpoxyModel model = viewHolder.getModel(); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local4 EpoxyModel model -// ^^^^^^^^^^ reference local3 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). - - // If multiple touch callbacks are registered on the recyclerview (to support combinations of - // dragging and dropping) then we won't want to enable anything if another - // callback has a view actively selected. - boolean isOtherCallbackActive = -// ^^^^^^^^^^^^^^^^^^^^^ definition local5 boolean isOtherCallbackActive - holderBeingDragged == null -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#holderBeingDragged. - && holderBeingSwiped == null -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#holderBeingSwiped. - && recyclerViewHasSelection(recyclerView); -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#recyclerViewHasSelection(). -// ^^^^^^^^^^^^ reference local2 - - if (!isOtherCallbackActive && isTouchableModel(model)) { -// ^^^^^^^^^^^^^^^^^^^^^ reference local5 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#isTouchableModel(). -// ^^^^^ reference local4 - //noinspection unchecked - return getMovementFlagsForModel((T) model, viewHolder.getAdapterPosition()); -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyTouchCallback#getMovementFlagsForModel(). -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^ reference local4 -// ^^^^^^^^^^ reference local3 -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getAdapterPosition# - } else { - return 0; - } - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected boolean canDropOver(RecyclerView recyclerView, EpoxyViewHolder current, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#canDropOver(). @Override protected boolean canDropOver(unresolved_type recyclerView, EpoxyViewHolder current, EpoxyViewHolder target) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local6 unresolved_type recyclerView -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^ definition local7 EpoxyViewHolder current - EpoxyViewHolder target) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local8 EpoxyViewHolder target - // By default we don't allow dropping on a model that isn't a drag target - return isTouchableModel(target.getModel()); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#isTouchableModel(). -// ^^^^^^ reference local8 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). - } - - protected boolean isTouchableModel(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#isTouchableModel(). protected boolean isTouchableModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local9 EpoxyModel model - return targetModelClass.isInstance(model); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#targetModelClass. -// ^^^^^^^^^^ reference java/lang/Class#isInstance(). -// ^^^^^ reference local9 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected boolean onMove(RecyclerView recyclerView, EpoxyViewHolder viewHolder, -// ^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#onMove(). @Override protected boolean onMove(unresolved_type recyclerView, EpoxyViewHolder viewHolder, EpoxyViewHolder target) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local10 unresolved_type recyclerView -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local11 EpoxyViewHolder viewHolder - EpoxyViewHolder target) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local12 EpoxyViewHolder target - - if (controller == null) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#controller. - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "A controller must be provided in the constructor if dragging is enabled"); - } - - int fromPosition = viewHolder.getAdapterPosition(); -// ^^^^^^^^^^^^ definition local13 int fromPosition -// ^^^^^^^^^^ reference local11 -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getAdapterPosition# - int toPosition = target.getAdapterPosition(); -// ^^^^^^^^^^ definition local14 int toPosition -// ^^^^^^ reference local12 -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getAdapterPosition# - controller.moveModel(fromPosition, toPosition); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#controller. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#moveModel(). -// ^^^^^^^^^^^^ reference local13 -// ^^^^^^^^^^ reference local14 - - EpoxyModel model = viewHolder.getModel(); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local15 EpoxyModel model -// ^^^^^^^^^^ reference local11 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). - if (!isTouchableModel(model)) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#isTouchableModel(). -// ^^^^^ reference local15 - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "A model was dragged that is not a valid target: " + model.getClass()); -// ^^^^^ reference local15 -// ^^^^^^^^ reference java/lang/Object#getClass(). - } - - //noinspection unchecked - onModelMoved(fromPosition, toPosition, (T) model, viewHolder.itemView); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#onModelMoved(). -// ^^^^^^^^^^^^ reference local13 -// ^^^^^^^^^^ reference local14 -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^ reference local15 -// ^^^^^^^^^^ reference local11 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView# - return true; - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onModelMoved(int fromPosition, int toPosition, T modelBeingMoved, View itemView) { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#onModelMoved(). @Override public void onModelMoved(int fromPosition, int toPosition, T modelBeingMoved, unresolved_type itemView) -// ^^^^^^^^^^^^ definition local16 int fromPosition -// ^^^^^^^^^^ definition local17 int toPosition -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^^^^^^^^^^^ definition local18 T modelBeingMoved -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local19 unresolved_type itemView - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected void onSwiped(EpoxyViewHolder viewHolder, int direction) { -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#onSwiped(). @Override protected void onSwiped(EpoxyViewHolder viewHolder, int direction) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local20 EpoxyViewHolder viewHolder -// ^^^^^^^^^ definition local21 int direction - EpoxyModel model = viewHolder.getModel(); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local22 EpoxyModel model -// ^^^^^^^^^^ reference local20 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). - View view = viewHolder.itemView; -// ^^^^ reference _root_/ -// ^^^^ definition local23 unresolved_type view -// ^^^^^^^^^^ reference local20 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView# - int position = viewHolder.getAdapterPosition(); -// ^^^^^^^^ definition local24 int position -// ^^^^^^^^^^ reference local20 -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getAdapterPosition# - - if (!isTouchableModel(model)) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#isTouchableModel(). -// ^^^^^ reference local22 - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "A model was swiped that is not a valid target: " + model.getClass()); -// ^^^^^ reference local22 -// ^^^^^^^^ reference java/lang/Object#getClass(). - } - - //noinspection unchecked - onSwipeCompleted((T) model, view, position, direction); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#onSwipeCompleted(). -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^ reference local22 -// ^^^^ reference local23 -// ^^^^^^^^ reference local24 -// ^^^^^^^^^ reference local21 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onSwipeCompleted(T model, View itemView, int position, int direction) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#onSwipeCompleted(). @Override public void onSwipeCompleted(T model, unresolved_type itemView, int position, int direction) -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^ definition local25 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local26 unresolved_type itemView -// ^^^^^^^^ definition local27 int position -// ^^^^^^^^^ definition local28 int direction - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected void onSelectedChanged(@Nullable EpoxyViewHolder viewHolder, int actionState) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#onSelectedChanged(). @Override protected void onSelectedChanged(EpoxyViewHolder viewHolder, int actionState) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local29 @Nullable EpoxyViewHolder viewHolder -// ^^^^^^^^^^^ definition local30 int actionState - super.onSelectedChanged(viewHolder, actionState); -// ^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#super. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#onSelectedChanged(). -// ^^^^^^^^^^ reference local29 -// ^^^^^^^^^^^ reference local30 - - if (viewHolder != null) { -// ^^^^^^^^^^ reference local29 - EpoxyModel model = viewHolder.getModel(); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local31 EpoxyModel model -// ^^^^^^^^^^ reference local29 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). - if (!isTouchableModel(model)) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#isTouchableModel(). -// ^^^^^ reference local31 - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "A model was selected that is not a valid target: " + model.getClass()); -// ^^^^^ reference local31 -// ^^^^^^^^ reference java/lang/Object#getClass(). - } - - markRecyclerViewHasSelection((RecyclerView) viewHolder.itemView.getParent()); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#markRecyclerViewHasSelection(). -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ reference local29 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView# -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView#getParent# - - if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) { -// ^^^^^^^^^^^ reference local30 -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^ reference ACTION_STATE_SWIPE# - holderBeingSwiped = viewHolder; -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#holderBeingSwiped. -// ^^^^^^^^^^ reference local29 - //noinspection unchecked - onSwipeStarted((T) model, viewHolder.itemView, viewHolder.getAdapterPosition()); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#onSwipeStarted(). -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^ reference local31 -// ^^^^^^^^^^ reference local29 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView# -// ^^^^^^^^^^ reference local29 -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getAdapterPosition# - } else if (actionState == ItemTouchHelper.ACTION_STATE_DRAG) { -// ^^^^^^^^^^^ reference local30 -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^ reference ACTION_STATE_DRAG# - holderBeingDragged = viewHolder; -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#holderBeingDragged. -// ^^^^^^^^^^ reference local29 - //noinspection unchecked - onDragStarted((T) model, viewHolder.itemView, viewHolder.getAdapterPosition()); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#onDragStarted(). -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^ reference local31 -// ^^^^^^^^^^ reference local29 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView# -// ^^^^^^^^^^ reference local29 -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getAdapterPosition# - } - } else if (holderBeingDragged != null) { -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#holderBeingDragged. - //noinspection unchecked - onDragReleased((T) holderBeingDragged.getModel(), holderBeingDragged.itemView); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#onDragReleased(). -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#holderBeingDragged. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#holderBeingDragged. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView# - holderBeingDragged = null; -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#holderBeingDragged. - } else if (holderBeingSwiped != null) { -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#holderBeingSwiped. - //noinspection unchecked - onSwipeReleased((T) holderBeingSwiped.getModel(), holderBeingSwiped.itemView); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#onSwipeReleased(). -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#holderBeingSwiped. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#holderBeingSwiped. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView# - holderBeingSwiped = null; -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#holderBeingSwiped. - } - } - - private void markRecyclerViewHasSelection(RecyclerView recyclerView) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#markRecyclerViewHasSelection(). private void markRecyclerViewHasSelection(unresolved_type recyclerView) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local32 unresolved_type recyclerView - recyclerView.setTag(R.id.epoxy_touch_helper_selection_status, Boolean.TRUE); -// ^^^^^^^^^^^^ reference local32 -// ^^^^^^ reference setTag# -// ^ reference R/ -// ^^ reference R/id# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference R/id#epoxy_touch_helper_selection_status# -// ^^^^^^^ reference java/lang/Boolean# -// ^^^^ reference java/lang/Boolean#TRUE. - } - - private boolean recyclerViewHasSelection(RecyclerView recyclerView) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#recyclerViewHasSelection(). private boolean recyclerViewHasSelection(unresolved_type recyclerView) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local33 unresolved_type recyclerView - return recyclerView.getTag(R.id.epoxy_touch_helper_selection_status) != null; -// ^^^^^^^^^^^^ reference local33 -// ^^^^^^ reference getTag# -// ^ reference R/ -// ^^ reference R/id# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference R/id#epoxy_touch_helper_selection_status# - } - - private void clearRecyclerViewSelectionMarker(RecyclerView recyclerView) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#clearRecyclerViewSelectionMarker(). private void clearRecyclerViewSelectionMarker(unresolved_type recyclerView) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local34 unresolved_type recyclerView - recyclerView.setTag(R.id.epoxy_touch_helper_selection_status, null); -// ^^^^^^^^^^^^ reference local34 -// ^^^^^^ reference setTag# -// ^ reference R/ -// ^^ reference R/id# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference R/id#epoxy_touch_helper_selection_status# - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onSwipeStarted(T model, View itemView, int adapterPosition) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#onSwipeStarted(). @Override public void onSwipeStarted(T model, unresolved_type itemView, int adapterPosition) -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^ definition local35 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local36 unresolved_type itemView -// ^^^^^^^^^^^^^^^ definition local37 int adapterPosition - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onSwipeReleased(T model, View itemView) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#onSwipeReleased(). @Override public void onSwipeReleased(T model, unresolved_type itemView) -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^ definition local38 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local39 unresolved_type itemView - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onDragStarted(T model, View itemView, int adapterPosition) { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#onDragStarted(). @Override public void onDragStarted(T model, unresolved_type itemView, int adapterPosition) -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^ definition local40 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local41 unresolved_type itemView -// ^^^^^^^^^^^^^^^ definition local42 int adapterPosition - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onDragReleased(T model, View itemView) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#onDragReleased(). @Override public void onDragReleased(T model, unresolved_type itemView) -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^ definition local43 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local44 unresolved_type itemView - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected void clearView(final RecyclerView recyclerView, EpoxyViewHolder viewHolder) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#clearView(). @Override protected void clearView(unresolved_type recyclerView, EpoxyViewHolder viewHolder) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local45 final unresolved_type recyclerView -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local46 EpoxyViewHolder viewHolder - super.clearView(recyclerView, viewHolder); -// ^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#super. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#clearView(). -// ^^^^^^^^^^^^ reference local45 -// ^^^^^^^^^^ reference local46 - //noinspection unchecked - clearView((T) viewHolder.getModel(), viewHolder.itemView); -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#clearView(). -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^^^^^^ reference local46 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). -// ^^^^^^^^^^ reference local46 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView# - - // If multiple touch helpers are in use, one touch helper can pick up buffered touch inputs - // immediately after another touch event finishes. This leads to things like a view being - // selected for drag when another view finishes its swipe off animation. To prevent that we - // keep the recyclerview marked as having an active selection for a brief period after a - // touch event ends. - recyclerView.postDelayed(new Runnable() { -// ^^^^^^^^^^^^ reference local45 -// ^^^^^^^^^^^ reference postDelayed# -// ^^^^^^^^ reference java/lang/Runnable# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void run() { -// ^^^ definition local49 @Override public void run() - clearRecyclerViewSelectionMarker(recyclerView); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#clearRecyclerViewSelectionMarker(). -// ^^^^^^^^^^^^ reference local45 - } - }, TOUCH_DEBOUNCE_MILLIS); -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#TOUCH_DEBOUNCE_MILLIS. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void clearView(T model, View itemView) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#clearView(+1). @Override public void clearView(T model, unresolved_type itemView) -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^ definition local50 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local51 unresolved_type itemView - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected void onChildDraw(Canvas c, RecyclerView recyclerView, EpoxyViewHolder viewHolder, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#onChildDraw(). @Override protected void onChildDraw(unresolved_type c, unresolved_type recyclerView, EpoxyViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) -// ^^^^^^ reference _root_/ -// ^ definition local52 unresolved_type c -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local53 unresolved_type recyclerView -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local54 EpoxyViewHolder viewHolder - float dX, float dY, int actionState, boolean isCurrentlyActive) { -// ^^ definition local55 float dX -// ^^ definition local56 float dY -// ^^^^^^^^^^^ definition local57 int actionState -// ^^^^^^^^^^^^^^^^^ definition local58 boolean isCurrentlyActive - super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); -// ^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#super. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#onChildDraw(). -// ^ reference local52 -// ^^^^^^^^^^^^ reference local53 -// ^^^^^^^^^^ reference local54 -// ^^ reference local55 -// ^^ reference local56 -// ^^^^^^^^^^^ reference local57 -// ^^^^^^^^^^^^^^^^^ reference local58 - - EpoxyModel model = viewHolder.getModel(); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local59 EpoxyModel model -// ^^^^^^^^^^ reference local54 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). - if (!isTouchableModel(model)) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#isTouchableModel(). -// ^^^^^ reference local59 - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "A model was selected that is not a valid target: " + model.getClass()); -// ^^^^^ reference local59 -// ^^^^^^^^ reference java/lang/Object#getClass(). - } - - View itemView = viewHolder.itemView; -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local60 unresolved_type itemView -// ^^^^^^^^^^ reference local54 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView# - - float swipeProgress; -// ^^^^^^^^^^^^^ definition local61 float swipeProgress - if (Math.abs(dX) > Math.abs(dY)) { -// ^^^^ reference java/lang/Math# -// ^^^ reference java/lang/Math#abs(+2). -// ^^ reference local55 -// ^^^^ reference java/lang/Math# -// ^^^ reference java/lang/Math#abs(+2). -// ^^ reference local56 - swipeProgress = dX / itemView.getWidth(); -// ^^^^^^^^^^^^^ reference local61 -// ^^ reference local55 -// ^^^^^^^^ reference local60 -// ^^^^^^^^ reference getWidth# - } else { - swipeProgress = dY / itemView.getHeight(); -// ^^^^^^^^^^^^^ reference local61 -// ^^ reference local56 -// ^^^^^^^^ reference local60 -// ^^^^^^^^^ reference getHeight# - } - - // Clamp to 1/-1 in the case of side padding where the view can be swiped extra - float clampedProgress = Math.max(-1f, Math.min(1f, swipeProgress)); -// ^^^^^^^^^^^^^^^ definition local62 float clampedProgress -// ^^^^ reference java/lang/Math# -// ^^^ reference java/lang/Math#max(+2). -// ^^^^ reference java/lang/Math# -// ^^^ reference java/lang/Math#min(+2). -// ^^^^^^^^^^^^^ reference local61 - - //noinspection unchecked - onSwipeProgressChanged((T) model, itemView, clampedProgress, c); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#onSwipeProgressChanged(). -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^ reference local59 -// ^^^^^^^^ reference local60 -// ^^^^^^^^^^^^^^^ reference local62 -// ^ reference local52 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onSwipeProgressChanged(T model, View itemView, float swipeProgress, -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#onSwipeProgressChanged(). @Override public void onSwipeProgressChanged(T model, unresolved_type itemView, float swipeProgress, unresolved_type canvas) -// ^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#[T] -// ^^^^^ definition local63 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local64 unresolved_type itemView -// ^^^^^^^^^^^^^ definition local65 float swipeProgress - Canvas canvas) { -// ^^^^^^ reference _root_/ -// ^^^^^^ definition local66 unresolved_type canvas - - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelWithHolder.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelWithHolder.java deleted file mode 100644 index f58d1897e..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelWithHolder.java +++ /dev/null @@ -1,213 +0,0 @@ -package com.airbnb.epoxy; - -import android.view.ViewParent; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^^^^^^^ reference android/view/ViewParent# - -import com.airbnb.epoxy.VisibilityState.Visibility; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState# -// ^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState#Visibility# - -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -import androidx.annotation.FloatRange; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^^ reference androidx/annotation/FloatRange# -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# -import androidx.annotation.Px; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^ reference androidx/annotation/Px# - -/** - * A version of {@link com.airbnb.epoxy.EpoxyModel} that allows you to use a view holder pattern - * instead of a specific view when binding to your model. - */ -public abstract class EpoxyModelWithHolder extends EpoxyModel { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithHolder# public abstract class EpoxyModelWithHolder -// ^ definition com/airbnb/epoxy/EpoxyModelWithHolder#[T] T extends EpoxyHolder -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyHolder# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModelWithHolder#[T] - - public EpoxyModelWithHolder() { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithHolder#``(). public EpoxyModelWithHolder() - } - - public EpoxyModelWithHolder(long id) { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithHolder#``(+1). public EpoxyModelWithHolder(long id) -// ^^ definition local0 long id - super(id); -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#``(). -// ^^ reference local0 - } - - /** This should return a new instance of your {@link com.airbnb.epoxy.EpoxyHolder} class. */ - protected abstract T createNewHolder(@NonNull ViewParent parent); -// ^ reference com/airbnb/epoxy/EpoxyModelWithHolder#[T] -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithHolder#createNewHolder(). protected abstract T createNewHolder(unresolved_type parent) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local1 @NonNull unresolved_type parent - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void bind(@NonNull T holder) { -// ^^^^ definition com/airbnb/epoxy/EpoxyModelWithHolder#bind(). @Override public void bind(T holder) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModelWithHolder#[T] -// ^^^^^^ definition local2 @NonNull T holder - super.bind(holder); -// ^^^^^ reference com/airbnb/epoxy/EpoxyModelWithHolder#super. -// ^^^^ reference com/airbnb/epoxy/EpoxyModel#bind(). -// ^^^^^^ reference local2 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void bind(@NonNull T holder, @NonNull List payloads) { -// ^^^^ definition com/airbnb/epoxy/EpoxyModelWithHolder#bind(+1). @Override public void bind(T holder, List payloads) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModelWithHolder#[T] -// ^^^^^^ definition local3 @NonNull T holder -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference java/util/List# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^ definition local4 @NonNull List payloads - super.bind(holder, payloads); -// ^^^^^ reference com/airbnb/epoxy/EpoxyModelWithHolder#super. -// ^^^^ reference com/airbnb/epoxy/EpoxyModel#bind(+1). -// ^^^^^^ reference local3 -// ^^^^^^^^ reference local4 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void bind(@NonNull T holder, @NonNull EpoxyModel previouslyBoundModel) { -// ^^^^ definition com/airbnb/epoxy/EpoxyModelWithHolder#bind(+2). @Override public void bind(T holder, EpoxyModel previouslyBoundModel) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModelWithHolder#[T] -// ^^^^^^ definition local5 @NonNull T holder -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^^ definition local6 @NonNull EpoxyModel previouslyBoundModel - super.bind(holder, previouslyBoundModel); -// ^^^^^ reference com/airbnb/epoxy/EpoxyModelWithHolder#super. -// ^^^^ reference com/airbnb/epoxy/EpoxyModel#bind(+2). -// ^^^^^^ reference local5 -// ^^^^^^^^^^^^^^^^^^^^ reference local6 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void unbind(@NonNull T holder) { -// ^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithHolder#unbind(). @Override public void unbind(T holder) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModelWithHolder#[T] -// ^^^^^^ definition local7 @NonNull T holder - super.unbind(holder); -// ^^^^^ reference com/airbnb/epoxy/EpoxyModelWithHolder#super. -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModel#unbind(). -// ^^^^^^ reference local7 - } - - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onVisibilityStateChanged(@Visibility int visibilityState, @NonNull T holder) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithHolder#onVisibilityStateChanged(). @Override public void onVisibilityStateChanged(int visibilityState, T holder) -// ^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState#Visibility# -// ^^^^^^^^^^^^^^^ definition local8 @Visibility int visibilityState -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModelWithHolder#[T] -// ^^^^^^ definition local9 @NonNull T holder - super.onVisibilityStateChanged(visibilityState, holder); -// ^^^^^ reference com/airbnb/epoxy/EpoxyModelWithHolder#super. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onVisibilityStateChanged(). -// ^^^^^^^^^^^^^^^ reference local8 -// ^^^^^^ reference local9 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onVisibilityChanged( -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithHolder#onVisibilityChanged(). @Override public void onVisibilityChanged(float percentVisibleHeight, float percentVisibleWidth, int visibleHeight, int visibleWidth, T holder) - @FloatRange(from = 0, to = 100) float percentVisibleHeight, -// ^^^^^^^^^^ reference androidx/annotation/FloatRange# -// ^^^^ reference androidx/annotation/FloatRange#from(). -// ^^ reference androidx/annotation/FloatRange#to(). -// ^^^^^^^^^^^^^^^^^^^^ definition local10 @FloatRange(from = 0, to = 100) float percentVisibleHeight - @FloatRange(from = 0, to = 100) float percentVisibleWidth, -// ^^^^^^^^^^ reference androidx/annotation/FloatRange# -// ^^^^ reference androidx/annotation/FloatRange#from(). -// ^^ reference androidx/annotation/FloatRange#to(). -// ^^^^^^^^^^^^^^^^^^^ definition local11 @FloatRange(from = 0, to = 100) float percentVisibleWidth - @Px int visibleHeight, @Px int visibleWidth, -// ^^ reference androidx/annotation/Px# -// ^^^^^^^^^^^^^ definition local12 @Px int visibleHeight -// ^^ reference androidx/annotation/Px# -// ^^^^^^^^^^^^ definition local13 @Px int visibleWidth - @NonNull T holder) { -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^ reference com/airbnb/epoxy/EpoxyModelWithHolder#[T] -// ^^^^^^ definition local14 @NonNull T holder - super.onVisibilityChanged( -// ^^^^^ reference com/airbnb/epoxy/EpoxyModelWithHolder#super. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onVisibilityChanged(). - percentVisibleHeight, percentVisibleWidth, -// ^^^^^^^^^^^^^^^^^^^^ reference local10 -// ^^^^^^^^^^^^^^^^^^^ reference local11 - visibleHeight, visibleWidth, -// ^^^^^^^^^^^^^ reference local12 -// ^^^^^^^^^^^^ reference local13 - holder); -// ^^^^^^ reference local14 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean onFailedToRecycleView(T holder) { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithHolder#onFailedToRecycleView(). @Override public boolean onFailedToRecycleView(T holder) -// ^ reference com/airbnb/epoxy/EpoxyModelWithHolder#[T] -// ^^^^^^ definition local15 T holder - return super.onFailedToRecycleView(holder); -// ^^^^^ reference com/airbnb/epoxy/EpoxyModelWithHolder#super. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onFailedToRecycleView(). -// ^^^^^^ reference local15 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onViewAttachedToWindow(T holder) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithHolder#onViewAttachedToWindow(). @Override public void onViewAttachedToWindow(T holder) -// ^ reference com/airbnb/epoxy/EpoxyModelWithHolder#[T] -// ^^^^^^ definition local16 T holder - super.onViewAttachedToWindow(holder); -// ^^^^^ reference com/airbnb/epoxy/EpoxyModelWithHolder#super. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onViewAttachedToWindow(). -// ^^^^^^ reference local16 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onViewDetachedFromWindow(T holder) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithHolder#onViewDetachedFromWindow(). @Override public void onViewDetachedFromWindow(T holder) -// ^ reference com/airbnb/epoxy/EpoxyModelWithHolder#[T] -// ^^^^^^ definition local17 T holder - super.onViewDetachedFromWindow(holder); -// ^^^^^ reference com/airbnb/epoxy/EpoxyModelWithHolder#super. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onViewDetachedFromWindow(). -// ^^^^^^ reference local17 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelWithView.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelWithView.java deleted file mode 100644 index fe323e60b..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelWithView.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.airbnb.epoxy; - -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# -import android.view.ViewGroup; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^^^^^^ reference android/view/ViewGroup# - -import androidx.annotation.LayoutRes; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# - -/** - * A model that allows its view to be built programmatically instead of by inflating a layout - * resource. Just implement {@link #buildView} so the adapter can create a new view for this model - * when needed. - *

- * {@link #getViewType()} is used by the adapter to know how to reuse views for this model. This - * means that all models that return the same type should be able to share the same view, and the - * view won't be shared with models of any other type. - *

- * If it is left unimplemented then at runtime a unique view type will be created to use for all - * models of that class. The generated view type will be negative so that it cannot collide with - * values from resource files, which are used in normal Epoxy models. If you would like to share - * the same view between models of different classes you can have those classes return the same view - * type. A good way to manually create a view type value is by creating an R.id. value in an ids - * resource file. - */ -public abstract class EpoxyModelWithView extends EpoxyModel { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithView# public abstract class EpoxyModelWithView -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithView#``(). public EpoxyModelWithView() -// ^ definition com/airbnb/epoxy/EpoxyModelWithView#[T] T extends unresolved_type -// ^^^^ reference _root_/ -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModelWithView#[T] - - /** - * Get the view type associated with this model's view. Any models with the same view type will - * have views recycled between them. - * - * @see androidx.recyclerview.widget.RecyclerView.Adapter#getItemViewType(int) - */ - @Override -// ^^^^^^^^ reference java/lang/Override# - protected int getViewType() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithView#getViewType(). @Override protected int getViewType() - return 0; - } - - /** - * Create and return a new instance of a view for this model. If no layout params are set on the - * returned view then default layout params will be used. - * - * @param parent The parent ViewGroup that the returned view will be added to. - */ - @Override -// ^^^^^^^^ reference java/lang/Override# - protected abstract T buildView(@NonNull ViewGroup parent); -// ^ reference com/airbnb/epoxy/EpoxyModelWithView#[T] -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithView#buildView(). @Override protected abstract T buildView(unresolved_type parent) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local0 @NonNull unresolved_type parent - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected final int getDefaultLayout() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithView#getDefaultLayout(). @Override protected final int getDefaultLayout() - throw new UnsupportedOperationException( -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/UnsupportedOperationException#``(+1). - "Layout resources are unsupported. Views must be created with `buildView`"); - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public EpoxyModel layout(@LayoutRes int layoutRes) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/EpoxyModelWithView#[T] -// ^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithView#layout(). @Override public EpoxyModel layout(int layoutRes) -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# -// ^^^^^^^^^ definition local1 @LayoutRes int layoutRes - throw new UnsupportedOperationException( -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/UnsupportedOperationException#``(+1). - "Layout resources are unsupported. Views must be created with `buildView`"); - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyRecyclerView.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyRecyclerView.kt deleted file mode 100644 index ac758fac6..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyRecyclerView.kt +++ /dev/null @@ -1,1159 +0,0 @@ -package com.airbnb.epoxy -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ - -import android.content.Context -import android.util.AttributeSet -import android.util.TypedValue -import android.view.ViewGroup -import androidx.annotation.CallSuper -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^ reference androidx/annotation/CallSuper# -import androidx.annotation.DimenRes -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/DimenRes# -import androidx.annotation.Dimension -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^ reference androidx/annotation/Dimension# -import androidx.annotation.Px -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^ reference androidx/annotation/Px# -import androidx.recyclerview.widget.GridLayoutManager -// ^^^^^^^^ reference androidx/ -import androidx.recyclerview.widget.LinearLayoutManager -// ^^^^^^^^ reference androidx/ -import androidx.recyclerview.widget.RecyclerView -// ^^^^^^^^ reference androidx/ -import com.airbnb.epoxy.preload.EpoxyModelPreloader -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^ reference com/airbnb/epoxy/preload/ -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -import com.airbnb.epoxy.preload.EpoxyPreloader -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^ reference com/airbnb/epoxy/preload/ -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader# -import com.airbnb.epoxy.preload.PreloadErrorHandler -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^ reference com/airbnb/epoxy/preload/ -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# -import com.airbnb.epoxy.preload.PreloadRequestHolder -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^ reference com/airbnb/epoxy/preload/ -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# -import com.airbnb.epoxy.preload.ViewMetadata -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^ reference com/airbnb/epoxy/preload/ -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -import com.airbnb.viewmodeladapter.R -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ - -/** - * A RecyclerView implementation that makes for easier integration with Epoxy. The goal of this - * class is to reduce boilerplate in setting up a RecyclerView by applying common defaults. - * Additionally, several performance optimizations are made. - * - * Improvements in this class are: - * - * 1. A single view pool is automatically shared between all [EpoxyRecyclerView] instances in - * the same activity. This should increase view recycling potential and increase performance when - * nested RecyclerViews are used. See [.initViewPool]. - * - * 2. A layout manager is automatically added with assumed defaults. See [createLayoutManager] - * - * 3. Fixed size is enabled if this view's size is MATCH_PARENT - * - * 4. If a [GridLayoutManager] is used this will automatically sync the span count with the - * [EpoxyController]. See [syncSpanCount] - * - * 5. Helper methods like [withModels], [setModels], [buildModelsWith] - * make it simpler to set up simple RecyclerViews. - * - * 6. Set an EpoxyController and build models in one step - - * [setControllerAndBuildModels] or [withModels] - * - * 7. Support for automatic item spacing. See [.setItemSpacingPx] - * - * 8. Defaults for usage as a nested recyclerview are provided in [Carousel]. - * - * 9. [setClipToPadding] is set to false by default since that behavior is commonly - * desired in a scrolling list - */ -open class EpoxyRecyclerView @JvmOverloads constructor( -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView# public open class EpoxyRecyclerView -// ^^^^^^^^^^^^ reference kotlin/jvm/JvmOverloads#``(). -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#``(). public constructor EpoxyRecyclerView(context: [ERROR : Context], attrs: [ERROR : AttributeSet]? = ..., defStyleAttr: kotlin.Int = ...) - context: Context, -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#``().(context) value-parameter context: [ERROR : Context] - attrs: AttributeSet? = null, -// ^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#``().(attrs) value-parameter attrs: [ERROR : AttributeSet]? = ... - defStyleAttr: Int = 0 -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#``().(defStyleAttr) value-parameter defStyleAttr: kotlin.Int = ... -// ^^^ reference kotlin/Int# -) : RecyclerView(context, attrs, defStyleAttr) { -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#``().(context) -// ^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#``().(attrs) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#``().(defStyleAttr) - - protected val spacingDecorator = EpoxyItemSpacingDecorator() -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#spacingDecorator. protected final val spacingDecorator: [ERROR : Type for EpoxyItemSpacingDecorator()] -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#getSpacingDecorator(). protected final val spacingDecorator: [ERROR : Type for EpoxyItemSpacingDecorator()] - - private var epoxyController: EpoxyController? = null -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#epoxyController. private final var epoxyController: [ERROR : EpoxyController]? -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#getEpoxyController(). private final var epoxyController: [ERROR : EpoxyController]? -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setEpoxyController(). private final var epoxyController: [ERROR : EpoxyController]? - - /** - * The adapter that was removed because the RecyclerView was detached from the window. We save it - * so we can reattach it if the RecyclerView is reattached to window. This allows us to - * automatically restore the adapter, without risking leaking the RecyclerView if this view is - * never used again. - * - * Since the adapter is removed this recyclerview won't get adapter changes, but that's fine since - * the view isn't attached to window and isn't being drawn. - * - * This reference is cleared if another adapter is manually set, so we don't override the user's - * adapter choice. - * - * @see .setRemoveAdapterWhenDetachedFromWindow - */ - private var removedAdapter: RecyclerView.Adapter<*>? = null -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#removedAdapter. private final var removedAdapter: [ERROR : RecyclerView.Adapter<*>]? -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#getRemovedAdapter(). private final var removedAdapter: [ERROR : RecyclerView.Adapter<*>]? -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setRemovedAdapter(). private final var removedAdapter: [ERROR : RecyclerView.Adapter<*>]? - - private var removeAdapterWhenDetachedFromWindow = true -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#removeAdapterWhenDetachedFromWindow. private final var removeAdapterWhenDetachedFromWindow: kotlin.Boolean -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#getRemoveAdapterWhenDetachedFromWindow(). private final var removeAdapterWhenDetachedFromWindow: kotlin.Boolean -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setRemoveAdapterWhenDetachedFromWindow(). public final fun setRemoveAdapterWhenDetachedFromWindow(removeAdapterWhenDetachedFromWindow: kotlin.Boolean) - - private var delayMsWhenRemovingAdapterOnDetach: Int = DEFAULT_ADAPTER_REMOVAL_DELAY_MS -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#delayMsWhenRemovingAdapterOnDetach. private final var delayMsWhenRemovingAdapterOnDetach: kotlin.Int -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#getDelayMsWhenRemovingAdapterOnDetach(). private final var delayMsWhenRemovingAdapterOnDetach: kotlin.Int -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setDelayMsWhenRemovingAdapterOnDetach(). public final fun setDelayMsWhenRemovingAdapterOnDetach(delayMsWhenRemovingAdapterOnDetach: kotlin.Int) -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#Companion#DEFAULT_ADAPTER_REMOVAL_DELAY_MS. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#Companion#getDEFAULT_ADAPTER_REMOVAL_DELAY_MS(). - - /** - * Tracks whether [.removeAdapterRunnable] has been posted to run - * later. This lets us know if we should cancel the runnable at certain times. This removes the - * overhead of needlessly attempting to remove the runnable when it isn't posted. - */ - private var isRemoveAdapterRunnablePosted: Boolean = false -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#isRemoveAdapterRunnablePosted. private final var isRemoveAdapterRunnablePosted: kotlin.Boolean -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#getIsRemoveAdapterRunnablePosted(). private final var isRemoveAdapterRunnablePosted: kotlin.Boolean -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setIsRemoveAdapterRunnablePosted(). private final var isRemoveAdapterRunnablePosted: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - private val removeAdapterRunnable = Runnable { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#removeAdapterRunnable. private final val removeAdapterRunnable: java.lang.Runnable -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#getRemoveAdapterRunnable(). private final val removeAdapterRunnable: java.lang.Runnable -// ^^^^^^^^ reference java/lang/Runnable# - if (isRemoveAdapterRunnablePosted) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#isRemoveAdapterRunnablePosted. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getIsRemoveAdapterRunnablePosted(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setIsRemoveAdapterRunnablePosted(). - // Canceling a runnable doesn't work accurately when a view switches between - // attached/detached, so we manually check that this should still be run - isRemoveAdapterRunnablePosted = false -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#isRemoveAdapterRunnablePosted. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getIsRemoveAdapterRunnablePosted(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setIsRemoveAdapterRunnablePosted(). - removeAdapter() -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#removeAdapter(). - } - } - - private val preloadScrollListeners: MutableList> = mutableListOf() -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#preloadScrollListeners. private final val preloadScrollListeners: kotlin.collections.MutableList> -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#getPreloadScrollListeners(). private final val preloadScrollListeners: kotlin.collections.MutableList> -// ^^^^^^^^^^^ reference kotlin/collections/MutableList# -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader# -// ^^^^^^^^^^^^^ reference kotlin/collections/CollectionsKt#mutableListOf(). - - private val preloadConfigs: MutableList> = mutableListOf() -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#preloadConfigs. private final val preloadConfigs: kotlin.collections.MutableList> -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#getPreloadConfigs(). private final val preloadConfigs: kotlin.collections.MutableList> -// ^^^^^^^^^^^ reference kotlin/collections/MutableList# -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig# -// ^^^^^^^^^^^^^ reference kotlin/collections/CollectionsKt#mutableListOf(). - - private class PreloadConfig, U : ViewMetadata?, P : PreloadRequestHolder>( -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig# private final class PreloadConfig -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#``(). public constructor PreloadConfig(maxPreload: kotlin.Int, errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */, preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader, requestHolderFactory: () -> P) -// ^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#[T] -// ^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#[U] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# - val maxPreload: Int, -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#maxPreload. public final val maxPreload: kotlin.Int -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#getMaxPreload(). public final val maxPreload: kotlin.Int -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#``().(maxPreload) value-parameter maxPreload: kotlin.Int -// ^^^ reference kotlin/Int# - val errorHandler: PreloadErrorHandler, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#errorHandler. public final val errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#getErrorHandler(). public final val errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#``().(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# - val preloader: EpoxyModelPreloader, -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#preloader. public final val preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#getPreloader(). public final val preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#``().(preloader) value-parameter preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#[T] -// ^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#[U] -// ^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#[P] - val requestHolderFactory: () -> P -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#requestHolderFactory. public final val requestHolderFactory: () -> P -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#getRequestHolderFactory(). public final val requestHolderFactory: () -> P -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#``().(requestHolderFactory) value-parameter requestHolderFactory: () -> P -// ^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#[P] - ) - - /** - * Setup a preloader to fetch content for a model's view before it is bound. - * This can be called multiple times if you would like to add separate preloaders - * for different models or content types. - * - * Preloaders are automatically attached and run, and are updated if the adapter changes. - * - * @param maxPreloadDistance How many items to prefetch ahead of the last bound item - * @param errorHandler Called when the preloader encounters an exception. We recommend throwing an - * exception in debug builds, and logging an error in production. - * @param preloader Describes how view content for the EpoxyModel should be preloaded - * @param requestHolderFactory Should create and return a new [PreloadRequestHolder] each time it is invoked - */ - fun , U : ViewMetadata?, P : PreloadRequestHolder> addPreloader( -// ^ definition com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().[T] -// ^ definition com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().[U] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^ definition com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#addPreloader(). public final fun addPreloader(maxPreloadDistance: kotlin.Int = ..., errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */, preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader, requestHolderFactory: () -> P) - maxPreloadDistance: Int = 3, -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().(maxPreloadDistance) value-parameter maxPreloadDistance: kotlin.Int = ... -// ^^^ reference kotlin/Int# - errorHandler: PreloadErrorHandler, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# - preloader: EpoxyModelPreloader, -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().(preloader) value-parameter preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^ reference com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().[T] -// ^ reference com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().[U] -// ^ reference com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().[P] - requestHolderFactory: () -> P -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().(requestHolderFactory) value-parameter requestHolderFactory: () -> P -// ^ reference com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().[P] - ) { - preloadConfigs.add( -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#preloadConfigs. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getPreloadConfigs(). -// ^^^ reference kotlin/collections/MutableList#add(). - PreloadConfig( -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#``(). - maxPreloadDistance, -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().(maxPreloadDistance) - errorHandler, -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().(errorHandler) - preloader, -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().(preloader) - requestHolderFactory -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#addPreloader().(requestHolderFactory) - ) - ) - - updatePreloaders() -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#updatePreloaders(). - } - - /** - * Clears all preloaders added with [addPreloader] - */ - fun clearPreloaders() { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#clearPreloaders(). public final fun clearPreloaders() - preloadConfigs.clear() -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#preloadConfigs. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getPreloadConfigs(). -// ^^^^^ reference kotlin/collections/MutableList#clear(). - updatePreloaders() -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#updatePreloaders(). - } - - private fun updatePreloaders() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#updatePreloaders(). private final fun updatePreloaders() - preloadScrollListeners.forEach { removeOnScrollListener(it) } -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#preloadScrollListeners. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getPreloadScrollListeners(). -// ^^^^^^^ reference kotlin/collections/CollectionsKt#forEach(+10). -// ^^ reference local0 - preloadScrollListeners.clear() -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#preloadScrollListeners. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getPreloadScrollListeners(). -// ^^^^^ reference kotlin/collections/MutableList#clear(). - val currAdapter = adapter ?: return -// ^^^^^^^^^^^ definition local1 val currAdapter: [ERROR : Type for adapter ?: return] - - preloadConfigs.forEach { preloadConfig -> -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#preloadConfigs. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getPreloadConfigs(). -// ^^^^^^^ reference kotlin/collections/CollectionsKt#forEach(+10). -// ^^^^^^^^^^^^^ definition local2 value-parameter preloadConfig: com.airbnb.epoxy.EpoxyRecyclerView.PreloadConfig<*, *, *> - - if (currAdapter is EpoxyAdapter) { -// ^^^^^^^^^^^ reference local1 - EpoxyPreloader.with( -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader# - currAdapter, -// ^^^^^^^^^^^ reference local1 - preloadConfig.requestHolderFactory, -// ^^^^^^^^^^^^^ reference local2 -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#requestHolderFactory. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#getRequestHolderFactory(). - preloadConfig.errorHandler, -// ^^^^^^^^^^^^^ reference local2 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#errorHandler. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#getErrorHandler(). - preloadConfig.maxPreload, -// ^^^^^^^^^^^^^ reference local2 -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#maxPreload. -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#getMaxPreload(). - listOf(preloadConfig.preloader) -// ^^^^^^ reference kotlin/collections/CollectionsKt#listOf(). -// ^^^^^^^^^^^^^ reference local2 -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#preloader. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#getPreloader(). - ) - } else { - epoxyController?.let { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#epoxyController. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getEpoxyController(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setEpoxyController(). - EpoxyPreloader.with( -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader# - it, - preloadConfig.requestHolderFactory, -// ^^^^^^^^^^^^^ reference local2 -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#requestHolderFactory. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#getRequestHolderFactory(). - preloadConfig.errorHandler, -// ^^^^^^^^^^^^^ reference local2 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#errorHandler. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#getErrorHandler(). - preloadConfig.maxPreload, -// ^^^^^^^^^^^^^ reference local2 -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#maxPreload. -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#getMaxPreload(). - listOf(preloadConfig.preloader) -// ^^^^^^ reference kotlin/collections/CollectionsKt#listOf(). -// ^^^^^^^^^^^^^ reference local2 -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#preloader. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#PreloadConfig#getPreloader(). - ) - } - }?.let { - preloadScrollListeners.add(it) -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#preloadScrollListeners. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getPreloadScrollListeners(). -// ^^^ reference kotlin/collections/MutableList#add(). - addOnScrollListener(it) - } - } - } - - /** - * If set to true, any adapter set on this recyclerview will be removed when this view is detached - * from the window. This is useful to prevent leaking a reference to this RecyclerView. This is - * useful in cases where the same adapter can be used across multiple views (views which can be - * destroyed and recreated), such as with fragments. In that case the adapter is not necessarily - * cleared from previous RecyclerViews, so the adapter will continue to hold a reference to those - * views and leak them. More details at https://github.com/airbnb/epoxy/wiki/Avoiding-Memory-Leaks#parent-view - * - * The default is true, but you can disable this if you don't want your adapter detached - * automatically. - * - * If the adapter is removed via this setting, it will be re-set on the RecyclerView if the - * RecyclerView is re-attached to the window at a later point. - */ - fun setRemoveAdapterWhenDetachedFromWindow(removeAdapterWhenDetachedFromWindow: Boolean) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setRemoveAdapterWhenDetachedFromWindow(). public final fun setRemoveAdapterWhenDetachedFromWindow(removeAdapterWhenDetachedFromWindow: kotlin.Boolean) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setRemoveAdapterWhenDetachedFromWindow().(removeAdapterWhenDetachedFromWindow) value-parameter removeAdapterWhenDetachedFromWindow: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - this.removeAdapterWhenDetachedFromWindow = removeAdapterWhenDetachedFromWindow -// ^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#removeAdapterWhenDetachedFromWindow. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getRemoveAdapterWhenDetachedFromWindow(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setRemoveAdapterWhenDetachedFromWindow(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setRemoveAdapterWhenDetachedFromWindow().(removeAdapterWhenDetachedFromWindow) - } - - /** - * If [.setRemoveAdapterWhenDetachedFromWindow] is set to true, this is the delay - * in milliseconds between when [.onDetachedFromWindow] is called and when the adapter is - * actually removed. - * - * By default a delay of {@value #DEFAULT_ADAPTER_REMOVAL_DELAY_MS} ms is used so that view - * transitions can complete before the adapter is removed. Otherwise if the adapter is removed - * before transitions finish it can clear the screen and break the transition. A notable case is - * fragment transitions, in which the fragment view is detached from window before the transition - * ends. - */ - fun setDelayMsWhenRemovingAdapterOnDetach(delayMsWhenRemovingAdapterOnDetach: Int) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setDelayMsWhenRemovingAdapterOnDetach(). public final fun setDelayMsWhenRemovingAdapterOnDetach(delayMsWhenRemovingAdapterOnDetach: kotlin.Int) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setDelayMsWhenRemovingAdapterOnDetach().(delayMsWhenRemovingAdapterOnDetach) value-parameter delayMsWhenRemovingAdapterOnDetach: kotlin.Int -// ^^^ reference kotlin/Int# - this.delayMsWhenRemovingAdapterOnDetach = delayMsWhenRemovingAdapterOnDetach -// ^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#delayMsWhenRemovingAdapterOnDetach. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getDelayMsWhenRemovingAdapterOnDetach(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setDelayMsWhenRemovingAdapterOnDetach(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setDelayMsWhenRemovingAdapterOnDetach().(delayMsWhenRemovingAdapterOnDetach) - } - - init { - - if (attrs != null) { -// ^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#``().(attrs) - val a = context.obtainStyledAttributes( -// ^ definition local3 val a: [ERROR : ] -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#``().(context) - attrs, R.styleable.EpoxyRecyclerView, -// ^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#``().(attrs) - defStyleAttr, 0 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#``().(defStyleAttr) - ) - setItemSpacingPx( -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setItemSpacingPx(). - a.getDimensionPixelSize( -// ^ reference local3 - R.styleable.EpoxyRecyclerView_itemSpacing, - 0 - ) - ) - a.recycle() -// ^ reference local3 - } - - init() -// ^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#init(). - } - - @CallSuper -// ^^^^^^^^^ reference androidx/annotation/CallSuper#``(). - protected open fun init() { -// ^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#init(). protected open fun init() - clipToPadding = false - initViewPool() -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#initViewPool(). - } - - /** - * Get or create a view pool to use for this RecyclerView. By default the same pool is shared for - * all [EpoxyRecyclerView] usages in the same Activity. - * - * @see .createViewPool - * @see .shouldShareViewPoolAcrossContext - */ - private fun initViewPool() { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#initViewPool(). private final fun initViewPool() - if (!shouldShareViewPoolAcrossContext()) { -// ^ reference kotlin/Boolean#not(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#shouldShareViewPoolAcrossContext(). - setRecycledViewPool(createViewPool()) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#createViewPool(). - return - } - - setRecycledViewPool( - ACTIVITY_RECYCLER_POOL.getPool( -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#Companion#ACTIVITY_RECYCLER_POOL. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#Companion#getACTIVITY_RECYCLER_POOL(). -// ^^^^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#getPool(). - context - ) { createViewPool() }.viewPool -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#createViewPool(). -// ^^^^^^^^ reference com/airbnb/epoxy/PoolReference#viewPool. -// ^^^^^^^^ reference com/airbnb/epoxy/PoolReference#getViewPool(). - ) - } - - /** - * Create a new instance of a view pool to use with this recyclerview. By default a [ ] is used. - */ - protected open fun createViewPool(): RecyclerView.RecycledViewPool { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#createViewPool(). protected open fun createViewPool(): [ERROR : RecyclerView.RecycledViewPool] - return UnboundedViewPool() -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#``(). - } - - /** - * To maximize view recycling by default we share the same view pool across all instances in the same Activity. This behavior can be disabled by returning - * false here. - */ - open fun shouldShareViewPoolAcrossContext(): Boolean { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#shouldShareViewPoolAcrossContext(). public open fun shouldShareViewPoolAcrossContext(): kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - return true - } - - override fun setLayoutParams(params: ViewGroup.LayoutParams) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setLayoutParams(). public open fun setLayoutParams(params: [ERROR : ViewGroup.LayoutParams]) -// ^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setLayoutParams().(params) value-parameter params: [ERROR : ViewGroup.LayoutParams] - val isFirstParams = layoutParams == null -// ^^^^^^^^^^^^^ definition local4 val isFirstParams: kotlin.Boolean - super.setLayoutParams(params) -// ^^^^^ reference kotlin/Any# -// ^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setLayoutParams().(params) - - if (isFirstParams) { -// ^^^^^^^^^^^^^ reference local4 - // Set a default layout manager if one was not set via xml - // We need layout params for this to guess at the right size and type - if (layoutManager == null) { - layoutManager = createLayoutManager() -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#createLayoutManager(). - } - } - } - - /** - * Create a new [androidx.recyclerview.widget.RecyclerView.LayoutManager] - * instance to use for this RecyclerView. - * - * By default a LinearLayoutManager is used, and a reasonable default is chosen for scrolling - * direction based on layout params. - * - * If the RecyclerView is set to match parent size then the scrolling orientation is set to - * vertical and [.setHasFixedSize] is set to true. - * - * If the height is set to wrap_content then the scrolling orientation is set to horizontal, and - * [.setClipToPadding] is set to false. - */ - protected open fun createLayoutManager(): RecyclerView.LayoutManager { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#createLayoutManager(). protected open fun createLayoutManager(): [ERROR : RecyclerView.LayoutManager] - val layoutParams = layoutParams -// ^^^^^^^^^^^^ definition local5 val layoutParams: [ERROR : Type for layoutParams] - - // 0 represents matching constraints in a LinearLayout or ConstraintLayout - if (layoutParams.height == RecyclerView.LayoutParams.MATCH_PARENT || layoutParams.height == 0) { -// ^^^^^^^^^^^^ reference local5 -// ^^^^^^^^^^^^ reference local5 - - if (layoutParams.width == RecyclerView.LayoutParams.MATCH_PARENT || layoutParams.width == 0) { -// ^^^^^^^^^^^^ reference local5 -// ^^^^^^^^^^^^ reference local5 - // If we are filling as much space as possible then we usually are fixed size - setHasFixedSize(true) - } - - // A sane default is a vertically scrolling linear layout - return LinearLayoutManager(context) - } else { - // This is usually the case for horizontally scrolling carousels and should be a sane - // default - return LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false) - } - } - - override fun setLayoutManager(layout: RecyclerView.LayoutManager?) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setLayoutManager(). public open fun setLayoutManager(layout: [ERROR : RecyclerView.LayoutManager]?) -// ^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setLayoutManager().(layout) value-parameter layout: [ERROR : RecyclerView.LayoutManager]? - super.setLayoutManager(layout) -// ^^^^^ reference kotlin/Any# -// ^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setLayoutManager().(layout) - syncSpanCount() -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#syncSpanCount(). - } - - /** - * If a grid layout manager is set we sync the span count between the layout and the epoxy - * adapter automatically. - */ - private fun syncSpanCount() { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#syncSpanCount(). private final fun syncSpanCount() - val layout = layoutManager -// ^^^^^^ definition local6 val layout: [ERROR : Type for layoutManager] - val controller = epoxyController -// ^^^^^^^^^^ definition local7 val controller: [ERROR : EpoxyController]? -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#epoxyController. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getEpoxyController(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setEpoxyController(). - if (layout is GridLayoutManager && controller != null) { -// ^^^^^^ reference local6 -// ^^^^^^^^^^ reference local7 - - if (controller.spanCount != layout.spanCount || layout.spanSizeLookup !== controller.spanSizeLookup) { -// ^^^^^^^^^^ reference local7 -// ^^^^^^ reference local6 -// ^^^^^^ reference local6 -// ^^^^^^^^^^ reference local7 - controller.spanCount = layout.spanCount -// ^^^^^^^^^^ reference local7 -// ^^^^^^ reference local6 - layout.spanSizeLookup = controller.spanSizeLookup -// ^^^^^^ reference local6 -// ^^^^^^^^^^ reference local7 - } - } - } - - override fun requestLayout() { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#requestLayout(). public open fun requestLayout() - // Grid layout manager calls this when the span count is changed. Its the easiest way to - // detect a span count change and update our controller accordingly. - syncSpanCount() -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#syncSpanCount(). - super.requestLayout() -// ^^^^^ reference kotlin/Any# - } - - fun setItemSpacingRes(@DimenRes itemSpacingRes: Int) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setItemSpacingRes(). public final fun setItemSpacingRes(itemSpacingRes: kotlin.Int) -// ^^^^^^^^ reference androidx/annotation/DimenRes#``(). -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setItemSpacingRes().(itemSpacingRes) value-parameter itemSpacingRes: kotlin.Int -// ^^^ reference kotlin/Int# - setItemSpacingPx(resToPx(itemSpacingRes)) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setItemSpacingPx(). -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#resToPx(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setItemSpacingRes().(itemSpacingRes) - } - - fun setItemSpacingDp(@Dimension(unit = Dimension.DP) dp: Int) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setItemSpacingDp(). public final fun setItemSpacingDp(dp: kotlin.Int) -// ^^^^^^^^^ reference androidx/annotation/Dimension#``(). -// ^^^^ reference androidx/annotation/Dimension#``().(unit) -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^ reference androidx/annotation/Dimension#DP. -// ^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setItemSpacingDp().(dp) value-parameter dp: kotlin.Int -// ^^^ reference kotlin/Int# - setItemSpacingPx(dpToPx(dp)) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setItemSpacingPx(). -// ^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#dpToPx(). -// ^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setItemSpacingDp().(dp) - } - - /** - * Set a pixel value to use as spacing between items. If this is a positive number an item - * decoration will be added to space all items this far apart from each other. If the value is 0 - * or negative no extra spacing will be used, and any previous spacing will be removed. - * - * This only works if a [LinearLayoutManager] or [GridLayoutManager] is used with this - * RecyclerView. - * - * This can also be set via the `app:itemSpacing` styleable attribute. - * - * @see .setItemSpacingDp - * @see .setItemSpacingRes - */ - open fun setItemSpacingPx(@Px spacingPx: Int) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setItemSpacingPx(). public open fun setItemSpacingPx(spacingPx: kotlin.Int) -// ^^ reference androidx/annotation/Px#``(). -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setItemSpacingPx().(spacingPx) value-parameter spacingPx: kotlin.Int -// ^^^ reference kotlin/Int# - removeItemDecoration(spacingDecorator) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#spacingDecorator. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getSpacingDecorator(). - spacingDecorator.pxBetweenItems = spacingPx -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#spacingDecorator. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getSpacingDecorator(). -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setItemSpacingPx().(spacingPx) - - if (spacingPx > 0) { -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setItemSpacingPx().(spacingPx) -// ^ reference kotlin/Int#compareTo(+3). - addItemDecoration(spacingDecorator) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#spacingDecorator. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getSpacingDecorator(). - } - } - - /** - * Set a list of [EpoxyModel]'s to show in this RecyclerView. - * - * Alternatively you can set an [EpoxyController] to handle building models dynamically. - * - * @see withModels - * @see setController - * @see setControllerAndBuildModels - * @see buildModelsWith - */ - - open fun setModels(models: List>) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setModels(). public open fun setModels(models: kotlin.collections.List<[ERROR : EpoxyModel<*>]>) -// ^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setModels().(models) value-parameter models: kotlin.collections.List<[ERROR : EpoxyModel<*>]> -// ^^^^ reference kotlin/collections/List# - val controller = (epoxyController as? SimpleEpoxyController) -// ^^^^^^^^^^ definition local8 val controller: ??? -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#epoxyController. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getEpoxyController(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setEpoxyController(). - ?: SimpleEpoxyController().also { - setController(it) -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setController(). - } - - controller.setModels(models) -// ^^^^^^^^^^ reference local8 -// ^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setModels().(models) - } - - /** - * Set an EpoxyController to populate this RecyclerView. This does not make the controller build - * its models, that must be done separately via [requestModelBuild]. - * - * Use this if you don't want [requestModelBuild] called automatically. Common cases - * are if you are using [TypedEpoxyController] (in which case you must call setData on the - * controller), or if you have not otherwise populated your controller's data yet. - * - * Otherwise if you want models built automatically for you use [setControllerAndBuildModels] - * - * The controller can be cleared with [clear] - * - * @see .setControllerAndBuildModels - * @see .buildModelsWith - * @see .setModels - */ - - fun setController(controller: EpoxyController) { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setController(). public final fun setController(controller: [ERROR : EpoxyController]) -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setController().(controller) value-parameter controller: [ERROR : EpoxyController] - epoxyController = controller -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#epoxyController. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getEpoxyController(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setEpoxyController(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setController().(controller) - adapter = controller.adapter -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setController().(controller) - syncSpanCount() -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#syncSpanCount(). - } - - /** - * Set an EpoxyController to populate this RecyclerView, and tell the controller to build - * models. - * - * The controller can be cleared with [clear] - * - * @see setController - * @see buildModelsWith - * @see setModels - */ - fun setControllerAndBuildModels(controller: EpoxyController) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setControllerAndBuildModels(). public final fun setControllerAndBuildModels(controller: [ERROR : EpoxyController]) -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setControllerAndBuildModels().(controller) value-parameter controller: [ERROR : EpoxyController] - controller.requestModelBuild() -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setControllerAndBuildModels().(controller) - setController(controller) -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setController(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setControllerAndBuildModels().(controller) - } - - /** - * The simplest way to add models to the RecyclerView without needing to create an EpoxyController. - * This is intended for Kotlin usage, and has the EpoxyController as the lambda receiver so - * models can be added easily. - * - * Multiple calls to this will reuse the same underlying EpoxyController so views in the - * RecyclerView will be reused. - * - * The Java equivalent is [buildModelsWith]. - */ - fun withModels(buildModels: EpoxyController.() -> Unit) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#withModels(). public final fun withModels(buildModels: [ERROR : EpoxyController].() -> kotlin.Unit) -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#withModels().(buildModels) value-parameter buildModels: [ERROR : EpoxyController].() -> kotlin.Unit -// ^^^^ reference kotlin/Unit# - val controller = (epoxyController as? WithModelsController) -// ^^^^^^^^^^ definition local9 val controller: com.airbnb.epoxy.EpoxyRecyclerView.WithModelsController -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#epoxyController. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getEpoxyController(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setEpoxyController(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController# - ?: WithModelsController().also { setController(it) } -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController#``(). -// ^^^^ reference kotlin/StandardKt#also(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setController(). -// ^^ reference local10 - - controller.callback = buildModels -// ^^^^^^^^^^ reference local9 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController#callback. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController#getCallback(). -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController#setCallback(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#withModels().(buildModels) - controller.requestModelBuild() -// ^^^^^^^^^^ reference local9 - } - - private class WithModelsController : EpoxyController() { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController# private final class WithModelsController -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController#``(). public constructor WithModelsController() - var callback: EpoxyController.() -> Unit = {} -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController#callback. public final var callback: [ERROR : EpoxyController].() -> kotlin.Unit -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController#getCallback(). public final var callback: [ERROR : EpoxyController].() -> kotlin.Unit -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController#setCallback(). public final var callback: [ERROR : EpoxyController].() -> kotlin.Unit -// ^^^^ reference kotlin/Unit# - - override fun buildModels() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController#buildModels(). public open fun buildModels() - callback(this) -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController#callback. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController#getCallback(). -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController#setCallback(). -// ^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#WithModelsController# - } - } - - /** - * Allows you to build models via a callback instead of needing to create a new EpoxyController - * class. This is useful if your models are simple and you would like to simply declare them in - * your activity/fragment. - * - * Multiple calls to this will reuse the same underlying EpoxyController so views in the - * RecyclerView will be reused. - * - * Another useful pattern is having your Activity or Fragment implement [ModelBuilderCallback]. - * - * If you're using Kotlin, prefer [withModels]. - * - * @see setController - * @see setControllerAndBuildModels - * @see setModels - */ - fun buildModelsWith(callback: ModelBuilderCallback) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#buildModelsWith(). public final fun buildModelsWith(callback: com.airbnb.epoxy.EpoxyRecyclerView.ModelBuilderCallback) -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#buildModelsWith().(callback) value-parameter callback: com.airbnb.epoxy.EpoxyRecyclerView.ModelBuilderCallback -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallback# - val controller = (epoxyController as? ModelBuilderCallbackController) -// ^^^^^^^^^^ definition local11 val controller: com.airbnb.epoxy.EpoxyRecyclerView.ModelBuilderCallbackController -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#epoxyController. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getEpoxyController(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setEpoxyController(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController# - ?: ModelBuilderCallbackController().also { setController(it) } -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController#``(). -// ^^^^ reference kotlin/StandardKt#also(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setController(). -// ^^ reference local12 - - controller.callback = callback -// ^^^^^^^^^^ reference local11 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController#callback. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController#getCallback(). -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController#setCallback(). -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#buildModelsWith().(callback) - controller.requestModelBuild() -// ^^^^^^^^^^ reference local11 - } - - private class ModelBuilderCallbackController : EpoxyController() { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController# private final class ModelBuilderCallbackController -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController#``(). public constructor ModelBuilderCallbackController() - var callback: ModelBuilderCallback = object : ModelBuilderCallback { -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController#callback. public final var callback: com.airbnb.epoxy.EpoxyRecyclerView.ModelBuilderCallback -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController#getCallback(). public final var callback: com.airbnb.epoxy.EpoxyRecyclerView.ModelBuilderCallback -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController#setCallback(). public final var callback: com.airbnb.epoxy.EpoxyRecyclerView.ModelBuilderCallback -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallback# -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallback# - override fun buildModels(controller: EpoxyController) { -// ^^^^^^^^^^^ definition local13 public open fun buildModels(controller: [ERROR : EpoxyController]) -// ^^^^^^^^^^ definition local14 value-parameter controller: [ERROR : EpoxyController] - } - } - - override fun buildModels() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController#buildModels(). public open fun buildModels() - callback.buildModels(this) -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController#callback. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController#getCallback(). -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController#setCallback(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallback#buildModels(). -// ^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallbackController# - } - } - - /** - * A callback for creating models without needing a custom EpoxyController class. Used with [buildModelsWith] - */ - interface ModelBuilderCallback { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallback# public interface ModelBuilderCallback - /** - * Analagous to [EpoxyController.buildModels]. You should create new model instances and - * add them to the given controller. [AutoModel] cannot be used with models added this - * way. - */ - fun buildModels(controller: EpoxyController) -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallback#buildModels(). public abstract fun buildModels(controller: [ERROR : EpoxyController]) -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#ModelBuilderCallback#buildModels().(controller) value-parameter controller: [ERROR : EpoxyController] - } - - /** - * Request that the currently set EpoxyController has its models rebuilt. You can use this to - * avoid saving your controller as a field. - * - * You cannot use this if your controller is a [TypedEpoxyController] or if you set - * models via [setModels]. In that case you must set data directly on the - * controller or set models again. - */ - fun requestModelBuild() { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#requestModelBuild(). public final fun requestModelBuild() - if (epoxyController == null) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#epoxyController. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getEpoxyController(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setEpoxyController(). - throw IllegalStateException("A controller must be set before requesting a model build.") -// ^^^^^^^^^^^^^^^^^^^^^ reference kotlin/IllegalStateException#``(+1). - } - - if (epoxyController is SimpleEpoxyController) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#epoxyController. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getEpoxyController(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setEpoxyController(). - throw IllegalStateException("Models were set with #setModels, they can not be rebuilt.") -// ^^^^^^^^^^^^^^^^^^^^^ reference kotlin/IllegalStateException#``(+1). - } - - epoxyController!!.requestModelBuild() -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#epoxyController. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getEpoxyController(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setEpoxyController(). - } - - /** - * Clear the currently set EpoxyController or Adapter as well as any models that are displayed. - * - * Any pending requests to the EpoxyController to build models are canceled. - * - * Any existing child views are recycled to the view pool. - */ - open fun clear() { -// ^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#clear(). public open fun clear() - // The controller is cleared so the next time models are set we can create a fresh one. - epoxyController?.cancelPendingModelBuild() -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#epoxyController. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getEpoxyController(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setEpoxyController(). - epoxyController = null -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#epoxyController. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getEpoxyController(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setEpoxyController(). - - // We use swapAdapter instead of setAdapter so that the view pool is not cleared. - // 'removeAndRecycleExistingViews=true' is used in case this is a nested recyclerview - // and we want to recycle the views back to a shared view pool - swapAdapter(null, true) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#swapAdapter(). - } - - @Px -// ^^ reference androidx/annotation/Px#``(). - protected fun dpToPx(@Dimension(unit = Dimension.DP) dp: Int): Int { -// ^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#dpToPx(). protected final fun dpToPx(dp: kotlin.Int): kotlin.Int -// ^^^^^^^^^ reference androidx/annotation/Dimension#``(). -// ^^^^ reference androidx/annotation/Dimension#``().(unit) -// ^^^^^^^^^ reference androidx/annotation/Dimension# -// ^^ reference androidx/annotation/Dimension#DP. -// ^^ definition com/airbnb/epoxy/EpoxyRecyclerView#dpToPx().(dp) value-parameter dp: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^ reference kotlin/Int# - return TypedValue - .applyDimension( - TypedValue.COMPLEX_UNIT_DIP, dp.toFloat(), -// ^^ reference com/airbnb/epoxy/EpoxyRecyclerView#dpToPx().(dp) -// ^^^^^^^ reference kotlin/Int#toFloat(). - resources.displayMetrics - ).toInt() - } - - @Px -// ^^ reference androidx/annotation/Px#``(). - protected fun resToPx(@DimenRes itemSpacingRes: Int): Int { -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#resToPx(). protected final fun resToPx(itemSpacingRes: kotlin.Int): kotlin.Int -// ^^^^^^^^ reference androidx/annotation/DimenRes#``(). -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#resToPx().(itemSpacingRes) value-parameter itemSpacingRes: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^ reference kotlin/Int# - return resources.getDimensionPixelOffset(itemSpacingRes) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#resToPx().(itemSpacingRes) - } - - override fun setAdapter(adapter: RecyclerView.Adapter<*>?) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setAdapter(). public open fun setAdapter(adapter: [ERROR : RecyclerView.Adapter<*>]?) -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#setAdapter().(adapter) value-parameter adapter: [ERROR : RecyclerView.Adapter<*>]? - super.setAdapter(adapter) -// ^^^^^ reference kotlin/Any# -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setAdapter().(adapter) - - clearRemovedAdapterAndCancelRunnable() -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#clearRemovedAdapterAndCancelRunnable(). - updatePreloaders() -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#updatePreloaders(). - } - - override fun swapAdapter( -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#swapAdapter(). public open fun swapAdapter(adapter: [ERROR : RecyclerView.Adapter<*>]?, removeAndRecycleExistingViews: kotlin.Boolean) - adapter: RecyclerView.Adapter<*>?, -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#swapAdapter().(adapter) value-parameter adapter: [ERROR : RecyclerView.Adapter<*>]? - removeAndRecycleExistingViews: Boolean -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#swapAdapter().(removeAndRecycleExistingViews) value-parameter removeAndRecycleExistingViews: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - ) { - super.swapAdapter(adapter, removeAndRecycleExistingViews) -// ^^^^^ reference kotlin/Any# -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#swapAdapter().(adapter) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#swapAdapter().(removeAndRecycleExistingViews) - - clearRemovedAdapterAndCancelRunnable() -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#clearRemovedAdapterAndCancelRunnable(). - updatePreloaders() -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#updatePreloaders(). - } - - public override fun onAttachedToWindow() { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#onAttachedToWindow(). public open fun onAttachedToWindow() - super.onAttachedToWindow() -// ^^^^^ reference kotlin/Any# - - if (removedAdapter != null) { -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#removedAdapter. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getRemovedAdapter(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setRemovedAdapter(). - // Restore the adapter that was removed when the view was detached from window - swapAdapter(removedAdapter, false) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#swapAdapter(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#removedAdapter. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getRemovedAdapter(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setRemovedAdapter(). - } - clearRemovedAdapterAndCancelRunnable() -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#clearRemovedAdapterAndCancelRunnable(). - } - - public override fun onDetachedFromWindow() { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#onDetachedFromWindow(). public open fun onDetachedFromWindow() - super.onDetachedFromWindow() -// ^^^^^ reference kotlin/Any# - preloadScrollListeners.forEach { it.cancelPreloadRequests() } -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#preloadScrollListeners. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getPreloadScrollListeners(). -// ^^^^^^^ reference kotlin/collections/CollectionsKt#forEach(+10). -// ^^ reference local15 -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#cancelPreloadRequests(). - - if (removeAdapterWhenDetachedFromWindow) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#removeAdapterWhenDetachedFromWindow. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getRemoveAdapterWhenDetachedFromWindow(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setRemoveAdapterWhenDetachedFromWindow(). - if (delayMsWhenRemovingAdapterOnDetach > 0) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#delayMsWhenRemovingAdapterOnDetach. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getDelayMsWhenRemovingAdapterOnDetach(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setDelayMsWhenRemovingAdapterOnDetach(). -// ^ reference kotlin/Int#compareTo(+3). - - isRemoveAdapterRunnablePosted = true -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#isRemoveAdapterRunnablePosted. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getIsRemoveAdapterRunnablePosted(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setIsRemoveAdapterRunnablePosted(). - postDelayed(removeAdapterRunnable, delayMsWhenRemovingAdapterOnDetach.toLong()) -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#removeAdapterRunnable. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getRemoveAdapterRunnable(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#delayMsWhenRemovingAdapterOnDetach. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getDelayMsWhenRemovingAdapterOnDetach(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setDelayMsWhenRemovingAdapterOnDetach(). -// ^^^^^^ reference kotlin/Int#toLong(). - } else { - removeAdapter() -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#removeAdapter(). - } - } - clearPoolIfActivityIsDestroyed() -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#clearPoolIfActivityIsDestroyed(). - } - - private fun removeAdapter() { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#removeAdapter(). private final fun removeAdapter() - val currentAdapter = adapter -// ^^^^^^^^^^^^^^ definition local16 val currentAdapter: [ERROR : Type for adapter] - if (currentAdapter != null) { -// ^^^^^^^^^^^^^^ reference local16 - // Clear the adapter so the adapter releases its reference to this RecyclerView. - // Views are recycled so they can return to a view pool (default behavior is to not recycle - // them). - swapAdapter(null, true) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#swapAdapter(). - // Keep a reference to the removed adapter so we can add it back if the recyclerview is - // attached again. - removedAdapter = currentAdapter -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#removedAdapter. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getRemovedAdapter(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setRemovedAdapter(). -// ^^^^^^^^^^^^^^ reference local16 - } - - // Do this after clearing the adapter, since that sends views back to the pool - clearPoolIfActivityIsDestroyed() -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#clearPoolIfActivityIsDestroyed(). - } - - private fun clearRemovedAdapterAndCancelRunnable() { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#clearRemovedAdapterAndCancelRunnable(). private final fun clearRemovedAdapterAndCancelRunnable() - removedAdapter = null -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#removedAdapter. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getRemovedAdapter(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setRemovedAdapter(). - if (isRemoveAdapterRunnablePosted) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#isRemoveAdapterRunnablePosted. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getIsRemoveAdapterRunnablePosted(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setIsRemoveAdapterRunnablePosted(). - removeCallbacks(removeAdapterRunnable) -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#removeAdapterRunnable. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getRemoveAdapterRunnable(). - isRemoveAdapterRunnablePosted = false -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#isRemoveAdapterRunnablePosted. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#getIsRemoveAdapterRunnablePosted(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyRecyclerView#setIsRemoveAdapterRunnablePosted(). - } - } - - private fun clearPoolIfActivityIsDestroyed() { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#clearPoolIfActivityIsDestroyed(). private final fun clearPoolIfActivityIsDestroyed() - // Views in the pool hold context references which can keep the activity from being GC'd, - // plus they can hold significant memory resources. We should clear it asap after the pool - // is no longer needed - the main signal we use for this is that the activity is destroyed. - if (context.isActivityDestroyed()) { - recycledViewPool.clear() - } - } - - companion object { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#Companion# public companion object - private const val DEFAULT_ADAPTER_REMOVAL_DELAY_MS = 2000 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#Companion#DEFAULT_ADAPTER_REMOVAL_DELAY_MS. private const final val DEFAULT_ADAPTER_REMOVAL_DELAY_MS: kotlin.Int -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#Companion#getDEFAULT_ADAPTER_REMOVAL_DELAY_MS(). private const final val DEFAULT_ADAPTER_REMOVAL_DELAY_MS: kotlin.Int - - /** - * Store one unique pool per activity. They are cleared out when activities are destroyed, so this - * only needs to hold pools for active activities. - */ - private val ACTIVITY_RECYCLER_POOL = ActivityRecyclerPool() -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#Companion#ACTIVITY_RECYCLER_POOL. private final val ACTIVITY_RECYCLER_POOL: com.airbnb.epoxy.ActivityRecyclerPool -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyRecyclerView#Companion#getACTIVITY_RECYCLER_POOL(). private final val ACTIVITY_RECYCLER_POOL: com.airbnb.epoxy.ActivityRecyclerPool -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ActivityRecyclerPool#``(). - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxySwipeCallback.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxySwipeCallback.java deleted file mode 100644 index 62931ce7f..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxySwipeCallback.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.airbnb.epoxy; - -import android.graphics.Canvas; -// ^^^^^^^ reference android/ -// ^^^^^^^^ reference android/graphics/ -// ^^^^^^ reference android/graphics/Canvas# -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# - -import androidx.recyclerview.widget.ItemTouchHelper; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/ItemTouchHelper# - -/** - * For use with {@link EpoxyModelTouchCallback} - */ -public interface EpoxySwipeCallback extends BaseEpoxyTouchCallback { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxySwipeCallback# public interface EpoxySwipeCallback -// ^ definition com/airbnb/epoxy/EpoxySwipeCallback#[T] T extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyTouchCallback# -// ^ reference com/airbnb/epoxy/EpoxySwipeCallback#[T] - - /** - * Called when the view switches from an idle state to a swiped state, as the user begins a swipe - * interaction with it. You can use this callback to modify the view to indicate it is being - * swiped. - *

- * This is the first callback made in the lifecycle of a swipe event. - * - * @param model The model representing the view that is being swiped - * @param itemView The view that is being swiped - * @param adapterPosition The adapter position of the model - */ - void onSwipeStarted(T model, View itemView, int adapterPosition); -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxySwipeCallback#onSwipeStarted(). public abstract void onSwipeStarted(T model, unresolved_type itemView, int adapterPosition) -// ^ reference com/airbnb/epoxy/EpoxySwipeCallback#[T] -// ^^^^^ definition local0 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local1 unresolved_type itemView -// ^^^^^^^^^^^^^^^ definition local2 int adapterPosition - - /** - * Once a view has begun swiping with {@link #onSwipeStarted(EpoxyModel, View, int)} it will - * receive this callback as the swipe distance changes. This can be called multiple times as the - * swipe interaction progresses. - * - * @param model The model representing the view that is being swiped - * @param itemView The view that is being swiped - * @param swipeProgress A float from -1 to 1 representing the percentage that the view has been - * swiped relative to its width. This will be positive if the view is being - * swiped to the right and negative if it is swiped to the left. For - * example, - * @param canvas The canvas on which RecyclerView is drawing its children. You can draw to - * this to support custom swipe animations. - */ - void onSwipeProgressChanged(T model, View itemView, float swipeProgress, -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxySwipeCallback#onSwipeProgressChanged(). public abstract void onSwipeProgressChanged(T model, unresolved_type itemView, float swipeProgress, unresolved_type canvas) -// ^ reference com/airbnb/epoxy/EpoxySwipeCallback#[T] -// ^^^^^ definition local3 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local4 unresolved_type itemView -// ^^^^^^^^^^^^^ definition local5 float swipeProgress - Canvas canvas); -// ^^^^^^ reference _root_/ -// ^^^^^^ definition local6 unresolved_type canvas - - /** - * Called when the user has released their touch on the view. If the displacement passed the swipe - * threshold then {@link #onSwipeCompleted(EpoxyModel, View, int, int)} will be called after this - * and the view will be animated off screen. Otherwise the view will animate back to its original - * position. - * - * @param model The model representing the view that was being swiped - * @param itemView The view that was being swiped - */ - void onSwipeReleased(T model, View itemView); -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxySwipeCallback#onSwipeReleased(). public abstract void onSwipeReleased(T model, unresolved_type itemView) -// ^ reference com/airbnb/epoxy/EpoxySwipeCallback#[T] -// ^^^^^ definition local7 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local8 unresolved_type itemView - - /** - * Called after {@link #onSwipeReleased(EpoxyModel, View)} if the swipe surpassed the threshold to - * be considered a full swipe. The view will now be animated off screen. - *

- * You MUST use this callback to remove this item from your backing data and request a model - * update. - *

- * {@link #clearView(EpoxyModel, View)} will be called after this. - * - * @param model The model representing the view that was being swiped - * @param itemView The view that was being swiped - * @param position The adapter position of the model - * @param direction The direction that the view was swiped. Can be any of {@link - * ItemTouchHelper#LEFT}, {@link ItemTouchHelper#RIGHT}, {@link - * ItemTouchHelper#UP}, {@link ItemTouchHelper#DOWN} depending on what swipe - * directions were enabled. - */ - void onSwipeCompleted(T model, View itemView, int position, int direction); -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxySwipeCallback#onSwipeCompleted(). public abstract void onSwipeCompleted(T model, unresolved_type itemView, int position, int direction) -// ^ reference com/airbnb/epoxy/EpoxySwipeCallback#[T] -// ^^^^^ definition local9 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local10 unresolved_type itemView -// ^^^^^^^^ definition local11 int position -// ^^^^^^^^^ definition local12 int direction -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyTouchHelper.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyTouchHelper.java deleted file mode 100644 index 2a9091af2..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyTouchHelper.java +++ /dev/null @@ -1,1084 +0,0 @@ -package com.airbnb.epoxy; - -import android.graphics.Canvas; -// ^^^^^^^ reference android/ -// ^^^^^^^^ reference android/graphics/ -// ^^^^^^ reference android/graphics/Canvas# -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# - -import java.util.ArrayList; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^ reference java/util/ArrayList# -import java.util.Arrays; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^ reference java/util/Arrays# -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -import androidx.recyclerview.widget.ItemTouchHelper; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/ItemTouchHelper# -import androidx.recyclerview.widget.RecyclerView; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView# - -import static androidx.recyclerview.widget.ItemTouchHelper.Callback.makeMovementFlags; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/ItemTouchHelper/ -// ^^^^^^^^ reference androidx/recyclerview/widget/ItemTouchHelper/Callback# - -/** - * A simple way to set up drag or swipe interactions with Epoxy. - *

- * Drag events work with the EpoxyController and automatically update the controller and - * RecyclerView when an item is moved. You just need to implement a callback to update your data to - * reflect the change. - *

- * Both swipe and drag events implement a small lifecycle to help you style the views as they are - * moved. You can register callbacks for the lifecycle events you care about. - *

- * If you want to set up multiple drag and swipe rules for the same RecyclerView, you can use this - * class multiple times to specify different targets or swipe and drag directions and callbacks. - *

- * If you want more control over configuration and handling, you can opt to not use this class and - * instead you can implement {@link EpoxyModelTouchCallback} directly with your own {@link - * ItemTouchHelper}. That class provides an interface that makes it easier to work with Epoxy models - * and simplifies touch callbacks. - *

- * If you want even more control you can implement {@link EpoxyTouchHelperCallback}. This is just a - * light layer over the normal RecyclerView touch callbacks, but it converts all view holders to - * Epoxy view holders to remove some boilerplate for you. - */ -public abstract class EpoxyTouchHelper { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper# public abstract class EpoxyTouchHelper -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#``(). public EpoxyTouchHelper() - - /** - * The entry point for setting up drag support. - * - * @param controller The EpoxyController with the models that will be dragged. The controller will - * be updated for you when a model is dragged and moved by a user's touch - * interaction. - */ - public static DragBuilder initDragging(EpoxyController controller) { -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#initDragging(). public static DragBuilder initDragging(EpoxyController controller) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local0 EpoxyController controller - return new DragBuilder(controller); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder#``(). -// ^^^^^^^^^^ reference local0 - } - - public static class DragBuilder { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder# public static class DragBuilder - - private final EpoxyController controller; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder#controller. private final EpoxyController controller - - private DragBuilder(EpoxyController controller) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder#``(). private DragBuilder(EpoxyController controller) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local1 EpoxyController controller - this.controller = controller; -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder#controller. -// ^^^^^^^^^^ reference local1 - } - - /** - * The recyclerview that the EpoxyController has its adapter added to. An {@link - * androidx.recyclerview.widget.ItemTouchHelper} will be created and configured for you, and - * attached to this RecyclerView. - */ - public DragBuilder2 withRecyclerView(RecyclerView recyclerView) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2# -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder#withRecyclerView(). public DragBuilder2 withRecyclerView(unresolved_type recyclerView) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local2 unresolved_type recyclerView - return new DragBuilder2(controller, recyclerView); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#``(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder#controller. -// ^^^^^^^^^^^^ reference local2 - } - } - - public static class DragBuilder2 { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2# public static class DragBuilder2 - - private final EpoxyController controller; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#controller. private final EpoxyController controller - private final RecyclerView recyclerView; -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#recyclerView. private final unresolved_type recyclerView - - private DragBuilder2(EpoxyController controller, RecyclerView recyclerView) { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#``(). private DragBuilder2(EpoxyController controller, unresolved_type recyclerView) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local3 EpoxyController controller -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local4 unresolved_type recyclerView - this.controller = controller; -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#controller. -// ^^^^^^^^^^ reference local3 - this.recyclerView = recyclerView; -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#recyclerView. -// ^^^^^^^^^^^^ reference local4 - } - - /** Enable dragging vertically, up and down. */ - public DragBuilder3 forVerticalList() { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3# -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#forVerticalList(). public DragBuilder3 forVerticalList() - return withDirections(ItemTouchHelper.UP | ItemTouchHelper.DOWN); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#withDirections(). -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^ reference UP# -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^ reference DOWN# - } - - /** Enable dragging horizontally, left and right. */ - public DragBuilder3 forHorizontalList() { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3# -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#forHorizontalList(). public DragBuilder3 forHorizontalList() - return withDirections(ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#withDirections(). -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^ reference LEFT# -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^ reference RIGHT# - } - - /** Enable dragging in all directions. */ - public DragBuilder3 forGrid() { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3# -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#forGrid(). public DragBuilder3 forGrid() - return withDirections(ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#withDirections(). -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^ reference UP# -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^ reference DOWN# -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^ reference LEFT# - | ItemTouchHelper.RIGHT); -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^ reference RIGHT# - } - - /** - * Set custom movement flags to dictate which drag directions should be allowed. - *

- * Can be any of {@link ItemTouchHelper#LEFT}, {@link ItemTouchHelper#RIGHT}, {@link - * ItemTouchHelper#UP}, {@link ItemTouchHelper#DOWN}, {@link ItemTouchHelper#START}, {@link - * ItemTouchHelper#END} - *

- * Flags can be OR'd together to allow multiple directions. - */ - public DragBuilder3 withDirections(int directionFlags) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3# -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#withDirections(). public DragBuilder3 withDirections(int directionFlags) -// ^^^^^^^^^^^^^^ definition local5 int directionFlags - return new DragBuilder3(controller, recyclerView, makeMovementFlags(directionFlags, 0)); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#``(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#controller. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#recyclerView. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder2#makeMovementFlags# -// ^^^^^^^^^^^^^^ reference local5 - } - } - - public static class DragBuilder3 { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3# public static class DragBuilder3 - - private final EpoxyController controller; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#controller. private final EpoxyController controller - private final RecyclerView recyclerView; -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#recyclerView. private final unresolved_type recyclerView - private final int movementFlags; -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#movementFlags. private final int movementFlags - - private DragBuilder3(EpoxyController controller, RecyclerView recyclerView, int movementFlags) { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#``(). private DragBuilder3(EpoxyController controller, unresolved_type recyclerView, int movementFlags) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local6 EpoxyController controller -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local7 unresolved_type recyclerView -// ^^^^^^^^^^^^^ definition local8 int movementFlags - this.controller = controller; -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#controller. -// ^^^^^^^^^^ reference local6 - this.recyclerView = recyclerView; -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#recyclerView. -// ^^^^^^^^^^^^ reference local7 - this.movementFlags = movementFlags; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#movementFlags. -// ^^^^^^^^^^^^^ reference local8 - } - - /** - * Set the type of Epoxy model that is draggable. This approach works well if you only have one - * draggable type. - */ - public DragBuilder4 withTarget(Class targetModelClass) { -// ^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#withTarget().[U] U extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4# -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#withTarget().[U] -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#withTarget(). public DragBuilder4 withTarget(Class targetModelClass) -// ^^^^^ reference java/lang/Class# -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#withTarget().[U] -// ^^^^^^^^^^^^^^^^ definition local9 Class targetModelClass - List> targetClasses = new ArrayList<>(1); -// ^^^^ reference java/util/List# -// ^^^^^ reference java/lang/Class# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition local10 List> targetClasses -// ^^^^^^^^^ reference java/util/ArrayList#``(). - targetClasses.add(targetModelClass); -// ^^^^^^^^^^^^^ reference local10 -// ^^^ reference java/util/List#add(). -// ^^^^^^^^^^^^^^^^ reference local9 - - return new DragBuilder4<>(controller, recyclerView, movementFlags, targetModelClass, -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#``(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#controller. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#recyclerView. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#movementFlags. -// ^^^^^^^^^^^^^^^^ reference local9 - targetClasses); -// ^^^^^^^^^^^^^ reference local10 - } - - /** - * Specify which Epoxy model types are draggable. Use this if you have more than one type that - * is draggable. - *

- * If you only have one draggable type you should use {@link #withTarget(Class)} - */ - public DragBuilder4 withTargets(Class... targetModelClasses) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#withTargets(). public DragBuilder4 withTargets(Class[] targetModelClasses) -// ^^^^^ reference java/lang/Class# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^ definition local11 Class[] targetModelClasses - return new DragBuilder4<>(controller, recyclerView, movementFlags, EpoxyModel.class, -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#``(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#controller. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#recyclerView. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#movementFlags. -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#class. - Arrays.asList(targetModelClasses)); -// ^^^^^^ reference java/util/Arrays# -// ^^^^^^ reference java/util/Arrays#asList(). -// ^^^^^^^^^^^^^^^^^^ reference local11 - } - - /** - * Use this if all models in the controller should be draggable, and if there are multiple types - * of models in the controller. - *

- * If you only have one model type you should use {@link #withTarget(Class)} - */ - public DragBuilder4 forAllModels() { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#forAllModels(). public DragBuilder4 forAllModels() - return withTarget(EpoxyModel.class); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder3#withTarget(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#class. - } - } - - public static class DragBuilder4 { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4# public static class DragBuilder4 -// ^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#[U] U extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# - - private final EpoxyController controller; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#controller. private final EpoxyController controller - private final RecyclerView recyclerView; -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#recyclerView. private final unresolved_type recyclerView - private final int movementFlags; -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#movementFlags. private final int movementFlags - private final Class targetModelClass; -// ^^^^^ reference java/lang/Class# -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#[U] -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#targetModelClass. private final Class targetModelClass - private final List> targetModelClasses; -// ^^^^ reference java/util/List# -// ^^^^^ reference java/lang/Class# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#targetModelClasses. private final List> targetModelClasses - - private DragBuilder4(EpoxyController controller, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#``(). private DragBuilder4(EpoxyController controller, unresolved_type recyclerView, int movementFlags, Class targetModelClass, List> targetModelClasses) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# -// ^^^^^^^^^^ definition local12 EpoxyController controller - RecyclerView recyclerView, int movementFlags, -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local13 unresolved_type recyclerView -// ^^^^^^^^^^^^^ definition local14 int movementFlags - Class targetModelClass, List> targetModelClasses) { -// ^^^^^ reference java/lang/Class# -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#[U] -// ^^^^^^^^^^^^^^^^ definition local15 Class targetModelClass -// ^^^^ reference java/util/List# -// ^^^^^ reference java/lang/Class# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^ definition local16 List> targetModelClasses - - this.controller = controller; -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#controller. -// ^^^^^^^^^^ reference local12 - this.recyclerView = recyclerView; -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#recyclerView. -// ^^^^^^^^^^^^ reference local13 - this.movementFlags = movementFlags; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#movementFlags. -// ^^^^^^^^^^^^^ reference local14 - this.targetModelClass = targetModelClass; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#targetModelClass. -// ^^^^^^^^^^^^^^^^ reference local15 - this.targetModelClasses = targetModelClasses; -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#targetModelClasses. -// ^^^^^^^^^^^^^^^^^^ reference local16 - } - - /** - * Set callbacks to handle drag actions and lifecycle events. - *

- * You MUST implement {@link DragCallbacks#onModelMoved(int, int, EpoxyModel, - * View)} to update your data to reflect an item move. - *

- * You can optionally implement the other callbacks to modify the view being dragged. This is - * useful if you want to change things like the view background, size, color, etc - * - * @return An {@link ItemTouchHelper} instance that has been initialized and attached to a - * recyclerview. The touch helper has already been fully set up and can be ignored, but you may - * want to hold a reference to it if you need to later detach the recyclerview to disable touch - * events via setting null on {@link ItemTouchHelper#attachToRecyclerView(RecyclerView)} - */ - public ItemTouchHelper andCallbacks(final DragCallbacks callbacks) { -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#andCallbacks(). public unresolved_type andCallbacks(DragCallbacks callbacks) -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks# -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#[U] -// ^^^^^^^^^ definition local17 final DragCallbacks callbacks - ItemTouchHelper itemTouchHelper = -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^ definition local18 unresolved_type itemTouchHelper - new ItemTouchHelper(new EpoxyModelTouchCallback(controller, targetModelClass) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback# -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#[U] -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#controller. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#targetModelClass. - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int getMovementFlagsForModel(U model, int adapterPosition) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition local21 @Override public int getMovementFlagsForModel(U model, int adapterPosition) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#[U] -// ^^^^^ definition local27 U model -// ^^^^^^^^^^^^^^^ definition local28 int adapterPosition - return movementFlags; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#movementFlags. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected boolean isTouchableModel(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^ definition local22 @Override protected boolean isTouchableModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local29 EpoxyModel model - boolean isTargetType = targetModelClasses.size() == 1 -// ^^^^^^^^^^^^ definition local30 boolean isTargetType -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#targetModelClasses. -// ^^^^ reference java/util/List#size(). - ? super.isTouchableModel(model) -// ^^^^^ reference local31 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#isTouchableModel(). -// ^^^^^ reference local29 - : targetModelClasses.contains(model.getClass()); -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#targetModelClasses. -// ^^^^^^^^ reference java/util/List#contains(). -// ^^^^^ reference local29 -// ^^^^^^^^ reference java/lang/Object#getClass(). - - //noinspection unchecked - return isTargetType && callbacks.isDragEnabledForModel((U) model); -// ^^^^^^^^^^^^ reference local30 -// ^^^^^^^^^ reference local17 -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#isDragEnabledForModel(). -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#[U] -// ^^^^^ reference local29 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onDragStarted(U model, View itemView, int adapterPosition) { -// ^^^^^^^^^^^^^ definition local23 @Override public void onDragStarted(U model, unresolved_type itemView, int adapterPosition) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#[U] -// ^^^^^ definition local32 U model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local33 unresolved_type itemView -// ^^^^^^^^^^^^^^^ definition local34 int adapterPosition - callbacks.onDragStarted(model, itemView, adapterPosition); -// ^^^^^^^^^ reference local17 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#onDragStarted(). -// ^^^^^ reference local32 -// ^^^^^^^^ reference local33 -// ^^^^^^^^^^^^^^^ reference local34 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onDragReleased(U model, View itemView) { -// ^^^^^^^^^^^^^^ definition local24 @Override public void onDragReleased(U model, unresolved_type itemView) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#[U] -// ^^^^^ definition local35 U model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local36 unresolved_type itemView - callbacks.onDragReleased(model, itemView); -// ^^^^^^^^^ reference local17 -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#onDragReleased(). -// ^^^^^ reference local35 -// ^^^^^^^^ reference local36 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onModelMoved(int fromPosition, int toPosition, U modelBeingMoved, -// ^^^^^^^^^^^^ definition local25 @Override public void onModelMoved(int fromPosition, int toPosition, U modelBeingMoved, unresolved_type itemView) -// ^^^^^^^^^^^^ definition local37 int fromPosition -// ^^^^^^^^^^ definition local38 int toPosition -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#[U] -// ^^^^^^^^^^^^^^^ definition local39 U modelBeingMoved - View itemView) { -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local40 unresolved_type itemView - callbacks.onModelMoved(fromPosition, toPosition, modelBeingMoved, itemView); -// ^^^^^^^^^ reference local17 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#onModelMoved(). -// ^^^^^^^^^^^^ reference local37 -// ^^^^^^^^^^ reference local38 -// ^^^^^^^^^^^^^^^ reference local39 -// ^^^^^^^^ reference local40 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void clearView(U model, View itemView) { -// ^^^^^^^^^ definition local26 @Override public void clearView(U model, unresolved_type itemView) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#[U] -// ^^^^^ definition local41 U model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local42 unresolved_type itemView - callbacks.clearView(model, itemView); -// ^^^^^^^^^ reference local17 -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#clearView(). -// ^^^^^ reference local41 -// ^^^^^^^^ reference local42 - } - }); - - itemTouchHelper.attachToRecyclerView(recyclerView); -// ^^^^^^^^^^^^^^^ reference local18 -// ^^^^^^^^^^^^^^^^^^^^ reference attachToRecyclerView# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#recyclerView. - - return itemTouchHelper; -// ^^^^^^^^^^^^^^^ reference local18 - } - } - - public abstract static class DragCallbacks -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks# public abstract static class DragCallbacks -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#``(). public DragCallbacks() -// ^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#[T] T extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# - implements EpoxyDragCallback { -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyDragCallback# -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#[T] - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onDragStarted(T model, View itemView, int adapterPosition) { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#onDragStarted(). @Override public void onDragStarted(T model, unresolved_type itemView, int adapterPosition) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#[T] -// ^^^^^ definition local43 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local44 unresolved_type itemView -// ^^^^^^^^^^^^^^^ definition local45 int adapterPosition - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onDragReleased(T model, View itemView) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#onDragReleased(). @Override public void onDragReleased(T model, unresolved_type itemView) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#[T] -// ^^^^^ definition local46 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local47 unresolved_type itemView - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public abstract void onModelMoved(int fromPosition, int toPosition, T modelBeingMoved, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#onModelMoved(). @Override public abstract void onModelMoved(int fromPosition, int toPosition, T modelBeingMoved, unresolved_type itemView) -// ^^^^^^^^^^^^ definition local48 int fromPosition -// ^^^^^^^^^^ definition local49 int toPosition -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#[T] -// ^^^^^^^^^^^^^^^ definition local50 T modelBeingMoved - View itemView); -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local51 unresolved_type itemView - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void clearView(T model, View itemView) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#clearView(). @Override public void clearView(T model, unresolved_type itemView) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#[T] -// ^^^^^ definition local52 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local53 unresolved_type itemView - - } - - /** - * Whether the given model should be draggable. - *

- * True by default. You may override this to toggle draggability for a model. - */ - public boolean isDragEnabledForModel(T model) { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#isDragEnabledForModel(). public boolean isDragEnabledForModel(T model) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#[T] -// ^^^^^ definition local54 T model - return true; - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final int getMovementFlagsForModel(T model, int adapterPosition) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#getMovementFlagsForModel(). @Override public final int getMovementFlagsForModel(T model, int adapterPosition) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#[T] -// ^^^^^ definition local55 T model -// ^^^^^^^^^^^^^^^ definition local56 int adapterPosition - // No-Op this is not used - return 0; - } - } - - /** - * The entry point for setting up swipe support for a RecyclerView. The RecyclerView must be set - * with an Epoxy adapter or controller. - */ - public static SwipeBuilder initSwiping(RecyclerView recyclerView) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder# -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#initSwiping(). public static SwipeBuilder initSwiping(unresolved_type recyclerView) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local57 unresolved_type recyclerView - return new SwipeBuilder(recyclerView); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder#``(). -// ^^^^^^^^^^^^ reference local57 - } - - public static class SwipeBuilder { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder# public static class SwipeBuilder - - private final RecyclerView recyclerView; -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder#recyclerView. private final unresolved_type recyclerView - - private SwipeBuilder(RecyclerView recyclerView) { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder#``(). private SwipeBuilder(unresolved_type recyclerView) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local58 unresolved_type recyclerView - this.recyclerView = recyclerView; -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder#recyclerView. -// ^^^^^^^^^^^^ reference local58 - } - - /** Enable swiping right. */ - public SwipeBuilder2 right() { -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2# -// ^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder#right(). public SwipeBuilder2 right() - return withDirections(ItemTouchHelper.RIGHT); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder#withDirections(). -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^ reference RIGHT# - } - - /** Enable swiping left. */ - public SwipeBuilder2 left() { -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2# -// ^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder#left(). public SwipeBuilder2 left() - return withDirections(ItemTouchHelper.LEFT); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder#withDirections(). -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^ reference LEFT# - } - - /** Enable swiping horizontally, left and right. */ - public SwipeBuilder2 leftAndRight() { -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder#leftAndRight(). public SwipeBuilder2 leftAndRight() - return withDirections(ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder#withDirections(). -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^ reference LEFT# -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^ reference RIGHT# - } - - /** - * Set custom movement flags to dictate which swipe directions should be allowed. - *

- * Can be any of {@link ItemTouchHelper#LEFT}, {@link ItemTouchHelper#RIGHT}, {@link - * ItemTouchHelper#UP}, {@link ItemTouchHelper#DOWN}, {@link ItemTouchHelper#START}, {@link - * ItemTouchHelper#END} - *

- * Flags can be OR'd together to allow multiple directions. - */ - public SwipeBuilder2 withDirections(int directionFlags) { -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2# -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder#withDirections(). public SwipeBuilder2 withDirections(int directionFlags) -// ^^^^^^^^^^^^^^ definition local59 int directionFlags - return new SwipeBuilder2(recyclerView, makeMovementFlags(0, directionFlags)); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#``(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder#recyclerView. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder#makeMovementFlags# -// ^^^^^^^^^^^^^^ reference local59 - } - } - - public static class SwipeBuilder2 { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2# public static class SwipeBuilder2 - - private final RecyclerView recyclerView; -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#recyclerView. private final unresolved_type recyclerView - private final int movementFlags; -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#movementFlags. private final int movementFlags - - private SwipeBuilder2(RecyclerView recyclerView, -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#``(). private SwipeBuilder2(unresolved_type recyclerView, int movementFlags) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local60 unresolved_type recyclerView - int movementFlags) { -// ^^^^^^^^^^^^^ definition local61 int movementFlags - this.recyclerView = recyclerView; -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#recyclerView. -// ^^^^^^^^^^^^ reference local60 - this.movementFlags = movementFlags; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#movementFlags. -// ^^^^^^^^^^^^^ reference local61 - } - - /** - * Set the type of Epoxy model that is swipable. Use this if you only have one - * swipable type. - */ - public SwipeBuilder3 withTarget(Class targetModelClass) { -// ^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#withTarget().[U] U extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3# -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#withTarget().[U] -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#withTarget(). public SwipeBuilder3 withTarget(Class targetModelClass) -// ^^^^^ reference java/lang/Class# -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#withTarget().[U] -// ^^^^^^^^^^^^^^^^ definition local62 Class targetModelClass - List> targetClasses = new ArrayList<>(1); -// ^^^^ reference java/util/List# -// ^^^^^ reference java/lang/Class# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition local63 List> targetClasses -// ^^^^^^^^^ reference java/util/ArrayList#``(). - targetClasses.add(targetModelClass); -// ^^^^^^^^^^^^^ reference local63 -// ^^^ reference java/util/List#add(). -// ^^^^^^^^^^^^^^^^ reference local62 - - return new SwipeBuilder3<>(recyclerView, movementFlags, targetModelClass, -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#``(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#recyclerView. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#movementFlags. -// ^^^^^^^^^^^^^^^^ reference local62 - targetClasses); -// ^^^^^^^^^^^^^ reference local63 - } - - /** - * Specify which Epoxy model types are swipable. Use this if you have more than one type that - * is swipable. - *

- * If you only have one swipable type you should use {@link #withTarget(Class)} - */ - public SwipeBuilder3 withTargets( -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#withTargets(). public SwipeBuilder3 withTargets(Class[] targetModelClasses) - Class... targetModelClasses) { -// ^^^^^ reference java/lang/Class# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^ definition local64 Class[] targetModelClasses - return new SwipeBuilder3<>(recyclerView, movementFlags, EpoxyModel.class, -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#``(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#recyclerView. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#movementFlags. -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#class. - Arrays.asList(targetModelClasses)); -// ^^^^^^ reference java/util/Arrays# -// ^^^^^^ reference java/util/Arrays#asList(). -// ^^^^^^^^^^^^^^^^^^ reference local64 - } - - /** - * Use this if all models in the controller should be swipable, and if there are multiple types - * of models in the controller. - *

- * If you only have one model type you should use {@link #withTarget(Class)} - */ - public SwipeBuilder3 forAllModels() { -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#forAllModels(). public SwipeBuilder3 forAllModels() - return withTarget(EpoxyModel.class); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder2#withTarget(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ reference com/airbnb/epoxy/EpoxyModel#class. - } - } - - public static class SwipeBuilder3 { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3# public static class SwipeBuilder3 -// ^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#[U] U extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# - - private final RecyclerView recyclerView; -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#recyclerView. private final unresolved_type recyclerView - private final int movementFlags; -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#movementFlags. private final int movementFlags - private final Class targetModelClass; -// ^^^^^ reference java/lang/Class# -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#[U] -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#targetModelClass. private final Class targetModelClass - private final List> targetModelClasses; -// ^^^^ reference java/util/List# -// ^^^^^ reference java/lang/Class# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#targetModelClasses. private final List> targetModelClasses - - private SwipeBuilder3( -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#``(). private SwipeBuilder3(unresolved_type recyclerView, int movementFlags, Class targetModelClass, List> targetModelClasses) - RecyclerView recyclerView, int movementFlags, -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local65 unresolved_type recyclerView -// ^^^^^^^^^^^^^ definition local66 int movementFlags - Class targetModelClass, List> targetModelClasses) { -// ^^^^^ reference java/lang/Class# -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#[U] -// ^^^^^^^^^^^^^^^^ definition local67 Class targetModelClass -// ^^^^ reference java/util/List# -// ^^^^^ reference java/lang/Class# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^ definition local68 List> targetModelClasses - - this.recyclerView = recyclerView; -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#recyclerView. -// ^^^^^^^^^^^^ reference local65 - this.movementFlags = movementFlags; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#movementFlags. -// ^^^^^^^^^^^^^ reference local66 - this.targetModelClass = targetModelClass; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#targetModelClass. -// ^^^^^^^^^^^^^^^^ reference local67 - this.targetModelClasses = targetModelClasses; -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#targetModelClasses. -// ^^^^^^^^^^^^^^^^^^ reference local68 - } - - /** - * Set callbacks to handle swipe actions and lifecycle events. - *

- * You MUST implement {@link SwipeCallbacks#onSwipeCompleted(EpoxyModel, View, int, int)} to - * remove the swiped item from your data and request a model build. - *

- * You can optionally implement the other callbacks to modify the view as it is being swiped. - * - * @return An {@link ItemTouchHelper} instance that has been initialized and attached to a - * recyclerview. The touch helper has already been fully set up and can be ignored, but you may - * want to hold a reference to it if you need to later detach the recyclerview to disable touch - * events via setting null on {@link ItemTouchHelper#attachToRecyclerView(RecyclerView)} - */ - public ItemTouchHelper andCallbacks(final SwipeCallbacks callbacks) { -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#andCallbacks(). public unresolved_type andCallbacks(SwipeCallbacks callbacks) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks# -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#[U] -// ^^^^^^^^^ definition local69 final SwipeCallbacks callbacks - ItemTouchHelper itemTouchHelper = -// ^^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^ definition local70 unresolved_type itemTouchHelper - new ItemTouchHelper(new EpoxyModelTouchCallback(null, targetModelClass) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback# -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#[U] -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#targetModelClass. - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int getMovementFlagsForModel(U model, int adapterPosition) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition local73 @Override public int getMovementFlagsForModel(U model, int adapterPosition) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#[U] -// ^^^^^ definition local80 U model -// ^^^^^^^^^^^^^^^ definition local81 int adapterPosition - return movementFlags; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#movementFlags. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected boolean isTouchableModel(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^ definition local74 @Override protected boolean isTouchableModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local82 EpoxyModel model - boolean isTargetType = targetModelClasses.size() == 1 -// ^^^^^^^^^^^^ definition local83 boolean isTargetType -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#targetModelClasses. -// ^^^^ reference java/util/List#size(). - ? super.isTouchableModel(model) -// ^^^^^ reference local84 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelTouchCallback#isTouchableModel(). -// ^^^^^ reference local82 - : targetModelClasses.contains(model.getClass()); -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#targetModelClasses. -// ^^^^^^^^ reference java/util/List#contains(). -// ^^^^^ reference local82 -// ^^^^^^^^ reference java/lang/Object#getClass(). - - //noinspection unchecked - return isTargetType && callbacks.isSwipeEnabledForModel((U) model); -// ^^^^^^^^^^^^ reference local83 -// ^^^^^^^^^ reference local69 -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#isSwipeEnabledForModel(). -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#[U] -// ^^^^^ reference local82 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onSwipeStarted(U model, View itemView, int adapterPosition) { -// ^^^^^^^^^^^^^^ definition local75 @Override public void onSwipeStarted(U model, unresolved_type itemView, int adapterPosition) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#[U] -// ^^^^^ definition local85 U model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local86 unresolved_type itemView -// ^^^^^^^^^^^^^^^ definition local87 int adapterPosition - callbacks.onSwipeStarted(model, itemView, adapterPosition); -// ^^^^^^^^^ reference local69 -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#onSwipeStarted(). -// ^^^^^ reference local85 -// ^^^^^^^^ reference local86 -// ^^^^^^^^^^^^^^^ reference local87 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onSwipeProgressChanged(U model, View itemView, float swipeProgress, -// ^^^^^^^^^^^^^^^^^^^^^^ definition local76 @Override public void onSwipeProgressChanged(U model, unresolved_type itemView, float swipeProgress, unresolved_type canvas) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#[U] -// ^^^^^ definition local88 U model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local89 unresolved_type itemView -// ^^^^^^^^^^^^^ definition local90 float swipeProgress - Canvas canvas) { -// ^^^^^^ reference _root_/ -// ^^^^^^ definition local91 unresolved_type canvas - callbacks.onSwipeProgressChanged(model, itemView, swipeProgress, canvas); -// ^^^^^^^^^ reference local69 -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#onSwipeProgressChanged(). -// ^^^^^ reference local88 -// ^^^^^^^^ reference local89 -// ^^^^^^^^^^^^^ reference local90 -// ^^^^^^ reference local91 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onSwipeCompleted(U model, View itemView, int position, int direction) { -// ^^^^^^^^^^^^^^^^ definition local77 @Override public void onSwipeCompleted(U model, unresolved_type itemView, int position, int direction) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#[U] -// ^^^^^ definition local92 U model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local93 unresolved_type itemView -// ^^^^^^^^ definition local94 int position -// ^^^^^^^^^ definition local95 int direction - callbacks.onSwipeCompleted(model, itemView, position, direction); -// ^^^^^^^^^ reference local69 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#onSwipeCompleted(). -// ^^^^^ reference local92 -// ^^^^^^^^ reference local93 -// ^^^^^^^^ reference local94 -// ^^^^^^^^^ reference local95 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onSwipeReleased(U model, View itemView) { -// ^^^^^^^^^^^^^^^ definition local78 @Override public void onSwipeReleased(U model, unresolved_type itemView) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#[U] -// ^^^^^ definition local96 U model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local97 unresolved_type itemView - callbacks.onSwipeReleased(model, itemView); -// ^^^^^^^^^ reference local69 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#onSwipeReleased(). -// ^^^^^ reference local96 -// ^^^^^^^^ reference local97 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void clearView(U model, View itemView) { -// ^^^^^^^^^ definition local79 @Override public void clearView(U model, unresolved_type itemView) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#[U] -// ^^^^^ definition local98 U model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local99 unresolved_type itemView - callbacks.clearView(model, itemView); -// ^^^^^^^^^ reference local69 -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#clearView(). -// ^^^^^ reference local98 -// ^^^^^^^^ reference local99 - } - }); - - itemTouchHelper.attachToRecyclerView(recyclerView); -// ^^^^^^^^^^^^^^^ reference local70 -// ^^^^^^^^^^^^^^^^^^^^ reference attachToRecyclerView# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#recyclerView. - - return itemTouchHelper; -// ^^^^^^^^^^^^^^^ reference local70 - } - } - - public abstract static class SwipeCallbacks -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks# public abstract static class SwipeCallbacks -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#``(). public SwipeCallbacks() -// ^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#[T] T extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# - implements EpoxySwipeCallback { -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxySwipeCallback# -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#[T] - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onSwipeStarted(T model, View itemView, int adapterPosition) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#onSwipeStarted(). @Override public void onSwipeStarted(T model, unresolved_type itemView, int adapterPosition) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#[T] -// ^^^^^ definition local100 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local101 unresolved_type itemView -// ^^^^^^^^^^^^^^^ definition local102 int adapterPosition - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onSwipeProgressChanged(T model, View itemView, float swipeProgress, -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#onSwipeProgressChanged(). @Override public void onSwipeProgressChanged(T model, unresolved_type itemView, float swipeProgress, unresolved_type canvas) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#[T] -// ^^^^^ definition local103 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local104 unresolved_type itemView -// ^^^^^^^^^^^^^ definition local105 float swipeProgress - Canvas canvas) { -// ^^^^^^ reference _root_/ -// ^^^^^^ definition local106 unresolved_type canvas - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public abstract void onSwipeCompleted(T model, View itemView, int position, int direction); -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#onSwipeCompleted(). @Override public abstract void onSwipeCompleted(T model, unresolved_type itemView, int position, int direction) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#[T] -// ^^^^^ definition local107 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local108 unresolved_type itemView -// ^^^^^^^^ definition local109 int position -// ^^^^^^^^^ definition local110 int direction - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onSwipeReleased(T model, View itemView) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#onSwipeReleased(). @Override public void onSwipeReleased(T model, unresolved_type itemView) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#[T] -// ^^^^^ definition local111 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local112 unresolved_type itemView - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void clearView(T model, View itemView) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#clearView(). @Override public void clearView(T model, unresolved_type itemView) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#[T] -// ^^^^^ definition local113 T model -// ^^^^ reference _root_/ -// ^^^^^^^^ definition local114 unresolved_type itemView - - } - - /** - * Whether the given model should be swipable. - *

- * True by default. You may override this to toggle swipabaility for a model. - */ - public boolean isSwipeEnabledForModel(T model) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#isSwipeEnabledForModel(). public boolean isSwipeEnabledForModel(T model) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#[T] -// ^^^^^ definition local115 T model - return true; - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final int getMovementFlagsForModel(T model, int adapterPosition) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#getMovementFlagsForModel(). @Override public final int getMovementFlagsForModel(T model, int adapterPosition) -// ^ reference com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#[T] -// ^^^^^ definition local116 T model -// ^^^^^^^^^^^^^^^ definition local117 int adapterPosition - // Not used - return 0; - } - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyTouchHelperCallback.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyTouchHelperCallback.java deleted file mode 100644 index 425d27d46..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyTouchHelperCallback.java +++ /dev/null @@ -1,496 +0,0 @@ -package com.airbnb.epoxy; - -import android.graphics.Canvas; -// ^^^^^^^ reference android/ -// ^^^^^^^^ reference android/graphics/ -// ^^^^^^ reference android/graphics/Canvas# - -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -import androidx.recyclerview.widget.ItemTouchHelper; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/ItemTouchHelper# -import androidx.recyclerview.widget.RecyclerView; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView# -import androidx.recyclerview.widget.RecyclerView.ViewHolder; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView/ -// ^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView/ViewHolder# - -/** - * A wrapper around {@link androidx.recyclerview.widget.ItemTouchHelper.Callback} to cast all - * view holders to {@link com.airbnb.epoxy.EpoxyViewHolder} for simpler use with Epoxy. - */ -public abstract class EpoxyTouchHelperCallback extends ItemTouchHelper.Callback { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback# public abstract class EpoxyTouchHelperCallback -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#``(). public EpoxyTouchHelperCallback() -// ^^^^^^^^^^^^^^^ reference ItemTouchHelper/ -// ^^^^^^^^ reference ItemTouchHelper/Callback# - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final int getMovementFlags(RecyclerView recyclerView, ViewHolder viewHolder) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#getMovementFlags(). @Override public final int getMovementFlags(unresolved_type recyclerView, unresolved_type viewHolder) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local0 unresolved_type recyclerView -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ definition local1 unresolved_type viewHolder - return getMovementFlags(recyclerView, (EpoxyViewHolder) viewHolder); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#getMovementFlags(). -// ^^^^^^^^^^^^ reference local0 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ reference local1 - } - - /** - * @see #getMovementFlags(RecyclerView, ViewHolder) - */ - protected abstract int getMovementFlags(RecyclerView recyclerView, EpoxyViewHolder viewHolder); -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#getMovementFlags(+1). protected abstract int getMovementFlags(unresolved_type recyclerView, EpoxyViewHolder viewHolder) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local2 unresolved_type recyclerView -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local3 EpoxyViewHolder viewHolder - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final boolean onMove(RecyclerView recyclerView, ViewHolder viewHolder, ViewHolder target) { -// ^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#onMove(). @Override public final boolean onMove(unresolved_type recyclerView, unresolved_type viewHolder, unresolved_type target) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local4 unresolved_type recyclerView -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ definition local5 unresolved_type viewHolder -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local6 unresolved_type target - return onMove(recyclerView, (EpoxyViewHolder) viewHolder, (EpoxyViewHolder) target); -// ^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#onMove(). -// ^^^^^^^^^^^^ reference local4 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ reference local5 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ reference local6 - } - - /** - * @see #onMove(RecyclerView, ViewHolder, ViewHolder) - */ - protected abstract boolean onMove(RecyclerView recyclerView, EpoxyViewHolder viewHolder, -// ^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#onMove(+1). protected abstract boolean onMove(unresolved_type recyclerView, EpoxyViewHolder viewHolder, EpoxyViewHolder target) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local7 unresolved_type recyclerView -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local8 EpoxyViewHolder viewHolder - EpoxyViewHolder target); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local9 EpoxyViewHolder target - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final void onSwiped(ViewHolder viewHolder, int direction) { -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#onSwiped(). @Override public final void onSwiped(unresolved_type viewHolder, int direction) -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ definition local10 unresolved_type viewHolder -// ^^^^^^^^^ definition local11 int direction - onSwiped((EpoxyViewHolder) viewHolder, direction); -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#onSwiped(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ reference local10 -// ^^^^^^^^^ reference local11 - } - - /** - * @see #onSwiped(ViewHolder, int) - */ - protected abstract void onSwiped(EpoxyViewHolder viewHolder, int direction); -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#onSwiped(+-1). protected abstract void onSwiped(EpoxyViewHolder viewHolder, int direction) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local12 EpoxyViewHolder viewHolder -// ^^^^^^^^^ definition local13 int direction - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final boolean canDropOver(RecyclerView recyclerView, ViewHolder current, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#canDropOver(). @Override public final boolean canDropOver(unresolved_type recyclerView, unresolved_type current, unresolved_type target) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local14 unresolved_type recyclerView -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^ definition local15 unresolved_type current - ViewHolder target) { -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local16 unresolved_type target - return canDropOver(recyclerView, (EpoxyViewHolder) current, (EpoxyViewHolder) target); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#canDropOver(). -// ^^^^^^^^^^^^ reference local14 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^ reference local15 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ reference local16 - } - - /** - * @see #canDropOver(RecyclerView, ViewHolder, ViewHolder) - */ - protected boolean canDropOver(RecyclerView recyclerView, EpoxyViewHolder current, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#canDropOver(+1). protected boolean canDropOver(unresolved_type recyclerView, EpoxyViewHolder current, EpoxyViewHolder target) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local17 unresolved_type recyclerView -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^ definition local18 EpoxyViewHolder current - EpoxyViewHolder target) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local19 EpoxyViewHolder target - return super.canDropOver(recyclerView, current, target); -// ^^^^^ reference _root_/ -// ^^^^^^^^^^^ reference canDropOver# -// ^^^^^^^^^^^^ reference local17 -// ^^^^^^^ reference local18 -// ^^^^^^ reference local19 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final float getSwipeThreshold(ViewHolder viewHolder) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#getSwipeThreshold(). @Override public final float getSwipeThreshold(unresolved_type viewHolder) -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ definition local20 unresolved_type viewHolder - return getSwipeThreshold((EpoxyViewHolder) viewHolder); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#getSwipeThreshold(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ reference local20 - } - - /** - * @see #getSwipeThreshold(ViewHolder) - */ - protected float getSwipeThreshold(EpoxyViewHolder viewHolder) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#getSwipeThreshold(+-1). protected float getSwipeThreshold(EpoxyViewHolder viewHolder) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local21 EpoxyViewHolder viewHolder - return super.getSwipeThreshold(viewHolder); -// ^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^ reference getSwipeThreshold# -// ^^^^^^^^^^ reference local21 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final float getMoveThreshold(ViewHolder viewHolder) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#getMoveThreshold(). @Override public final float getMoveThreshold(unresolved_type viewHolder) -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ definition local22 unresolved_type viewHolder - return getMoveThreshold((EpoxyViewHolder) viewHolder); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#getMoveThreshold(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ reference local22 - } - - /** - * @see #getMoveThreshold(ViewHolder) - */ - protected float getMoveThreshold(EpoxyViewHolder viewHolder) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#getMoveThreshold(+-1). protected float getMoveThreshold(EpoxyViewHolder viewHolder) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local23 EpoxyViewHolder viewHolder - return super.getMoveThreshold(viewHolder); -// ^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^ reference getMoveThreshold# -// ^^^^^^^^^^ reference local23 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final ViewHolder chooseDropTarget(ViewHolder selected, List dropTargets, int curX, -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#chooseDropTarget(). @Override public final unresolved_type chooseDropTarget(unresolved_type selected, List dropTargets, int curX, int curY) -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^ definition local24 unresolved_type selected -// ^^^^ reference java/util/List# -// ^^^^^^^^^^^ definition local25 List dropTargets -// ^^^^ definition local26 int curX - int curY) { -// ^^^^ definition local27 int curY - //noinspection unchecked - return chooseDropTarget((EpoxyViewHolder) selected, (List) dropTargets, curX, -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#chooseDropTarget(+1). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^ reference local24 -// ^^^^ reference java/util/List# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^^ reference local25 -// ^^^^ reference local26 - curY); -// ^^^^ reference local27 - } - - /** - * @see #chooseDropTarget(ViewHolder, List, int, int) - */ - protected EpoxyViewHolder chooseDropTarget(EpoxyViewHolder selected, -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#chooseDropTarget(+1). protected EpoxyViewHolder chooseDropTarget(EpoxyViewHolder selected, List dropTargets, int curX, int curY) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^ definition local28 EpoxyViewHolder selected - List dropTargets, int curX, int curY) { -// ^^^^ reference java/util/List# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^^ definition local29 List dropTargets -// ^^^^ definition local30 int curX -// ^^^^ definition local31 int curY - - //noinspection unchecked - return (EpoxyViewHolder) super.chooseDropTarget(selected, (List) dropTargets, curX, curY); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^ reference chooseDropTarget# -// ^^^^^^^^ reference local28 -// ^^^^ reference java/util/List# -// ^^^^^^^^^^^ reference local29 -// ^^^^ reference local30 -// ^^^^ reference local31 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final void onSelectedChanged(ViewHolder viewHolder, int actionState) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#onSelectedChanged(). @Override public final void onSelectedChanged(unresolved_type viewHolder, int actionState) -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ definition local32 unresolved_type viewHolder -// ^^^^^^^^^^^ definition local33 int actionState - onSelectedChanged((EpoxyViewHolder) viewHolder, actionState); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#onSelectedChanged(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ reference local32 -// ^^^^^^^^^^^ reference local33 - } - - /** - * @see #onSelectedChanged(ViewHolder, int) - */ - protected void onSelectedChanged(EpoxyViewHolder viewHolder, int actionState) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#onSelectedChanged(+-1). protected void onSelectedChanged(EpoxyViewHolder viewHolder, int actionState) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local34 EpoxyViewHolder viewHolder -// ^^^^^^^^^^^ definition local35 int actionState - super.onSelectedChanged(viewHolder, actionState); -// ^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^ reference onSelectedChanged# -// ^^^^^^^^^^ reference local34 -// ^^^^^^^^^^^ reference local35 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final void onMoved(RecyclerView recyclerView, ViewHolder viewHolder, int fromPos, -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#onMoved(). @Override public final void onMoved(unresolved_type recyclerView, unresolved_type viewHolder, int fromPos, unresolved_type target, int toPos, int x, int y) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local36 unresolved_type recyclerView -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ definition local37 unresolved_type viewHolder -// ^^^^^^^ definition local38 int fromPos - ViewHolder target, int toPos, int x, int y) { -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local39 unresolved_type target -// ^^^^^ definition local40 int toPos -// ^ definition local41 int x -// ^ definition local42 int y - - onMoved(recyclerView, (EpoxyViewHolder) viewHolder, fromPos, (EpoxyViewHolder) target, toPos, x, -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#onMoved(). -// ^^^^^^^^^^^^ reference local36 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ reference local37 -// ^^^^^^^ reference local38 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ reference local39 -// ^^^^^ reference local40 -// ^ reference local41 - y); -// ^ reference local42 - } - - /** - * @see #onMoved(RecyclerView, ViewHolder, int, ViewHolder, int, int, int) - */ - protected void onMoved(RecyclerView recyclerView, EpoxyViewHolder viewHolder, int fromPos, -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#onMoved(+1). protected void onMoved(unresolved_type recyclerView, EpoxyViewHolder viewHolder, int fromPos, EpoxyViewHolder target, int toPos, int x, int y) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local43 unresolved_type recyclerView -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local44 EpoxyViewHolder viewHolder -// ^^^^^^^ definition local45 int fromPos - EpoxyViewHolder target, int toPos, int x, int y) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local46 EpoxyViewHolder target -// ^^^^^ definition local47 int toPos -// ^ definition local48 int x -// ^ definition local49 int y - super.onMoved(recyclerView, viewHolder, fromPos, target, toPos, x, y); -// ^^^^^ reference _root_/ -// ^^^^^^^ reference onMoved# -// ^^^^^^^^^^^^ reference local43 -// ^^^^^^^^^^ reference local44 -// ^^^^^^^ reference local45 -// ^^^^^^ reference local46 -// ^^^^^ reference local47 -// ^ reference local48 -// ^ reference local49 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final void clearView(RecyclerView recyclerView, ViewHolder viewHolder) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#clearView(). @Override public final void clearView(unresolved_type recyclerView, unresolved_type viewHolder) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local50 unresolved_type recyclerView -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ definition local51 unresolved_type viewHolder - clearView(recyclerView, (EpoxyViewHolder) viewHolder); -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#clearView(). -// ^^^^^^^^^^^^ reference local50 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ reference local51 - } - - /** - * @see #clearView(RecyclerView, ViewHolder) - */ - protected void clearView(RecyclerView recyclerView, EpoxyViewHolder viewHolder) { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#clearView(+1). protected void clearView(unresolved_type recyclerView, EpoxyViewHolder viewHolder) -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local52 unresolved_type recyclerView -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local53 EpoxyViewHolder viewHolder - super.clearView(recyclerView, viewHolder); -// ^^^^^ reference _root_/ -// ^^^^^^^^^ reference clearView# -// ^^^^^^^^^^^^ reference local52 -// ^^^^^^^^^^ reference local53 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final void onChildDraw(Canvas c, RecyclerView recyclerView, ViewHolder viewHolder, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#onChildDraw(). @Override public final void onChildDraw(unresolved_type c, unresolved_type recyclerView, unresolved_type viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) -// ^^^^^^ reference _root_/ -// ^ definition local54 unresolved_type c -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local55 unresolved_type recyclerView -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ definition local56 unresolved_type viewHolder - float dX, -// ^^ definition local57 float dX - float dY, int actionState, boolean isCurrentlyActive) { -// ^^ definition local58 float dY -// ^^^^^^^^^^^ definition local59 int actionState -// ^^^^^^^^^^^^^^^^^ definition local60 boolean isCurrentlyActive - - onChildDraw(c, recyclerView, (EpoxyViewHolder) viewHolder, dX, dY, actionState, -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#onChildDraw(). -// ^ reference local54 -// ^^^^^^^^^^^^ reference local55 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ reference local56 -// ^^ reference local57 -// ^^ reference local58 -// ^^^^^^^^^^^ reference local59 - isCurrentlyActive); -// ^^^^^^^^^^^^^^^^^ reference local60 - } - - /** - * @see #onChildDraw(Canvas, RecyclerView, ViewHolder, float, float, int, boolean) - */ - protected void onChildDraw(Canvas c, RecyclerView recyclerView, EpoxyViewHolder viewHolder, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#onChildDraw(+1). protected void onChildDraw(unresolved_type c, unresolved_type recyclerView, EpoxyViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) -// ^^^^^^ reference _root_/ -// ^ definition local61 unresolved_type c -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local62 unresolved_type recyclerView -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local63 EpoxyViewHolder viewHolder - float dX, float dY, int actionState, boolean isCurrentlyActive) { -// ^^ definition local64 float dX -// ^^ definition local65 float dY -// ^^^^^^^^^^^ definition local66 int actionState -// ^^^^^^^^^^^^^^^^^ definition local67 boolean isCurrentlyActive - super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); -// ^^^^^ reference _root_/ -// ^^^^^^^^^^^ reference onChildDraw# -// ^ reference local61 -// ^^^^^^^^^^^^ reference local62 -// ^^^^^^^^^^ reference local63 -// ^^ reference local64 -// ^^ reference local65 -// ^^^^^^^^^^^ reference local66 -// ^^^^^^^^^^^^^^^^^ reference local67 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final void onChildDrawOver(Canvas c, RecyclerView recyclerView, ViewHolder viewHolder, -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#onChildDrawOver(). @Override public final void onChildDrawOver(unresolved_type c, unresolved_type recyclerView, unresolved_type viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) -// ^^^^^^ reference _root_/ -// ^ definition local68 unresolved_type c -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local69 unresolved_type recyclerView -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ definition local70 unresolved_type viewHolder - float dX, -// ^^ definition local71 float dX - float dY, int actionState, boolean isCurrentlyActive) { -// ^^ definition local72 float dY -// ^^^^^^^^^^^ definition local73 int actionState -// ^^^^^^^^^^^^^^^^^ definition local74 boolean isCurrentlyActive - - onChildDrawOver(c, recyclerView, (EpoxyViewHolder) viewHolder, dX, dY, actionState, -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#onChildDrawOver(). -// ^ reference local68 -// ^^^^^^^^^^^^ reference local69 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ reference local70 -// ^^ reference local71 -// ^^ reference local72 -// ^^^^^^^^^^^ reference local73 - isCurrentlyActive); -// ^^^^^^^^^^^^^^^^^ reference local74 - } - - /** - * @see #onChildDrawOver(Canvas, RecyclerView, ViewHolder, float, float, int, boolean) - */ - protected void onChildDrawOver(Canvas c, RecyclerView recyclerView, EpoxyViewHolder viewHolder, -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelperCallback#onChildDrawOver(+1). protected void onChildDrawOver(unresolved_type c, unresolved_type recyclerView, EpoxyViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) -// ^^^^^^ reference _root_/ -// ^ definition local75 unresolved_type c -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local76 unresolved_type recyclerView -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ definition local77 EpoxyViewHolder viewHolder - float dX, float dY, int actionState, boolean isCurrentlyActive) { -// ^^ definition local78 float dX -// ^^ definition local79 float dY -// ^^^^^^^^^^^ definition local80 int actionState -// ^^^^^^^^^^^^^^^^^ definition local81 boolean isCurrentlyActive - - super.onChildDrawOver(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); -// ^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^ reference onChildDrawOver# -// ^ reference local75 -// ^^^^^^^^^^^^ reference local76 -// ^^^^^^^^^^ reference local77 -// ^^ reference local78 -// ^^ reference local79 -// ^^^^^^^^^^^ reference local80 -// ^^^^^^^^^^^^^^^^^ reference local81 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyViewHolder.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyViewHolder.java deleted file mode 100644 index 5d0cc539c..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyViewHolder.java +++ /dev/null @@ -1,337 +0,0 @@ -package com.airbnb.epoxy; - -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# -import android.view.ViewParent; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^^^^^^^ reference android/view/ViewParent# - -import com.airbnb.epoxy.ViewHolderState.ViewState; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState# -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState# -import com.airbnb.epoxy.VisibilityState.Visibility; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState# -// ^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState#Visibility# - -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -import androidx.annotation.FloatRange; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^^ reference androidx/annotation/FloatRange# -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.annotation.Px; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^ reference androidx/annotation/Px# -import androidx.recyclerview.widget.RecyclerView; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView# - -@SuppressWarnings("WeakerAccess") -//^^^^^^^^^^^^^^^ reference java/lang/SuppressWarnings# -public class EpoxyViewHolder extends RecyclerView.ViewHolder { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder# @SuppressWarnings("WeakerAccess") public class EpoxyViewHolder -// ^^^^^^^^^^^^ reference RecyclerView/ -// ^^^^^^^^^^ reference RecyclerView/ViewHolder# - @SuppressWarnings("rawtypes") private EpoxyModel epoxyModel; -// ^^^^^^^^^^^^^^^^ reference java/lang/SuppressWarnings# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#epoxyModel. @SuppressWarnings("rawtypes") private EpoxyModel epoxyModel - private List payloads; -// ^^^^ reference java/util/List# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#payloads. private List payloads - private EpoxyHolder epoxyHolder; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyHolder# -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#epoxyHolder. private EpoxyHolder epoxyHolder - @Nullable ViewHolderState.ViewState initialViewState; -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState# -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState# -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#initialViewState. @Nullable ViewState initialViewState - - // Once the EpoxyHolder is created parent will be set to null. - private ViewParent parent; -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#parent. private unresolved_type parent - - public EpoxyViewHolder(ViewParent parent, View view, boolean saveInitialState) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#``(). public EpoxyViewHolder(unresolved_type parent, unresolved_type view, boolean saveInitialState) -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local0 unresolved_type parent -// ^^^^ reference _root_/ -// ^^^^ definition local1 unresolved_type view -// ^^^^^^^^^^^^^^^^ definition local2 boolean saveInitialState - super(view); -// ^^^^ reference local1 - - this.parent = parent; -// ^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#parent. -// ^^^^^^ reference local0 - if (saveInitialState) { -// ^^^^^^^^^^^^^^^^ reference local2 - // We save the initial state of the view when it is created so that we can reset this initial - // state before a model is bound for the first time. Otherwise the view may carry over - // state from a previously bound model. - initialViewState = new ViewState(); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#initialViewState. -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState#``(). - initialViewState.save(itemView); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#initialViewState. -// ^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState#save(). -// ^^^^^^^^ reference _root_/ - } - } - - void restoreInitialViewState() { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#restoreInitialViewState(). void restoreInitialViewState() - if (initialViewState != null) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#initialViewState. - initialViewState.restore(itemView); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#initialViewState. -// ^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState#restore(). -// ^^^^^^^^ reference _root_/ - } - } - - public void bind(@SuppressWarnings("rawtypes") EpoxyModel model, -// ^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#bind(). public void bind(EpoxyModel model, EpoxyModel previouslyBoundModel, List payloads, int position) -// ^^^^^^^^^^^^^^^^ reference java/lang/SuppressWarnings# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local3 @SuppressWarnings("rawtypes") EpoxyModel model - @Nullable EpoxyModel previouslyBoundModel, List payloads, int position) { -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^^ definition local4 @Nullable EpoxyModel previouslyBoundModel -// ^^^^ reference java/util/List# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^ definition local5 List payloads -// ^^^^^^^^ definition local6 int position - this.payloads = payloads; -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#payloads. -// ^^^^^^^^ reference local5 - - if (epoxyHolder == null && model instanceof EpoxyModelWithHolder) { -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#epoxyHolder. -// ^^^^^ reference local3 -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelWithHolder# - epoxyHolder = ((EpoxyModelWithHolder) model).createNewHolder(parent); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#epoxyHolder. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelWithHolder# -// ^^^^^ reference local3 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelWithHolder#createNewHolder(). -// ^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#parent. - epoxyHolder.bindView(itemView); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#epoxyHolder. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyHolder#bindView(). -// ^^^^^^^^ reference _root_/ - } - // Safe to set to null as it is only used for createNewHolder method - parent = null; -// ^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#parent. - - if (model instanceof GeneratedModel) { -// ^^^^^ reference local3 -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/GeneratedModel# - // The generated method will enforce that only a properly typed listener can be set - //noinspection unchecked - ((GeneratedModel) model).handlePreBind(this, objectToBind(), position); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/GeneratedModel# -// ^^^^^ reference local3 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/GeneratedModel#handlePreBind(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). -// ^^^^^^^^ reference local6 - } - - if (previouslyBoundModel != null) { -// ^^^^^^^^^^^^^^^^^^^^ reference local4 - // noinspection unchecked - model.bind(objectToBind(), previouslyBoundModel); -// ^^^^^ reference local3 -// ^^^^ reference com/airbnb/epoxy/EpoxyModel#bind(+2). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). -// ^^^^^^^^^^^^^^^^^^^^ reference local4 - } else if (payloads.isEmpty()) { -// ^^^^^^^^ reference local5 -// ^^^^^^^ reference java/util/List#isEmpty(). - // noinspection unchecked - model.bind(objectToBind()); -// ^^^^^ reference local3 -// ^^^^ reference com/airbnb/epoxy/EpoxyModel#bind(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). - } else { - // noinspection unchecked - model.bind(objectToBind(), payloads); -// ^^^^^ reference local3 -// ^^^^ reference com/airbnb/epoxy/EpoxyModel#bind(+1). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). -// ^^^^^^^^ reference local5 - } - - if (model instanceof GeneratedModel) { -// ^^^^^ reference local3 -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/GeneratedModel# - // The generated method will enforce that only a properly typed listener can be set - //noinspection unchecked - ((GeneratedModel) model).handlePostBind(objectToBind(), position); -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/GeneratedModel# -// ^^^^^ reference local3 -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/GeneratedModel#handlePostBind(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). -// ^^^^^^^^ reference local6 - } - - epoxyModel = model; -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#epoxyModel. -// ^^^^^ reference local3 - } - - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - Object objectToBind() { -//^^^^^^ reference java/lang/Object# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). @NonNull Object objectToBind() - return epoxyHolder != null ? epoxyHolder : itemView; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#epoxyHolder. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#epoxyHolder. -// ^^^^^^^^ reference _root_/ - } - - public void unbind() { -// ^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#unbind(). public void unbind() - assertBound(); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#assertBound(). - // noinspection unchecked - epoxyModel.unbind(objectToBind()); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#epoxyModel. -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModel#unbind(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). - - epoxyModel = null; -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#epoxyModel. - payloads = null; -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#payloads. - } - - public void visibilityStateChanged(@Visibility int visibilityState) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#visibilityStateChanged(). public void visibilityStateChanged(int visibilityState) -// ^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState#Visibility# -// ^^^^^^^^^^^^^^^ definition local7 @Visibility int visibilityState - assertBound(); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#assertBound(). - // noinspection unchecked - epoxyModel.onVisibilityStateChanged(visibilityState, objectToBind()); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#epoxyModel. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onVisibilityStateChanged(). -// ^^^^^^^^^^^^^^^ reference local7 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). - } - - public void visibilityChanged( -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#visibilityChanged(). public void visibilityChanged(float percentVisibleHeight, float percentVisibleWidth, int visibleHeight, int visibleWidth) - @FloatRange(from = 0.0f, to = 100.0f) float percentVisibleHeight, -// ^^^^^^^^^^ reference androidx/annotation/FloatRange# -// ^^^^ reference androidx/annotation/FloatRange#from(). -// ^^ reference androidx/annotation/FloatRange#to(). -// ^^^^^^^^^^^^^^^^^^^^ definition local8 @FloatRange(from = 0.0f, to = 100.0f) float percentVisibleHeight - @FloatRange(from = 0.0f, to = 100.0f) float percentVisibleWidth, -// ^^^^^^^^^^ reference androidx/annotation/FloatRange# -// ^^^^ reference androidx/annotation/FloatRange#from(). -// ^^ reference androidx/annotation/FloatRange#to(). -// ^^^^^^^^^^^^^^^^^^^ definition local9 @FloatRange(from = 0.0f, to = 100.0f) float percentVisibleWidth - @Px int visibleHeight, -// ^^ reference androidx/annotation/Px# -// ^^^^^^^^^^^^^ definition local10 @Px int visibleHeight - @Px int visibleWidth -// ^^ reference androidx/annotation/Px# -// ^^^^^^^^^^^^ definition local11 @Px int visibleWidth - ) { - assertBound(); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#assertBound(). - // noinspection unchecked - epoxyModel.onVisibilityChanged(percentVisibleHeight, percentVisibleWidth, visibleHeight, -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#epoxyModel. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#onVisibilityChanged(). -// ^^^^^^^^^^^^^^^^^^^^ reference local8 -// ^^^^^^^^^^^^^^^^^^^ reference local9 -// ^^^^^^^^^^^^^ reference local10 - visibleWidth, objectToBind()); -// ^^^^^^^^^^^^ reference local11 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). - } - - public List getPayloads() { -// ^^^^ reference java/util/List# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#getPayloads(). public List getPayloads() - assertBound(); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#assertBound(). - return payloads; -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#payloads. - } - - public EpoxyModel getModel() { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#getModel(). public EpoxyModel getModel() - assertBound(); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#assertBound(). - return epoxyModel; -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#epoxyModel. - } - - public EpoxyHolder getHolder() { -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyHolder# -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#getHolder(). public EpoxyHolder getHolder() - assertBound(); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#assertBound(). - return epoxyHolder; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#epoxyHolder. - } - - private void assertBound() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#assertBound(). private void assertBound() - if (epoxyModel == null) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#epoxyModel. - throw new IllegalStateException("This holder is not currently bound."); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - } - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public String toString() { -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyViewHolder#toString(). @Override public String toString() - return "EpoxyViewHolder{" - + "epoxyModel=" + epoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#epoxyModel. - + ", view=" + itemView -// ^^^^^^^^ reference _root_/ - + ", super=" + super.toString() -// ^^^^^ reference _root_/ -// ^^^^^^^^ reference toString# - + '}'; - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyVisibilityItem.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyVisibilityItem.kt deleted file mode 100644 index 8385abe8f..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyVisibilityItem.kt +++ /dev/null @@ -1,651 +0,0 @@ -package com.airbnb.epoxy -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ - -import android.graphics.Rect -import android.view.View -import android.view.ViewGroup -import androidx.annotation.IntRange -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/IntRange# -import androidx.annotation.Px -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^ reference androidx/annotation/Px# -import androidx.annotation.VisibleForTesting -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^^^^^^^^^ reference androidx/annotation/VisibleForTesting# -import androidx.recyclerview.widget.RecyclerView -// ^^^^^^^^ reference androidx/ - -/** - * This class represent an item in a [android.view.ViewGroup] and it is - * being reused with multiple model via the update method. There is 1:1 relationship between an - * EpoxyVisibilityItem and a child within the [android.view.ViewGroup]. - * - * It contains the logic to compute the visibility state of an item. It will also invoke the - * visibility callbacks on [com.airbnb.epoxy.EpoxyViewHolder] - * - * This class should remain non-public and is intended to be used by [EpoxyVisibilityTracker] - * only. - */ -@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) -//^^^^^^^^^^^^^^^^ reference androidx/annotation/VisibleForTesting#``(). -// ^^^^^^^^^ reference androidx/annotation/VisibleForTesting#``().(otherwise) -// ^^^^^^^^^^^^^^^^^ reference androidx/annotation/VisibleForTesting# -// ^^^^^^^^^^^^^^^ reference androidx/annotation/VisibleForTesting#PACKAGE_PRIVATE. -class EpoxyVisibilityItem(adapterPosition: Int? = null) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem# public final class EpoxyVisibilityItem -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#``(). public constructor EpoxyVisibilityItem(adapterPosition: kotlin.Int? = ...) -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#``().(adapterPosition) value-parameter adapterPosition: kotlin.Int? = ... -// ^^^ reference kotlin/Int# - - private val localVisibleRect = Rect() -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#localVisibleRect. private final val localVisibleRect: [ERROR : Type for Rect()] -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getLocalVisibleRect(). private final val localVisibleRect: [ERROR : Type for Rect()] - - var adapterPosition = RecyclerView.NO_POSITION -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#adapterPosition. public final var adapterPosition: [ERROR : ] -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getAdapterPosition(). public final var adapterPosition: [ERROR : ] - private set -// ^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setAdapterPosition(). private final fun (: [ERROR : ]) - - @Px -// ^^ reference androidx/annotation/Px#``(). - private var height = 0 -// ^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#height. private final var height: kotlin.Int -// ^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getHeight(). private final var height: kotlin.Int -// ^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setHeight(). private final var height: kotlin.Int - - @Px -// ^^ reference androidx/annotation/Px#``(). - private var width = 0 -// ^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#width. private final var width: kotlin.Int -// ^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getWidth(). private final var width: kotlin.Int -// ^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setWidth(). private final var width: kotlin.Int - - @Px -// ^^ reference androidx/annotation/Px#``(). - private var visibleHeight = 0 -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#visibleHeight. private final var visibleHeight: kotlin.Int -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleHeight(). private final var visibleHeight: kotlin.Int -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleHeight(). private final var visibleHeight: kotlin.Int - - @Px -// ^^ reference androidx/annotation/Px#``(). - private var visibleWidth = 0 -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#visibleWidth. private final var visibleWidth: kotlin.Int -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleWidth(). private final var visibleWidth: kotlin.Int -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleWidth(). private final var visibleWidth: kotlin.Int - - @Px -// ^^ reference androidx/annotation/Px#``(). - private var viewportHeight = 0 -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#viewportHeight. private final var viewportHeight: kotlin.Int -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getViewportHeight(). private final var viewportHeight: kotlin.Int -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setViewportHeight(). private final var viewportHeight: kotlin.Int - - @Px -// ^^ reference androidx/annotation/Px#``(). - private var viewportWidth = 0 -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#viewportWidth. private final var viewportWidth: kotlin.Int -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getViewportWidth(). private final var viewportWidth: kotlin.Int -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setViewportWidth(). private final var viewportWidth: kotlin.Int - private var partiallyVisible = false -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#partiallyVisible. private final var partiallyVisible: kotlin.Boolean -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getPartiallyVisible(). private final var partiallyVisible: kotlin.Boolean -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setPartiallyVisible(). private final var partiallyVisible: kotlin.Boolean - private var fullyVisible = false -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#fullyVisible. private final var fullyVisible: kotlin.Boolean -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getFullyVisible(). private final var fullyVisible: kotlin.Boolean -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setFullyVisible(). private final var fullyVisible: kotlin.Boolean - private var visible = false -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#visible. private final var visible: kotlin.Boolean -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getVisible(). private final var visible: kotlin.Boolean -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setVisible(). private final var visible: kotlin.Boolean - private var focusedVisible = false -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#focusedVisible. private final var focusedVisible: kotlin.Boolean -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getFocusedVisible(). private final var focusedVisible: kotlin.Boolean -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setFocusedVisible(). private final var focusedVisible: kotlin.Boolean - private var viewVisibility = View.GONE -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#viewVisibility. private final var viewVisibility: [ERROR : ] -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getViewVisibility(). private final var viewVisibility: [ERROR : ] -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setViewVisibility(). private final var viewVisibility: [ERROR : ] - - /** Store last value for de-duping */ - private var lastVisibleHeightNotified: Int? = null -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#lastVisibleHeightNotified. private final var lastVisibleHeightNotified: kotlin.Int? -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getLastVisibleHeightNotified(). private final var lastVisibleHeightNotified: kotlin.Int? -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setLastVisibleHeightNotified(). private final var lastVisibleHeightNotified: kotlin.Int? -// ^^^ reference kotlin/Int# - private var lastVisibleWidthNotified: Int? = null -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#lastVisibleWidthNotified. private final var lastVisibleWidthNotified: kotlin.Int? -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getLastVisibleWidthNotified(). private final var lastVisibleWidthNotified: kotlin.Int? -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setLastVisibleWidthNotified(). private final var lastVisibleWidthNotified: kotlin.Int? -// ^^^ reference kotlin/Int# - private var lastVisibilityNotified: Int? = null -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#lastVisibilityNotified. private final var lastVisibilityNotified: kotlin.Int? -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#getLastVisibilityNotified(). private final var lastVisibilityNotified: kotlin.Int? -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#setLastVisibilityNotified(). private final var lastVisibilityNotified: kotlin.Int? -// ^^^ reference kotlin/Int# - - init { - adapterPosition?.let { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#``().(adapterPosition) -// ^^^ reference kotlin/StandardKt#let(). - reset(it) -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#reset(). -// ^^ reference local0 - } - } - - /** - * Update the visibility item according the current layout. - * - * @param view the current [com.airbnb.epoxy.EpoxyViewHolder]'s itemView - * @param parent the [android.view.ViewGroup] - * @return true if the view has been measured - */ - fun update(view: View, parent: ViewGroup, detachEvent: Boolean): Boolean { -// ^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#update(). public final fun update(view: [ERROR : View], parent: [ERROR : ViewGroup], detachEvent: kotlin.Boolean): kotlin.Boolean -// ^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#update().(view) value-parameter view: [ERROR : View] -// ^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#update().(parent) value-parameter parent: [ERROR : ViewGroup] -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#update().(detachEvent) value-parameter detachEvent: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# -// ^^^^^^^ reference kotlin/Boolean# - // Clear the rect before calling getLocalVisibleRect - localVisibleRect.setEmpty() -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#localVisibleRect. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getLocalVisibleRect(). - val viewDrawn = view.getLocalVisibleRect(localVisibleRect) && !detachEvent -// ^^^^^^^^^ definition local1 val viewDrawn: kotlin.Boolean -// ^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#update().(view) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#localVisibleRect. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getLocalVisibleRect(). -// ^ reference kotlin/Boolean#not(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#update().(detachEvent) - height = view.height -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#height. -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getHeight(). -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setHeight(). -// ^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#update().(view) - width = view.width -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#width. -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getWidth(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setWidth(). -// ^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#update().(view) - viewportHeight = parent.height -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#viewportHeight. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getViewportHeight(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setViewportHeight(). -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#update().(parent) - viewportWidth = parent.width -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#viewportWidth. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getViewportWidth(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setViewportWidth(). -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#update().(parent) - visibleHeight = if (viewDrawn) localVisibleRect.height() else 0 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleHeight. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleHeight(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleHeight(). -// ^^^^^^^^^ reference local1 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#localVisibleRect. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getLocalVisibleRect(). - visibleWidth = if (viewDrawn) localVisibleRect.width() else 0 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleWidth. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleWidth(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleWidth(). -// ^^^^^^^^^ reference local1 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#localVisibleRect. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getLocalVisibleRect(). - viewVisibility = view.visibility -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#viewVisibility. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getViewVisibility(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setViewVisibility(). -// ^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#update().(view) - return height > 0 && width > 0 -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#height. -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getHeight(). -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setHeight(). -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#width. -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getWidth(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setWidth(). -// ^ reference kotlin/Int#compareTo(+3). - } - - fun reset(newAdapterPosition: Int) { -// ^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#reset(). public final fun reset(newAdapterPosition: kotlin.Int) -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#reset().(newAdapterPosition) value-parameter newAdapterPosition: kotlin.Int -// ^^^ reference kotlin/Int# - fullyVisible = false -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#fullyVisible. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getFullyVisible(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setFullyVisible(). - visible = false -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visible. -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisible(). -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisible(). - focusedVisible = false -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#focusedVisible. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getFocusedVisible(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setFocusedVisible(). - adapterPosition = newAdapterPosition -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#adapterPosition. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getAdapterPosition(). -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#reset().(newAdapterPosition) - lastVisibleHeightNotified = null -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#lastVisibleHeightNotified. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getLastVisibleHeightNotified(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setLastVisibleHeightNotified(). - lastVisibleWidthNotified = null -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#lastVisibleWidthNotified. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getLastVisibleWidthNotified(). -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setLastVisibleWidthNotified(). - lastVisibilityNotified = null -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#lastVisibilityNotified. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getLastVisibilityNotified(). -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setLastVisibilityNotified(). - } - - fun handleVisible(epoxyHolder: EpoxyViewHolder, detachEvent: Boolean) { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handleVisible(). public final fun handleVisible(epoxyHolder: [ERROR : EpoxyViewHolder], detachEvent: kotlin.Boolean) -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handleVisible().(epoxyHolder) value-parameter epoxyHolder: [ERROR : EpoxyViewHolder] -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handleVisible().(detachEvent) value-parameter detachEvent: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - val previousVisible = visible -// ^^^^^^^^^^^^^^^ definition local2 val previousVisible: kotlin.Boolean -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visible. -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisible(). -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisible(). - visible = !detachEvent && isVisible() -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visible. -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisible(). -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisible(). -// ^ reference kotlin/Boolean#not(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handleVisible().(detachEvent) -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#isVisible(). - if (visible != previousVisible) { -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visible. -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisible(). -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisible(). -// ^^ reference kotlin/Boolean#equals(). -// ^^^^^^^^^^^^^^^ reference local2 - if (visible) { -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visible. -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisible(). -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisible(). - epoxyHolder.visibilityStateChanged(VisibilityState.VISIBLE) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handleVisible().(epoxyHolder) - } else { - epoxyHolder.visibilityStateChanged(VisibilityState.INVISIBLE) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handleVisible().(epoxyHolder) - } - } - } - - fun handleFocus(epoxyHolder: EpoxyViewHolder, detachEvent: Boolean) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handleFocus(). public final fun handleFocus(epoxyHolder: [ERROR : EpoxyViewHolder], detachEvent: kotlin.Boolean) -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handleFocus().(epoxyHolder) value-parameter epoxyHolder: [ERROR : EpoxyViewHolder] -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handleFocus().(detachEvent) value-parameter detachEvent: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - val previousFocusedVisible = focusedVisible -// ^^^^^^^^^^^^^^^^^^^^^^ definition local3 val previousFocusedVisible: kotlin.Boolean -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#focusedVisible. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getFocusedVisible(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setFocusedVisible(). - focusedVisible = !detachEvent && isInFocusVisible() -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#focusedVisible. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getFocusedVisible(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setFocusedVisible(). -// ^ reference kotlin/Boolean#not(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handleFocus().(detachEvent) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#isInFocusVisible(). - if (focusedVisible != previousFocusedVisible) { -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#focusedVisible. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getFocusedVisible(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setFocusedVisible(). -// ^^ reference kotlin/Boolean#equals(). -// ^^^^^^^^^^^^^^^^^^^^^^ reference local3 - if (focusedVisible) { -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#focusedVisible. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getFocusedVisible(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setFocusedVisible(). - epoxyHolder.visibilityStateChanged(VisibilityState.FOCUSED_VISIBLE) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handleFocus().(epoxyHolder) - } else { - epoxyHolder.visibilityStateChanged(VisibilityState.UNFOCUSED_VISIBLE) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handleFocus().(epoxyHolder) - } - } - } - - fun handlePartialImpressionVisible( -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handlePartialImpressionVisible(). public final fun handlePartialImpressionVisible(epoxyHolder: [ERROR : EpoxyViewHolder], detachEvent: kotlin.Boolean, thresholdPercentage: kotlin.Int) - epoxyHolder: EpoxyViewHolder, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handlePartialImpressionVisible().(epoxyHolder) value-parameter epoxyHolder: [ERROR : EpoxyViewHolder] - detachEvent: Boolean, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handlePartialImpressionVisible().(detachEvent) value-parameter detachEvent: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - @IntRange(from = 0, to = 100) thresholdPercentage: Int -// ^^^^^^^^ reference androidx/annotation/IntRange#``(). -// ^^^^ reference androidx/annotation/IntRange#``().(from) -// ^^ reference androidx/annotation/IntRange#``().(to) -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handlePartialImpressionVisible().(thresholdPercentage) value-parameter thresholdPercentage: kotlin.Int -// ^^^ reference kotlin/Int# - ) { - val previousPartiallyVisible = partiallyVisible -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition local4 val previousPartiallyVisible: kotlin.Boolean -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#partiallyVisible. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getPartiallyVisible(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setPartiallyVisible(). - partiallyVisible = !detachEvent && isPartiallyVisible(thresholdPercentage) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#partiallyVisible. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getPartiallyVisible(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setPartiallyVisible(). -// ^ reference kotlin/Boolean#not(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handlePartialImpressionVisible().(detachEvent) -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#isPartiallyVisible(). -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handlePartialImpressionVisible().(thresholdPercentage) - if (partiallyVisible != previousPartiallyVisible) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#partiallyVisible. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getPartiallyVisible(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setPartiallyVisible(). -// ^^ reference kotlin/Boolean#equals(). -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference local4 - if (partiallyVisible) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#partiallyVisible. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getPartiallyVisible(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setPartiallyVisible(). - epoxyHolder.visibilityStateChanged(VisibilityState.PARTIAL_IMPRESSION_VISIBLE) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handlePartialImpressionVisible().(epoxyHolder) - } else { - epoxyHolder.visibilityStateChanged(VisibilityState.PARTIAL_IMPRESSION_INVISIBLE) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handlePartialImpressionVisible().(epoxyHolder) - } - } - } - - fun handleFullImpressionVisible(epoxyHolder: EpoxyViewHolder, detachEvent: Boolean) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handleFullImpressionVisible(). public final fun handleFullImpressionVisible(epoxyHolder: [ERROR : EpoxyViewHolder], detachEvent: kotlin.Boolean) -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handleFullImpressionVisible().(epoxyHolder) value-parameter epoxyHolder: [ERROR : EpoxyViewHolder] -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handleFullImpressionVisible().(detachEvent) value-parameter detachEvent: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - val previousFullyVisible = fullyVisible -// ^^^^^^^^^^^^^^^^^^^^ definition local5 val previousFullyVisible: kotlin.Boolean -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#fullyVisible. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getFullyVisible(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setFullyVisible(). - fullyVisible = !detachEvent && isFullyVisible() -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#fullyVisible. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getFullyVisible(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setFullyVisible(). -// ^ reference kotlin/Boolean#not(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handleFullImpressionVisible().(detachEvent) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#isFullyVisible(). - if (fullyVisible != previousFullyVisible) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#fullyVisible. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getFullyVisible(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setFullyVisible(). -// ^^ reference kotlin/Boolean#equals(). -// ^^^^^^^^^^^^^^^^^^^^ reference local5 - if (fullyVisible) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#fullyVisible. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getFullyVisible(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setFullyVisible(). - epoxyHolder.visibilityStateChanged(VisibilityState.FULL_IMPRESSION_VISIBLE) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handleFullImpressionVisible().(epoxyHolder) - } - } - } - - fun handleChanged(epoxyHolder: EpoxyViewHolder, visibilityChangedEnabled: Boolean): Boolean { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handleChanged(). public final fun handleChanged(epoxyHolder: [ERROR : EpoxyViewHolder], visibilityChangedEnabled: kotlin.Boolean): kotlin.Boolean -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handleChanged().(epoxyHolder) value-parameter epoxyHolder: [ERROR : EpoxyViewHolder] -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#handleChanged().(visibilityChangedEnabled) value-parameter visibilityChangedEnabled: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# -// ^^^^^^^ reference kotlin/Boolean# - var changed = false -// ^^^^^^^ definition local6 var changed: kotlin.Boolean - if (visibleHeight != lastVisibleHeightNotified || visibleWidth != lastVisibleWidthNotified || viewVisibility != lastVisibilityNotified) { -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleHeight. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleHeight(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleHeight(). -// ^^ reference kotlin/Int#equals(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#lastVisibleHeightNotified. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getLastVisibleHeightNotified(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setLastVisibleHeightNotified(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleWidth. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleWidth(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleWidth(). -// ^^ reference kotlin/Int#equals(). -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#lastVisibleWidthNotified. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getLastVisibleWidthNotified(). -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setLastVisibleWidthNotified(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#viewVisibility. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getViewVisibility(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setViewVisibility(). -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#lastVisibilityNotified. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getLastVisibilityNotified(). -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setLastVisibilityNotified(). - if (visibilityChangedEnabled) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handleChanged().(visibilityChangedEnabled) - if (viewVisibility == View.GONE) { -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#viewVisibility. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getViewVisibility(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setViewVisibility(). - epoxyHolder.visibilityChanged(0f, 0f, 0, 0) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handleChanged().(epoxyHolder) - } else { - epoxyHolder.visibilityChanged( -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#handleChanged().(epoxyHolder) - 100f / height * visibleHeight, -// ^ reference kotlin/Float#div(+3). -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#height. -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getHeight(). -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setHeight(). -// ^ reference kotlin/Float#times(+3). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleHeight. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleHeight(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleHeight(). - 100f / width * visibleWidth, -// ^ reference kotlin/Float#div(+3). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#width. -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getWidth(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setWidth(). -// ^ reference kotlin/Float#times(+3). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleWidth. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleWidth(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleWidth(). - visibleHeight, visibleWidth -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleHeight. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleHeight(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleHeight(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleWidth. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleWidth(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleWidth(). - ) - } - } - lastVisibleHeightNotified = visibleHeight -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#lastVisibleHeightNotified. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getLastVisibleHeightNotified(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setLastVisibleHeightNotified(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleHeight. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleHeight(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleHeight(). - lastVisibleWidthNotified = visibleWidth -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#lastVisibleWidthNotified. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getLastVisibleWidthNotified(). -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setLastVisibleWidthNotified(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleWidth. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleWidth(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleWidth(). - lastVisibilityNotified = viewVisibility -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#lastVisibilityNotified. -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getLastVisibilityNotified(). -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setLastVisibilityNotified(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#viewVisibility. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getViewVisibility(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setViewVisibility(). - changed = true -// ^^^^^^^ reference local6 - } - return changed -// ^^^^^^^ reference local6 - } - - private fun isVisible(): Boolean { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#isVisible(). private final fun isVisible(): kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - return viewVisibility == View.VISIBLE && visibleHeight > 0 && visibleWidth > 0 -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#viewVisibility. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getViewVisibility(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setViewVisibility(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleHeight. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleHeight(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleHeight(). -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleWidth. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleWidth(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleWidth(). -// ^ reference kotlin/Int#compareTo(+3). - } - - private fun isInFocusVisible(): Boolean { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#isInFocusVisible(). private final fun isInFocusVisible(): kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - val halfViewportArea = viewportHeight * viewportWidth / 2 -// ^^^^^^^^^^^^^^^^ definition local7 val halfViewportArea: kotlin.Int -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#viewportHeight. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getViewportHeight(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setViewportHeight(). -// ^ reference kotlin/Int#times(+3). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#viewportWidth. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getViewportWidth(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setViewportWidth(). -// ^ reference kotlin/Int#div(+3). - val totalArea = height * width -// ^^^^^^^^^ definition local8 val totalArea: kotlin.Int -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#height. -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getHeight(). -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setHeight(). -// ^ reference kotlin/Int#times(+3). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#width. -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getWidth(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setWidth(). - val visibleArea = visibleHeight * visibleWidth -// ^^^^^^^^^^^ definition local9 val visibleArea: kotlin.Int -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleHeight. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleHeight(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleHeight(). -// ^ reference kotlin/Int#times(+3). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleWidth. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleWidth(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleWidth(). - // The model has entered the focused range either if it is larger than half of the viewport - // and it occupies at least half of the viewport or if it is smaller than half of the viewport - // and it is fully visible. - return viewVisibility == View.VISIBLE && -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#viewVisibility. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getViewVisibility(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setViewVisibility(). - if (totalArea >= halfViewportArea) visibleArea >= halfViewportArea else totalArea == visibleArea -// ^^^^^^^^^ reference local8 -// ^^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^^^^^^ reference local7 -// ^^^^^^^^^^^ reference local9 -// ^^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^^^^^^ reference local7 -// ^^^^^^^^^ reference local8 -// ^^ reference kotlin/Int#equals(). -// ^^^^^^^^^^^ reference local9 - } - - private fun isPartiallyVisible( -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#isPartiallyVisible(). private final fun isPartiallyVisible(thresholdPercentage: kotlin.Int): kotlin.Boolean - @IntRange( -// ^^^^^^^^ reference androidx/annotation/IntRange#``(). - from = 0, -// ^^^^ reference androidx/annotation/IntRange#``().(from) - to = 100 -// ^^ reference androidx/annotation/IntRange#``().(to) - ) thresholdPercentage: Int -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#isPartiallyVisible().(thresholdPercentage) value-parameter thresholdPercentage: kotlin.Int -// ^^^ reference kotlin/Int# - ): Boolean { -// ^^^^^^^ reference kotlin/Boolean# - // special case 0%: trigger as soon as some pixels are one the screen - if (thresholdPercentage == 0) return isVisible() -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#isPartiallyVisible().(thresholdPercentage) -// ^^ reference kotlin/Int#equals(). -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#isVisible(). - val totalArea = height * width -// ^^^^^^^^^ definition local10 val totalArea: kotlin.Int -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#height. -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getHeight(). -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setHeight(). -// ^ reference kotlin/Int#times(+3). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#width. -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getWidth(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setWidth(). - val visibleArea = visibleHeight * visibleWidth -// ^^^^^^^^^^^ definition local11 val visibleArea: kotlin.Int -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleHeight. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleHeight(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleHeight(). -// ^ reference kotlin/Int#times(+3). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleWidth. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleWidth(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleWidth(). - val visibleAreaPercentage = visibleArea / totalArea.toFloat() * 100 -// ^^^^^^^^^^^^^^^^^^^^^ definition local12 val visibleAreaPercentage: kotlin.Float -// ^^^^^^^^^^^ reference local11 -// ^ reference kotlin/Int#div(+2). -// ^^^^^^^^^ reference local10 -// ^^^^^^^ reference kotlin/Int#toFloat(). -// ^ reference kotlin/Float#times(+3). - return viewVisibility == View.VISIBLE && visibleAreaPercentage >= thresholdPercentage -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#viewVisibility. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getViewVisibility(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setViewVisibility(). -// ^^^^^^^^^^^^^^^^^^^^^ reference local12 -// ^^ reference kotlin/Float#compareTo(+3). -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#isPartiallyVisible().(thresholdPercentage) - } - - private fun isFullyVisible(): Boolean { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#isFullyVisible(). private final fun isFullyVisible(): kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - return viewVisibility == View.VISIBLE && visibleHeight == height && visibleWidth == width -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#viewVisibility. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getViewVisibility(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setViewVisibility(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleHeight. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleHeight(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleHeight(). -// ^^ reference kotlin/Int#equals(). -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#height. -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getHeight(). -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setHeight(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#visibleWidth. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getVisibleWidth(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setVisibleWidth(). -// ^^ reference kotlin/Int#equals(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#width. -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getWidth(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#setWidth(). - } - - fun shiftBy(offsetPosition: Int) { -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#shiftBy(). public final fun shiftBy(offsetPosition: kotlin.Int) -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityItem#shiftBy().(offsetPosition) value-parameter offsetPosition: kotlin.Int -// ^^^ reference kotlin/Int# - adapterPosition += offsetPosition -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#adapterPosition. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getAdapterPosition(). - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyVisibilityTracker.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyVisibilityTracker.kt deleted file mode 100644 index 95d4faef2..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyVisibilityTracker.kt +++ /dev/null @@ -1,1139 +0,0 @@ -package com.airbnb.epoxy -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ - -import android.util.Log -import android.util.SparseArray -import android.view.View -import androidx.annotation.IdRes -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^ reference androidx/annotation/IdRes# -import androidx.annotation.IntRange -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/IntRange# -import androidx.recyclerview.widget.RecyclerView -// ^^^^^^^^ reference androidx/ -import com.airbnb.viewmodeladapter.R -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -import java.util.ArrayList -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^ reference java/util/ArrayList# -import java.util.HashMap -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^ reference java/util/HashMap# - -/** - * A simple way to track visibility events on [com.airbnb.epoxy.EpoxyModel]. - * - * [EpoxyVisibilityTracker] works with any [androidx.recyclerview.widget.RecyclerView] - * backed by an Epoxy controller. Once attached the events will be forwarded to the Epoxy model (or - * to the Epoxy view when using annotations). - * - * Note that support for visibility events on an [EpoxyModelGroup] is somewhat limited. Only model - * additions will receive visibility events. Models that are removed from the group will not receive - * events (e.g. [VisibilityState.INVISIBLE]) because the model group does not keep a reference, - * nor does it get notified of model removals. - * - * @see OnVisibilityChanged - * - * @see OnVisibilityStateChanged - * - * @see OnModelVisibilityChangedListener - * - * @see OnModelVisibilityStateChangedListener - */ -class EpoxyVisibilityTracker { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker# public final class EpoxyVisibilityTracker -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#``(). public constructor EpoxyVisibilityTracker() - - /** - * Used to listen to [RecyclerView.ItemAnimator] ending animations. - */ - private val itemAnimatorFinishedListener = -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#itemAnimatorFinishedListener. private final val itemAnimatorFinishedListener: [ERROR : ] -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#getItemAnimatorFinishedListener(). private final val itemAnimatorFinishedListener: [ERROR : ] - RecyclerView.ItemAnimator.ItemAnimatorFinishedListener { - processChangeEvent( -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEvent(). - "ItemAnimatorFinishedListener.onAnimationsFinished", - /* don't check item animator to prevent recursion */ false - ) - } - - /** Maintain visibility item indexed by view id (identity hashcode) */ - private val visibilityIdToItemMap = SparseArray() -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#visibilityIdToItemMap. private final val visibilityIdToItemMap: [ERROR : Type for SparseArray()] -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibilityIdToItemMap(). private final val visibilityIdToItemMap: [ERROR : Type for SparseArray()] -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem# - private val visibilityIdToItems: MutableList = ArrayList() -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#visibilityIdToItems. private final val visibilityIdToItems: kotlin.collections.MutableList -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibilityIdToItems(). private final val visibilityIdToItems: kotlin.collections.MutableList -// ^^^^^^^^^^^ reference kotlin/collections/MutableList# -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem# -// ^^^^^^^^^ reference java/util/ArrayList#``(+1). - - /** listener used to process scroll, layout and attach events */ - private val listener = Listener() -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#listener. private final val listener: com.airbnb.epoxy.EpoxyVisibilityTracker.Listener -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#getListener(). private final val listener: com.airbnb.epoxy.EpoxyVisibilityTracker.Listener -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#``(). - - /** listener used to process data events */ - private val observer = DataObserver() -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#observer. private final val observer: com.airbnb.epoxy.EpoxyVisibilityTracker.DataObserver -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#getObserver(). private final val observer: com.airbnb.epoxy.EpoxyVisibilityTracker.DataObserver -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#``(). - - private var attachedRecyclerView: RecyclerView? = null -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#attachedRecyclerView. private final var attachedRecyclerView: [ERROR : RecyclerView]? -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#getAttachedRecyclerView(). private final var attachedRecyclerView: [ERROR : RecyclerView]? -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#setAttachedRecyclerView(). private final var attachedRecyclerView: [ERROR : RecyclerView]? - - private var lastAdapterSeen: RecyclerView.Adapter<*>? = null -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#lastAdapterSeen. private final var lastAdapterSeen: [ERROR : RecyclerView.Adapter<*>]? -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#getLastAdapterSeen(). private final var lastAdapterSeen: [ERROR : RecyclerView.Adapter<*>]? -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#setLastAdapterSeen(). private final var lastAdapterSeen: [ERROR : RecyclerView.Adapter<*>]? - - /** All nested visibility trackers */ - private val nestedTrackers: MutableMap = HashMap() -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#nestedTrackers. private final val nestedTrackers: kotlin.collections.MutableMap<[ERROR : RecyclerView], com.airbnb.epoxy.EpoxyVisibilityTracker> -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#getNestedTrackers(). private final val nestedTrackers: kotlin.collections.MutableMap<[ERROR : RecyclerView], com.airbnb.epoxy.EpoxyVisibilityTracker> -// ^^^^^^^^^^ reference kotlin/collections/MutableMap# -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker# -// ^^^^^^^ reference java/util/HashMap#``(+2). - - /** This flag is for optimizing the process on detach. If detach is from data changed then it - * need to re-process all views, else no need (ex: scroll). */ - private var visibleDataChanged = false -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#visibleDataChanged. private final var visibleDataChanged: kotlin.Boolean -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibleDataChanged(). private final var visibleDataChanged: kotlin.Boolean -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#setVisibleDataChanged(). private final var visibleDataChanged: kotlin.Boolean - - /** - * Enable or disable visibility changed event. Default is `true`, disable it if you don't need - * (triggered by every pixel scrolled). - * - * @see OnVisibilityChanged - * - * @see OnModelVisibilityChangedListener - */ - var onChangedEnabled = true -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#onChangedEnabled. public final var onChangedEnabled: kotlin.Boolean -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#getOnChangedEnabled(). public final var onChangedEnabled: kotlin.Boolean -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#setOnChangedEnabled(). public final var onChangedEnabled: kotlin.Boolean - - /** - * Set the threshold of percentage visible area to identify the partial impression view state. - * - * @param thresholdPercentage Percentage of visible area of an element in the range [0..100]. - * Defaults to `null`, which disables - * [VisibilityState.PARTIAL_IMPRESSION_VISIBLE] and - * [VisibilityState.PARTIAL_IMPRESSION_INVISIBLE] events. - */ - @IntRange(from = 0, to = 100) -// ^^^^^^^^ reference androidx/annotation/IntRange#``(). -// ^^^^ reference androidx/annotation/IntRange#``().(from) -// ^^ reference androidx/annotation/IntRange#``().(to) - var partialImpressionThresholdPercentage: Int? = null -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#partialImpressionThresholdPercentage. public final var partialImpressionThresholdPercentage: kotlin.Int? -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#getPartialImpressionThresholdPercentage(). public final var partialImpressionThresholdPercentage: kotlin.Int? -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#setPartialImpressionThresholdPercentage(). public final var partialImpressionThresholdPercentage: kotlin.Int? -// ^^^ reference kotlin/Int# - - /** - * Attach the tracker. - * - * @param recyclerView The recyclerview that the EpoxyController has its adapter added to. - */ - fun attach(recyclerView: RecyclerView) { -// ^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#attach(). public final fun attach(recyclerView: [ERROR : RecyclerView]) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#attach().(recyclerView) value-parameter recyclerView: [ERROR : RecyclerView] - attachedRecyclerView = recyclerView -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attachedRecyclerView. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getAttachedRecyclerView(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setAttachedRecyclerView(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attach().(recyclerView) - recyclerView.addOnScrollListener(listener) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attach().(recyclerView) -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#listener. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getListener(). - recyclerView.addOnLayoutChangeListener(listener) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attach().(recyclerView) -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#listener. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getListener(). - recyclerView.addOnChildAttachStateChangeListener(listener) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attach().(recyclerView) -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#listener. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getListener(). - setTracker(recyclerView, this) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#setTracker(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attach().(recyclerView) -// ^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker# - } - - /** - * Detach the tracker - * - * @param recyclerView The recycler view that the EpoxyController has its adapter added to. - */ - fun detach(recyclerView: RecyclerView) { -// ^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#detach(). public final fun detach(recyclerView: [ERROR : RecyclerView]) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#detach().(recyclerView) value-parameter recyclerView: [ERROR : RecyclerView] - recyclerView.removeOnScrollListener(listener) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#detach().(recyclerView) -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#listener. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getListener(). - recyclerView.removeOnLayoutChangeListener(listener) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#detach().(recyclerView) -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#listener. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getListener(). - recyclerView.removeOnChildAttachStateChangeListener(listener) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#detach().(recyclerView) -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#listener. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getListener(). - setTracker(recyclerView, null) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#setTracker(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#detach().(recyclerView) - attachedRecyclerView = null -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attachedRecyclerView. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getAttachedRecyclerView(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setAttachedRecyclerView(). - } - - /** - * The tracker is storing visibility states internally and is using if to send events, only the - * difference is sent. Use this method to clear the states and thus regenerate the visibility - * events. This may be useful when you change the adapter on the [RecyclerView]. - */ - fun clearVisibilityStates() { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#clearVisibilityStates(). public final fun clearVisibilityStates() - // Clear our visibility items - visibilityIdToItemMap.clear() -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibilityIdToItemMap. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibilityIdToItemMap(). - visibilityIdToItems.clear() -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibilityIdToItems. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibilityIdToItems(). -// ^^^^^ reference kotlin/collections/MutableList#clear(). - } - - /** - * Calling this method will make the visibility tracking check and trigger events if necessary. It - * is particularly useful when the visibility of an Epoxy model is changed outside of an Epoxy - * RecyclerView. - * - * An example is when you nest an horizontal Epoxy backed RecyclerView in a non Epoxy vertical - * RecyclerView. When the vertical RecyclerView scroll you want to notify the visibility tracker - * attached on the horizontal RecyclerView. - */ - fun requestVisibilityCheck() { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#requestVisibilityCheck(). public final fun requestVisibilityCheck() - processChangeEvent("requestVisibilityCheck") -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEvent(). - } - - /** - * Process a change event. - * @param debug: string for debug usually the source of the call - * @param checkItemAnimator: true if it need to check if ItemAnimator is running - */ - private fun processChangeEvent(debug: String, checkItemAnimator: Boolean = true) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEvent(). private final fun processChangeEvent(debug: kotlin.String, checkItemAnimator: kotlin.Boolean = ...) -// ^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEvent().(debug) value-parameter debug: kotlin.String -// ^^^^^^ reference kotlin/String# -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEvent().(checkItemAnimator) value-parameter checkItemAnimator: kotlin.Boolean = ... -// ^^^^^^^ reference kotlin/Boolean# - - // Only if attached - val recyclerView = attachedRecyclerView ?: return -// ^^^^^^^^^^^^ definition local0 val recyclerView: kotlin.Nothing -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attachedRecyclerView. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getAttachedRecyclerView(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setAttachedRecyclerView(). - - val itemAnimator = recyclerView.itemAnimator -// ^^^^^^^^^^^^ definition local1 val itemAnimator: [ERROR : Type for recyclerView.itemAnimator] -// ^^^^^^^^^^^^ reference local0 - if (checkItemAnimator && itemAnimator != null) { -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEvent().(checkItemAnimator) -// ^^^^^^^^^^^^ reference local1 - // `itemAnimatorFinishedListener.onAnimationsFinished` will process visibility check - // - If the animations are running `onAnimationsFinished` will be invoked on animations end. - // - If the animations are not running `onAnimationsFinished` will be invoked right away. - if (itemAnimator.isRunning(itemAnimatorFinishedListener)) { -// ^^^^^^^^^^^^ reference local1 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#itemAnimatorFinishedListener. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getItemAnimatorFinishedListener(). - // If running process visibility now as `onAnimationsFinished` was not yet called - processChangeEventWithDetachedView(null, debug) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEventWithDetachedView(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEvent().(debug) - } - } else { - processChangeEventWithDetachedView(null, debug) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEventWithDetachedView(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEvent().(debug) - } - } - - private fun processChangeEventWithDetachedView(detachedView: View?, debug: String) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEventWithDetachedView(). private final fun processChangeEventWithDetachedView(detachedView: [ERROR : View]?, debug: kotlin.String) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEventWithDetachedView().(detachedView) value-parameter detachedView: [ERROR : View]? -// ^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEventWithDetachedView().(debug) value-parameter debug: kotlin.String -// ^^^^^^ reference kotlin/String# - - // Only if attached - val recyclerView = attachedRecyclerView ?: return -// ^^^^^^^^^^^^ definition local2 val recyclerView: kotlin.Nothing -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attachedRecyclerView. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getAttachedRecyclerView(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setAttachedRecyclerView(). - - // On every every events lookup for a new adapter - processNewAdapterIfNecessary() -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processNewAdapterIfNecessary(). - - // Process the detached child if any - detachedView?.let { processChild(it, true, debug) } -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEventWithDetachedView().(detachedView) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEventWithDetachedView().(debug) - - // Process all attached children - for (i in 0 until recyclerView.childCount) { -// ^ definition local3 val i: kotlin.Int -// ^^^^^ reference kotlin/ranges/RangesKt#until(+6). -// ^^^^^^^^^^^^ reference local2 - val child = recyclerView.getChildAt(i) -// ^^^^^ definition local4 val child: [ERROR : Type for recyclerView.getChildAt(i)] -// ^^^^^^^^^^^^ reference local2 -// ^ reference local3 - if (child != null && child !== detachedView) { -// ^^^^^ reference local4 -// ^^^^^ reference local4 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEventWithDetachedView().(detachedView) - // Is some case the detached child is still in the recycler view. Don't process it as it - // was already processed. - processChild(child, false, debug) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(). -// ^^^^^ reference local4 -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEventWithDetachedView().(debug) - } - } - } - - /** - * If there is a new adapter on the attached RecyclerView it will register the data observer and - * clear the current visibility states - */ - private fun processNewAdapterIfNecessary() { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processNewAdapterIfNecessary(). private final fun processNewAdapterIfNecessary() - attachedRecyclerView?.adapter?.let { adapter -> -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attachedRecyclerView. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getAttachedRecyclerView(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setAttachedRecyclerView(). -// ^^^^^^^ definition local5 value-parameter adapter: [ERROR : ] - if (lastAdapterSeen != adapter) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#lastAdapterSeen. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getLastAdapterSeen(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setLastAdapterSeen(). -// ^^^^^^^ reference local5 - // Unregister the old adapter - lastAdapterSeen?.unregisterAdapterDataObserver(observer) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#lastAdapterSeen. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getLastAdapterSeen(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setLastAdapterSeen(). -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#observer. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getObserver(). - // Register the new adapter - adapter.registerAdapterDataObserver(observer) -// ^^^^^^^ reference local5 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#observer. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getObserver(). - lastAdapterSeen = adapter -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#lastAdapterSeen. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getLastAdapterSeen(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setLastAdapterSeen(). -// ^^^^^^^ reference local5 - } - } - } - - /** - * Don't call this method directly, it is called from - * [EpoxyVisibilityTracker.processVisibilityEvents] - * - * @param child the view to process for visibility event - * @param detachEvent true if the child was just detached - * @param eventOriginForDebug a debug strings used for logs - */ - private fun processChild(child: View, detachEvent: Boolean, eventOriginForDebug: String) { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(). private final fun processChild(child: [ERROR : View], detachEvent: kotlin.Boolean, eventOriginForDebug: kotlin.String) -// ^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChild().(child) value-parameter child: [ERROR : View] -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChild().(detachEvent) value-parameter detachEvent: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChild().(eventOriginForDebug) value-parameter eventOriginForDebug: kotlin.String -// ^^^^^^ reference kotlin/String# - - // Only if attached - val recyclerView = attachedRecyclerView ?: return -// ^^^^^^^^^^^^ definition local6 val recyclerView: kotlin.Nothing -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attachedRecyclerView. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getAttachedRecyclerView(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setAttachedRecyclerView(). - - // Preemptive check for child's parent validity to prevent `IllegalArgumentException` in - // `getChildViewHolder`. - val isParentValid = child.parent == null || child.parent === recyclerView -// ^^^^^^^^^^^^^ definition local7 val isParentValid: kotlin.Boolean -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild().(child) -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild().(child) -// ^^^^^^^^^^^^ reference local6 - val viewHolder = if (isParentValid) recyclerView.getChildViewHolder(child) else null -// ^^^^^^^^^^ definition local8 val viewHolder: kotlin.Nothing? -// ^^^^^^^^^^^^^ reference local7 -// ^^^^^^^^^^^^ reference local6 -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild().(child) - if (viewHolder is EpoxyViewHolder) { -// ^^^^^^^^^^ reference local8 - val epoxyHolder = viewHolder.holder -// ^^^^^^^^^^^ definition local9 val epoxyHolder: [ERROR : Type for viewHolder.holder] -// ^^^^^^^^^^ reference local8 - processChild(recyclerView, child, detachEvent, eventOriginForDebug, viewHolder) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(+1). -// ^^^^^^^^^^^^ reference local6 -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild().(child) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild().(detachEvent) -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild().(eventOriginForDebug) -// ^^^^^^^^^^ reference local8 - if (epoxyHolder is ModelGroupHolder) { -// ^^^^^^^^^^^ reference local9 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder# - processModelGroupChildren(recyclerView, epoxyHolder, detachEvent, eventOriginForDebug) -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processModelGroupChildren(). -// ^^^^^^^^^^^^ reference local6 -// ^^^^^^^^^^^ reference local9 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild().(detachEvent) -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild().(eventOriginForDebug) - } - } - } - - /** - * Loop through the children of the model group and process visibility events on each one in - * relation to the model group's layout. This will attach or detach trackers to any nested - * [RecyclerView]s. - * - * @param epoxyHolder the [ModelGroupHolder] with children to process - * @param detachEvent true if the child was just detached - * @param eventOriginForDebug a debug strings used for logs - */ - private fun processModelGroupChildren( -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processModelGroupChildren(). private final fun processModelGroupChildren(recyclerView: [ERROR : RecyclerView], epoxyHolder: com.airbnb.epoxy.ModelGroupHolder, detachEvent: kotlin.Boolean, eventOriginForDebug: kotlin.String) - recyclerView: RecyclerView, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processModelGroupChildren().(recyclerView) value-parameter recyclerView: [ERROR : RecyclerView] - epoxyHolder: ModelGroupHolder, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processModelGroupChildren().(epoxyHolder) value-parameter epoxyHolder: com.airbnb.epoxy.ModelGroupHolder -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder# - detachEvent: Boolean, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processModelGroupChildren().(detachEvent) value-parameter detachEvent: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - eventOriginForDebug: String -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processModelGroupChildren().(eventOriginForDebug) value-parameter eventOriginForDebug: kotlin.String -// ^^^^^^ reference kotlin/String# - ) { - // Iterate through models in the group and process each of them instead of the group - for (groupChildHolder in epoxyHolder.viewHolders) { -// ^^^^^^^^^^^^^^^^ definition local10 val groupChildHolder: [ERROR : ] -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processModelGroupChildren().(epoxyHolder) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#viewHolders. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getViewHolders(). - // Since the group is likely using a ViewGroup other than a RecyclerView, handle the - // potential of a nested RecyclerView. This cannot be done through the normal flow - // without recursively searching through the view children. - if (groupChildHolder.itemView is RecyclerView) { -// ^^^^^^^^^^^^^^^^ reference local10 - if (detachEvent) { -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processModelGroupChildren().(detachEvent) - processChildRecyclerViewDetached(groupChildHolder.itemView) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChildRecyclerViewDetached(). -// ^^^^^^^^^^^^^^^^ reference local10 - } else { - processChildRecyclerViewAttached(groupChildHolder.itemView) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChildRecyclerViewAttached(). -// ^^^^^^^^^^^^^^^^ reference local10 - } - } - processChild( -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(+1). - recyclerView, -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processModelGroupChildren().(recyclerView) - groupChildHolder.itemView, -// ^^^^^^^^^^^^^^^^ reference local10 - detachEvent, -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processModelGroupChildren().(detachEvent) - eventOriginForDebug, -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processModelGroupChildren().(eventOriginForDebug) - groupChildHolder -// ^^^^^^^^^^^^^^^^ reference local10 - ) - } - } - - /** - * Process visibility events for a view and propagate to a nested tracker if the view is a - * [RecyclerView]. - * - * @param child the view to process for visibility event - * @param detachEvent true if the child was just detached - * @param eventOriginForDebug a debug strings used for logs - * @param viewHolder the view holder for the child view - */ - private fun processChild( -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(+1). private final fun processChild(recyclerView: [ERROR : RecyclerView], child: [ERROR : View], detachEvent: kotlin.Boolean, eventOriginForDebug: kotlin.String, viewHolder: [ERROR : EpoxyViewHolder]) - recyclerView: RecyclerView, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(+1).(recyclerView) value-parameter recyclerView: [ERROR : RecyclerView] - child: View, -// ^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(+1).(child) value-parameter child: [ERROR : View] - detachEvent: Boolean, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(+1).(detachEvent) value-parameter detachEvent: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - eventOriginForDebug: String, -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(+1).(eventOriginForDebug) value-parameter eventOriginForDebug: kotlin.String -// ^^^^^^ reference kotlin/String# - viewHolder: EpoxyViewHolder -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(+1).(viewHolder) value-parameter viewHolder: [ERROR : EpoxyViewHolder] - ) { - val changed = processVisibilityEvents( -// ^^^^^^^ definition local11 val changed: kotlin.Boolean -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents(). - recyclerView, -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(+1).(recyclerView) - viewHolder, -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(+1).(viewHolder) - detachEvent, -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(+1).(detachEvent) - eventOriginForDebug -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(+1).(eventOriginForDebug) - ) - if (changed && child is RecyclerView) { -// ^^^^^^^ reference local11 -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(+1).(child) - nestedTrackers[child]?.processChangeEvent("parent") -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#nestedTrackers. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getNestedTrackers(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(+1).(child) -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEvent(). - } - } - - /** - * Call this methods every time something related to ui (scroll, layout, ...) or something related - * to data changed. - * - * @param recyclerView the recycler view - * @param epoxyHolder the [RecyclerView] - * @param detachEvent true if the event originated from a view detached from the - * recycler view - * @param eventOriginForDebug a debug strings used for logs - * @return true if changed - */ - private fun processVisibilityEvents( -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents(). private final fun processVisibilityEvents(recyclerView: [ERROR : RecyclerView], epoxyHolder: [ERROR : EpoxyViewHolder], detachEvent: kotlin.Boolean, eventOriginForDebug: kotlin.String): kotlin.Boolean - recyclerView: RecyclerView, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(recyclerView) value-parameter recyclerView: [ERROR : RecyclerView] - epoxyHolder: EpoxyViewHolder, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(epoxyHolder) value-parameter epoxyHolder: [ERROR : EpoxyViewHolder] - detachEvent: Boolean, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(detachEvent) value-parameter detachEvent: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - eventOriginForDebug: String -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(eventOriginForDebug) value-parameter eventOriginForDebug: kotlin.String -// ^^^^^^ reference kotlin/String# - ): Boolean { -// ^^^^^^^ reference kotlin/Boolean# - if (DEBUG_LOG) { -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#DEBUG_LOG. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getDEBUG_LOG(). - Log.d( - TAG, -// ^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#TAG. -// ^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getTAG(). - "$eventOriginForDebug.processVisibilityEvents " + -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(eventOriginForDebug) -// ^ reference kotlin/String#plus(). - "${System.identityHashCode(epoxyHolder)}, " + -// ^^^^^^ reference java/lang/System# -// ^^^^^^^^^^^^^^^^ reference java/lang/System#identityHashCode(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(epoxyHolder) -// ^ reference kotlin/String#plus(). - "$detachEvent, ${epoxyHolder.adapterPosition}" -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(detachEvent) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(epoxyHolder) - ) - } - val itemView = epoxyHolder.itemView -// ^^^^^^^^ definition local12 val itemView: [ERROR : ] -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(epoxyHolder) - val id = System.identityHashCode(itemView) -// ^^ definition local13 val id: kotlin.Int -// ^^^^^^ reference java/lang/System# -// ^^^^^^^^^^^^^^^^ reference java/lang/System#identityHashCode(). -// ^^^^^^^^ reference local12 - var vi = visibilityIdToItemMap[id] -// ^^ definition local14 var vi: [ERROR : ] -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibilityIdToItemMap. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibilityIdToItemMap(). -// ^^ reference local13 - if (vi == null) { -// ^^ reference local14 - // New view discovered, assign an EpoxyVisibilityItem - vi = EpoxyVisibilityItem(epoxyHolder.adapterPosition) -// ^^ reference local14 -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#``(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(epoxyHolder) - visibilityIdToItemMap.put(id, vi) -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibilityIdToItemMap. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibilityIdToItemMap(). -// ^^ reference local13 -// ^^ reference local14 - visibilityIdToItems.add(vi) -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibilityIdToItems. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibilityIdToItems(). -// ^^^ reference kotlin/collections/MutableList#add(). -// ^^ reference local14 - } else if (epoxyHolder.adapterPosition != RecyclerView.NO_POSITION && -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(epoxyHolder) - vi.adapterPosition != epoxyHolder.adapterPosition -// ^^ reference local14 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(epoxyHolder) - ) { - // EpoxyVisibilityItem being re-used for a different adapter position - vi.reset(epoxyHolder.adapterPosition) -// ^^ reference local14 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(epoxyHolder) - } - var changed = false -// ^^^^^^^ definition local15 var changed: kotlin.Boolean - if (vi.update(itemView, recyclerView, detachEvent)) { -// ^^ reference local14 -// ^^^^^^^^ reference local12 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(recyclerView) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(detachEvent) - // View is measured, process events - vi.handleVisible(epoxyHolder, detachEvent) -// ^^ reference local14 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(epoxyHolder) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(detachEvent) - partialImpressionThresholdPercentage?.let { percentage -> -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#partialImpressionThresholdPercentage. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getPartialImpressionThresholdPercentage(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setPartialImpressionThresholdPercentage(). -// ^^^ reference kotlin/StandardKt#let(). -// ^^^^^^^^^^ definition local16 value-parameter percentage: kotlin.Int - vi.handlePartialImpressionVisible( -// ^^ reference local14 - epoxyHolder, detachEvent, -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(epoxyHolder) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(detachEvent) - percentage -// ^^^^^^^^^^ reference local16 - ) - } - vi.handleFocus(epoxyHolder, detachEvent) -// ^^ reference local14 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(epoxyHolder) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(detachEvent) - vi.handleFullImpressionVisible(epoxyHolder, detachEvent) -// ^^ reference local14 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(epoxyHolder) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(detachEvent) - changed = vi.handleChanged(epoxyHolder, onChangedEnabled) -// ^^^^^^^ reference local15 -// ^^ reference local14 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processVisibilityEvents().(epoxyHolder) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#onChangedEnabled. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getOnChangedEnabled(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setOnChangedEnabled(). - } - return changed -// ^^^^^^^ reference local15 - } - - private fun processChildRecyclerViewAttached(childRecyclerView: RecyclerView) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChildRecyclerViewAttached(). private final fun processChildRecyclerViewAttached(childRecyclerView: [ERROR : RecyclerView]) -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChildRecyclerViewAttached().(childRecyclerView) value-parameter childRecyclerView: [ERROR : RecyclerView] - // Register itself in the EpoxyVisibilityTracker. This will take care of nested list - // tracking (ex: carousel) - val tracker = getTracker(childRecyclerView) ?: EpoxyVisibilityTracker().let { nested -> -// ^^^^^^^ definition local17 val tracker: com.airbnb.epoxy.EpoxyVisibilityTracker -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getTracker(). -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChildRecyclerViewAttached().(childRecyclerView) -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#``(). -// ^^^ reference kotlin/StandardKt#let(). -// ^^^^^^ definition local18 value-parameter nested: com.airbnb.epoxy.EpoxyVisibilityTracker - nested.partialImpressionThresholdPercentage = partialImpressionThresholdPercentage -// ^^^^^^ reference local18 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#partialImpressionThresholdPercentage. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getPartialImpressionThresholdPercentage(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setPartialImpressionThresholdPercentage(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#partialImpressionThresholdPercentage. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getPartialImpressionThresholdPercentage(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setPartialImpressionThresholdPercentage(). - nested.attach(childRecyclerView) -// ^^^^^^ reference local18 -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attach(). -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChildRecyclerViewAttached().(childRecyclerView) - nested -// ^^^^^^ reference local18 - } - nestedTrackers[childRecyclerView] = tracker -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#nestedTrackers. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getNestedTrackers(). -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChildRecyclerViewAttached().(childRecyclerView) -// ^^^^^^^ reference local17 - } - - private fun processChildRecyclerViewDetached(childRecyclerView: RecyclerView) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChildRecyclerViewDetached(). private final fun processChildRecyclerViewDetached(childRecyclerView: [ERROR : RecyclerView]) -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#processChildRecyclerViewDetached().(childRecyclerView) value-parameter childRecyclerView: [ERROR : RecyclerView] - nestedTrackers.remove(childRecyclerView) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#nestedTrackers. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getNestedTrackers(). -// ^^^^^^ reference kotlin/collections/MutableMap#remove(). -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChildRecyclerViewDetached().(childRecyclerView) - } - - /** - * Helper class that host the [androidx.recyclerview.widget.RecyclerView] listener - * implementations - */ - private inner class Listener : -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener# private final inner class Listener -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#``(). public constructor Listener() - RecyclerView.OnScrollListener(), - View.OnLayoutChangeListener, - RecyclerView.OnChildAttachStateChangeListener { - override fun onLayoutChange( -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onLayoutChange(). public open fun onLayoutChange(recyclerView: [ERROR : View], left: kotlin.Int, top: kotlin.Int, right: kotlin.Int, bottom: kotlin.Int, oldLeft: kotlin.Int, oldTop: kotlin.Int, oldRight: kotlin.Int, oldBottom: kotlin.Int) - recyclerView: View, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onLayoutChange().(recyclerView) value-parameter recyclerView: [ERROR : View] - left: Int, -// ^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onLayoutChange().(left) value-parameter left: kotlin.Int -// ^^^ reference kotlin/Int# - top: Int, -// ^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onLayoutChange().(top) value-parameter top: kotlin.Int -// ^^^ reference kotlin/Int# - right: Int, -// ^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onLayoutChange().(right) value-parameter right: kotlin.Int -// ^^^ reference kotlin/Int# - bottom: Int, -// ^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onLayoutChange().(bottom) value-parameter bottom: kotlin.Int -// ^^^ reference kotlin/Int# - oldLeft: Int, -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onLayoutChange().(oldLeft) value-parameter oldLeft: kotlin.Int -// ^^^ reference kotlin/Int# - oldTop: Int, -// ^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onLayoutChange().(oldTop) value-parameter oldTop: kotlin.Int -// ^^^ reference kotlin/Int# - oldRight: Int, -// ^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onLayoutChange().(oldRight) value-parameter oldRight: kotlin.Int -// ^^^ reference kotlin/Int# - oldBottom: Int -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onLayoutChange().(oldBottom) value-parameter oldBottom: kotlin.Int -// ^^^ reference kotlin/Int# - ) { - processChangeEvent("onLayoutChange") -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEvent(). - } - - override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onScrolled(). public open fun onScrolled(recyclerView: [ERROR : RecyclerView], dx: kotlin.Int, dy: kotlin.Int) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onScrolled().(recyclerView) value-parameter recyclerView: [ERROR : RecyclerView] -// ^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onScrolled().(dx) value-parameter dx: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onScrolled().(dy) value-parameter dy: kotlin.Int -// ^^^ reference kotlin/Int# - processChangeEvent("onScrolled") -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEvent(). - } - - override fun onChildViewAttachedToWindow(child: View) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onChildViewAttachedToWindow(). public open fun onChildViewAttachedToWindow(child: [ERROR : View]) -// ^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onChildViewAttachedToWindow().(child) value-parameter child: [ERROR : View] - if (child is RecyclerView) { -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onChildViewAttachedToWindow().(child) - processChildRecyclerViewAttached(child) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChildRecyclerViewAttached(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onChildViewAttachedToWindow().(child) - } - processChild(child, false, "onChildViewAttachedToWindow") -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onChildViewAttachedToWindow().(child) - } - - override fun onChildViewDetachedFromWindow(child: View) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onChildViewDetachedFromWindow(). public open fun onChildViewDetachedFromWindow(child: [ERROR : View]) -// ^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onChildViewDetachedFromWindow().(child) value-parameter child: [ERROR : View] - if (child is RecyclerView) { -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onChildViewDetachedFromWindow().(child) - processChildRecyclerViewDetached(child) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChildRecyclerViewDetached(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onChildViewDetachedFromWindow().(child) - } - if (visibleDataChanged) { -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibleDataChanged. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibleDataChanged(). -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setVisibleDataChanged(). - // On detach event caused by data set changed we need to re-process all children because - // the removal caused the others views to changes. - processChangeEventWithDetachedView(child, "onChildViewDetachedFromWindow") -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChangeEventWithDetachedView(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onChildViewDetachedFromWindow().(child) - visibleDataChanged = false -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibleDataChanged. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibleDataChanged(). -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setVisibleDataChanged(). - } else { - processChild(child, true, "onChildViewDetachedFromWindow") -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#processChild(). -// ^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Listener#onChildViewDetachedFromWindow().(child) - } - } - } - - /** - * The layout/scroll events are not enough to detect all sort of visibility changes. We also - * need to look at the data events from the adapter. - */ - internal inner class DataObserver : RecyclerView.AdapterDataObserver() { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver# internal final inner class DataObserver -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#``(). public constructor DataObserver() - /** - * Clear the current visibility statues - */ - override fun onChanged() { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onChanged(). public open fun onChanged() - if (notEpoxyManaged(attachedRecyclerView)) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#notEpoxyManaged(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attachedRecyclerView. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getAttachedRecyclerView(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setAttachedRecyclerView(). - return - } - if (DEBUG_LOG) { -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#DEBUG_LOG. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getDEBUG_LOG(). - Log.d(TAG, "onChanged()") -// ^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#TAG. -// ^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getTAG(). - } - visibilityIdToItemMap.clear() -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibilityIdToItemMap. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibilityIdToItemMap(). - visibilityIdToItems.clear() -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibilityIdToItems. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibilityIdToItems(). -// ^^^^^ reference kotlin/collections/MutableList#clear(). - visibleDataChanged = true -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibleDataChanged. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibleDataChanged(). -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setVisibleDataChanged(). - } - - /** - * For all items after the inserted range shift each [EpoxyVisibilityTracker] adapter - * position by inserted item count. - */ - override fun onItemRangeInserted(positionStart: Int, itemCount: Int) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeInserted(). public open fun onItemRangeInserted(positionStart: kotlin.Int, itemCount: kotlin.Int) -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeInserted().(positionStart) value-parameter positionStart: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeInserted().(itemCount) value-parameter itemCount: kotlin.Int -// ^^^ reference kotlin/Int# - if (notEpoxyManaged(attachedRecyclerView)) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#notEpoxyManaged(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attachedRecyclerView. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getAttachedRecyclerView(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setAttachedRecyclerView(). - return - } - if (DEBUG_LOG) { -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#DEBUG_LOG. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getDEBUG_LOG(). - Log.d(TAG, "onItemRangeInserted($positionStart, $itemCount)") -// ^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#TAG. -// ^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getTAG(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeInserted().(positionStart) -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeInserted().(itemCount) - } - for (item in visibilityIdToItems) { -// ^^^^ definition local19 val item: com.airbnb.epoxy.EpoxyVisibilityItem -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibilityIdToItems. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibilityIdToItems(). - if (item.adapterPosition >= positionStart) { -// ^^^^ reference local19 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#adapterPosition. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getAdapterPosition(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeInserted().(positionStart) - visibleDataChanged = true -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibleDataChanged. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibleDataChanged(). -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setVisibleDataChanged(). - item.shiftBy(itemCount) -// ^^^^ reference local19 -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#shiftBy(). -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeInserted().(itemCount) - } - } - } - - /** - * For all items after the removed range reverse-shift each [EpoxyVisibilityTracker] - * adapter position by removed item count - */ - override fun onItemRangeRemoved(positionStart: Int, itemCount: Int) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeRemoved(). public open fun onItemRangeRemoved(positionStart: kotlin.Int, itemCount: kotlin.Int) -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeRemoved().(positionStart) value-parameter positionStart: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeRemoved().(itemCount) value-parameter itemCount: kotlin.Int -// ^^^ reference kotlin/Int# - if (notEpoxyManaged(attachedRecyclerView)) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#notEpoxyManaged(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attachedRecyclerView. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getAttachedRecyclerView(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setAttachedRecyclerView(). - return - } - if (DEBUG_LOG) { -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#DEBUG_LOG. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getDEBUG_LOG(). - Log.d(TAG, "onItemRangeRemoved($positionStart, $itemCount)") -// ^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#TAG. -// ^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getTAG(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeRemoved().(positionStart) -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeRemoved().(itemCount) - } - for (item in visibilityIdToItems) { -// ^^^^ definition local20 val item: com.airbnb.epoxy.EpoxyVisibilityItem -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibilityIdToItems. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibilityIdToItems(). - if (item.adapterPosition >= positionStart) { -// ^^^^ reference local20 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#adapterPosition. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getAdapterPosition(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeRemoved().(positionStart) - visibleDataChanged = true -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibleDataChanged. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibleDataChanged(). -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setVisibleDataChanged(). - item.shiftBy(-itemCount) -// ^^^^ reference local20 -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#shiftBy(). -// ^ reference kotlin/Int#unaryMinus(). -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeRemoved().(itemCount) - } - } - } - - /** - * This is a bit more complex, for move we need to first swap the moved position then shift the - * items between the swap. To simplify we split any range passed to individual item moved. - * - * ps: anyway [androidx.recyclerview.widget.AdapterListUpdateCallback] - * does not seem to use range for moved items. - */ - override fun onItemRangeMoved(fromPosition: Int, toPosition: Int, itemCount: Int) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeMoved(). public open fun onItemRangeMoved(fromPosition: kotlin.Int, toPosition: kotlin.Int, itemCount: kotlin.Int) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeMoved().(fromPosition) value-parameter fromPosition: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeMoved().(toPosition) value-parameter toPosition: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeMoved().(itemCount) value-parameter itemCount: kotlin.Int -// ^^^ reference kotlin/Int# - if (notEpoxyManaged(attachedRecyclerView)) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#notEpoxyManaged(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attachedRecyclerView. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getAttachedRecyclerView(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setAttachedRecyclerView(). - return - } - for (i in 0 until itemCount) { -// ^ definition local21 val i: kotlin.Int -// ^^^^^ reference kotlin/ranges/RangesKt#until(+6). -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeMoved().(itemCount) - onItemMoved(fromPosition + i, toPosition + i) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeMoved().(fromPosition) -// ^ reference kotlin/Int#plus(+3). -// ^ reference local21 -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemRangeMoved().(toPosition) -// ^ reference kotlin/Int#plus(+3). -// ^ reference local21 - } - } - - private fun onItemMoved(fromPosition: Int, toPosition: Int) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved(). private final fun onItemMoved(fromPosition: kotlin.Int, toPosition: kotlin.Int) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(fromPosition) value-parameter fromPosition: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(toPosition) value-parameter toPosition: kotlin.Int -// ^^^ reference kotlin/Int# - if (notEpoxyManaged(attachedRecyclerView)) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#notEpoxyManaged(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#attachedRecyclerView. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getAttachedRecyclerView(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setAttachedRecyclerView(). - return - } - if (DEBUG_LOG) { -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#DEBUG_LOG. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getDEBUG_LOG(). - Log.d(TAG, "onItemRangeMoved($fromPosition, $fromPosition, 1)") -// ^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#TAG. -// ^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getTAG(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(fromPosition) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(fromPosition) - } - for (item in visibilityIdToItems) { -// ^^^^ definition local22 val item: com.airbnb.epoxy.EpoxyVisibilityItem -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibilityIdToItems. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibilityIdToItems(). - val position = item.adapterPosition -// ^^^^^^^^ definition local23 val position: [ERROR : ] -// ^^^^ reference local22 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#adapterPosition. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#getAdapterPosition(). - if (position == fromPosition) { -// ^^^^^^^^ reference local23 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(fromPosition) - // We found the item to be moved, just swap the position. - item.shiftBy(toPosition - fromPosition) -// ^^^^ reference local22 -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#shiftBy(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(toPosition) -// ^ reference kotlin/Int#minus(+3). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(fromPosition) - visibleDataChanged = true -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibleDataChanged. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibleDataChanged(). -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setVisibleDataChanged(). - } else if (fromPosition < toPosition) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(fromPosition) -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(toPosition) - // Item will be moved down in the list - if (position in (fromPosition + 1)..toPosition) { -// ^^^^^^^^ reference local23 -// ^^ reference kotlin/ranges/IntRange#contains(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(fromPosition) -// ^ reference kotlin/Int#plus(+3). -// ^^ reference kotlin/Int#rangeTo(+1). -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(toPosition) - // Item is between the moved from and to indexes, it should move up - item.shiftBy(-1) -// ^^^^ reference local22 -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#shiftBy(). -// ^ reference kotlin/Int#unaryMinus(). - visibleDataChanged = true -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibleDataChanged. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibleDataChanged(). -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setVisibleDataChanged(). - } - } else if (fromPosition > toPosition) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(fromPosition) -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(toPosition) - // Item will be moved up in the list - if (position in toPosition until fromPosition) { -// ^^^^^^^^ reference local23 -// ^^ reference kotlin/ranges/IntRange#contains(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(toPosition) -// ^^^^^ reference kotlin/ranges/RangesKt#until(+6). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#onItemMoved().(fromPosition) - // Item is between the moved to and from indexes, it should move down - item.shiftBy(1) -// ^^^^ reference local22 -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityItem#shiftBy(). - visibleDataChanged = true -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#visibleDataChanged. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#getVisibleDataChanged(). -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#setVisibleDataChanged(). - } - } - } - } - - /** - * @param recyclerView the recycler view - * @return true if managed by an [BaseEpoxyAdapter] - */ - private fun notEpoxyManaged(recyclerView: RecyclerView?): Boolean { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#notEpoxyManaged(). private final fun notEpoxyManaged(recyclerView: [ERROR : RecyclerView]?): kotlin.Boolean -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#notEpoxyManaged().(recyclerView) value-parameter recyclerView: [ERROR : RecyclerView]? -// ^^^^^^^ reference kotlin/Boolean# - return recyclerView == null || recyclerView.adapter !is BaseEpoxyAdapter -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#notEpoxyManaged().(recyclerView) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#DataObserver#notEpoxyManaged().(recyclerView) - } - } - - companion object { -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Companion# public companion object - private const val TAG = "EpoxyVisibilityTracker" -// ^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#TAG. private const final val TAG: kotlin.String -// ^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getTAG(). private const final val TAG: kotlin.String - - @IdRes -// ^^^^^ reference androidx/annotation/IdRes#``(). - private val TAG_ID = R.id.epoxy_visibility_tracker -// ^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#TAG_ID. private final val TAG_ID: [ERROR : ] -// ^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getTAG_ID(). private final val TAG_ID: [ERROR : ] - - /** - * @param recyclerView the view. - * @return the tracker for the given [RecyclerView]. Null if no tracker was attached. - */ - private fun getTracker(recyclerView: RecyclerView): EpoxyVisibilityTracker? { -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getTracker(). private final fun getTracker(recyclerView: [ERROR : RecyclerView]): com.airbnb.epoxy.EpoxyVisibilityTracker? -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getTracker().(recyclerView) value-parameter recyclerView: [ERROR : RecyclerView] -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker# - return recyclerView.getTag(TAG_ID) as EpoxyVisibilityTracker? -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getTracker().(recyclerView) -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#TAG_ID. -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getTAG_ID(). -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker# - } - - /** - * Store the tracker for the given [RecyclerView]. - * @param recyclerView the view - * @param tracker the tracker - */ - private fun setTracker( -// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#setTracker(). private final fun setTracker(recyclerView: [ERROR : RecyclerView], tracker: com.airbnb.epoxy.EpoxyVisibilityTracker?) - recyclerView: RecyclerView, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#setTracker().(recyclerView) value-parameter recyclerView: [ERROR : RecyclerView] - tracker: EpoxyVisibilityTracker? -// ^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#setTracker().(tracker) value-parameter tracker: com.airbnb.epoxy.EpoxyVisibilityTracker? -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker# - ) { - recyclerView.setTag(TAG_ID, tracker) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#setTracker().(recyclerView) -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#TAG_ID. -// ^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getTAG_ID(). -// ^^^^^^^ reference com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#setTracker().(tracker) - } - - // Not actionable at runtime. It is only useful for internal test-troubleshooting. - const val DEBUG_LOG = false -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#DEBUG_LOG. public const final val DEBUG_LOG: kotlin.Boolean -// ^^^^^^^^^ definition com/airbnb/epoxy/EpoxyVisibilityTracker#Companion#getDEBUG_LOG(). public const final val DEBUG_LOG: kotlin.Boolean - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/GeneratedModel.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/GeneratedModel.java deleted file mode 100644 index 5aa92e18a..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/GeneratedModel.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.airbnb.epoxy; - -/** Interface applied to generated models to allow the base adapter to interact with them. */ -public interface GeneratedModel { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/GeneratedModel# public interface GeneratedModel -// ^ definition com/airbnb/epoxy/GeneratedModel#[T] T - /** - * Called on the generated model immediately before the main model onBind method has been called. - * This let's the generated model handle binding setup of its own - *

- * The ViewHolder is needed to get the model's adapter position when clicked. - */ - void handlePreBind(EpoxyViewHolder holder, T objectToBind, int position); -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/GeneratedModel#handlePreBind(). public abstract void handlePreBind(EpoxyViewHolder holder, T objectToBind, int position) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local0 EpoxyViewHolder holder -// ^ reference com/airbnb/epoxy/GeneratedModel#[T] -// ^^^^^^^^^^^^ definition local1 T objectToBind -// ^^^^^^^^ definition local2 int position - /** - * Called on the generated model immediately after the main model onBind method has been called. - * This let's the generated model handle binding of its own and dispatch calls to its onBind - * listener. - *

- * We don't want to rely on the main onBind method to dispatch the onBind listener call because - * there are two onBind methods (one for payloads and one for no payloads), and one can call into - * the other. We don't want to dispatch two onBind listener calls in that case. - */ - void handlePostBind(T objectToBind, int position); -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/GeneratedModel#handlePostBind(). public abstract void handlePostBind(T objectToBind, int position) -// ^ reference com/airbnb/epoxy/GeneratedModel#[T] -// ^^^^^^^^^^^^ definition local3 T objectToBind -// ^^^^^^^^ definition local4 int position -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/GroupModel.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/GroupModel.kt deleted file mode 100644 index ae9412410..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/GroupModel.kt +++ /dev/null @@ -1,51 +0,0 @@ -package com.airbnb.epoxy -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ - -import androidx.annotation.LayoutRes -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# - -/** - * An [EpoxyModelGroup] usable in a DSL manner via the [group] extension. - *

- * Example: - * ``` - * group { - * id("photos") - * layout(R.layout.photo_grid) - * - * // add your models here, example: - * for (photo in photos) { - * imageView { - * id(photo.id) - * url(photo.url) - * } - * } - * } - * ``` - */ -@EpoxyModelClass -//^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModelClass#``(). -abstract class GroupModel : EpoxyModelGroup, ModelCollector { -// ^^^^^^^^^^ definition com/airbnb/epoxy/GroupModel# public abstract class GroupModel : com.airbnb.epoxy.ModelCollector -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelCollector# - constructor() : super() -// ^^^^^^^^^^^ definition com/airbnb/epoxy/GroupModel#``(). public constructor GroupModel() - constructor(@LayoutRes layoutRes: Int) : super(layoutRes) -// ^^^^^^^^^^^ definition com/airbnb/epoxy/GroupModel#``(+1). public constructor GroupModel(layoutRes: kotlin.Int) -// ^^^^^^^^^ reference androidx/annotation/LayoutRes#``(). -// ^^^^^^^^^ definition com/airbnb/epoxy/GroupModel#``(+1).(layoutRes) value-parameter layoutRes: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^^ reference com/airbnb/epoxy/GroupModel#``(+1).(layoutRes) - - override fun add(model: EpoxyModel<*>) { -// ^^^ definition com/airbnb/epoxy/GroupModel#add(). public open fun add(model: [ERROR : EpoxyModel<*>]) -// ^^^^^ definition com/airbnb/epoxy/GroupModel#add().(model) value-parameter model: [ERROR : EpoxyModel<*>] - super.addModel(model) -// ^^^^^ reference com/airbnb/epoxy/ModelCollector# -// ^^^^^ reference com/airbnb/epoxy/GroupModel#add().(model) - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/HandlerExecutor.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/HandlerExecutor.java deleted file mode 100644 index 204bb6eab..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/HandlerExecutor.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.airbnb.epoxy; - -import android.os.Handler; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^^ reference android/os/Handler# -import android.os.Looper; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^ reference android/os/Looper# - -import java.util.concurrent.Executor; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^ reference java/util/concurrent/ -// ^^^^^^^^ reference java/util/concurrent/Executor# - -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# - -/** - * An executor that does it's work via posting to a Handler. - *

- * A key feature of this is the runnable is executed synchronously if the current thread is the - * same as the handler's thread. - */ -class HandlerExecutor implements Executor { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/HandlerExecutor# class HandlerExecutor -// ^^^^^^^^ reference java/util/concurrent/Executor# - final Handler handler; -// ^^^^^^^ reference _root_/ -// ^^^^^^^ definition com/airbnb/epoxy/HandlerExecutor#handler. final unresolved_type handler - - HandlerExecutor(Handler handler) { -//^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/HandlerExecutor#``(). HandlerExecutor(unresolved_type handler) -// ^^^^^^^ reference _root_/ -// ^^^^^^^ definition local0 unresolved_type handler - this.handler = handler; -// ^^^^^^^ reference com/airbnb/epoxy/HandlerExecutor#handler. -// ^^^^^^^ reference local0 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void execute(@NonNull Runnable command) { -// ^^^^^^^ definition com/airbnb/epoxy/HandlerExecutor#execute(). @Override public void execute(Runnable command) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^ reference java/lang/Runnable# -// ^^^^^^^ definition local1 @NonNull Runnable command - // If we're already on the same thread then we can execute this synchronously - if (Looper.myLooper() == handler.getLooper()) { -// ^^^^^^ reference _root_/ -// ^^^^^^^^ reference myLooper# -// ^^^^^^^ reference com/airbnb/epoxy/HandlerExecutor#handler. -// ^^^^^^^^^ reference getLooper# - command.run(); -// ^^^^^^^ reference local1 -// ^^^ reference java/lang/Runnable#run(). - } else { - handler.post(command); -// ^^^^^^^ reference com/airbnb/epoxy/HandlerExecutor#handler. -// ^^^^ reference post# -// ^^^^^^^ reference local1 - } - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/HiddenEpoxyModel.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/HiddenEpoxyModel.java deleted file mode 100644 index b9d74ada9..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/HiddenEpoxyModel.java +++ /dev/null @@ -1,44 +0,0 @@ - -package com.airbnb.epoxy; - -import android.widget.Space; -// ^^^^^^^ reference android/ -// ^^^^^^ reference android/widget/ -// ^^^^^ reference android/widget/Space# - -import com.airbnb.viewmodeladapter.R; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^^^^^^^^^^^^ reference com/airbnb/viewmodeladapter/ -// ^ reference com/airbnb/viewmodeladapter/R# - -/** - * Used by the {@link EpoxyAdapter} as a placeholder for when {@link EpoxyModel#isShown()} is false. - * Using a zero height and width {@link Space} view, as well as 0 span size, to exclude itself from - * view. - */ -class HiddenEpoxyModel extends EpoxyModel { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/HiddenEpoxyModel# class HiddenEpoxyModel -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/HiddenEpoxyModel#``(). HiddenEpoxyModel() -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ reference _root_/ - @Override -// ^^^^^^^^ reference java/lang/Override# - public int getDefaultLayout() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/HiddenEpoxyModel#getDefaultLayout(). @Override public int getDefaultLayout() - return R.layout.view_holder_empty_view; -// ^ reference R/ -// ^^^^^^ reference R/layout# -// ^^^^^^^^^^^^^^^^^^^^^^ reference R/layout#view_holder_empty_view# - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int getSpanSize(int spanCount, int position, int itemCount) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/HiddenEpoxyModel#getSpanSize(). @Override public int getSpanSize(int spanCount, int position, int itemCount) -// ^^^^^^^^^ definition local0 int spanCount -// ^^^^^^^^ definition local1 int position -// ^^^^^^^^^ definition local2 int itemCount - return 0; - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/IdUtils.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/IdUtils.java deleted file mode 100644 index 07b9d2f12..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/IdUtils.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.airbnb.epoxy; - -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# - -/** - * Utilities for generating 64-bit long IDs from types such as {@link CharSequence}. - */ -public final class IdUtils { -// ^^^^^^^ definition com/airbnb/epoxy/IdUtils# public final class IdUtils - private IdUtils() { -// ^^^^^^^ definition com/airbnb/epoxy/IdUtils#``(). private IdUtils() - } - - /** - * Hash a long into 64 bits instead of the normal 32. This uses a xor shift implementation to - * attempt psuedo randomness so object ids have an even spread for less chance of collisions. - *

- * From http://stackoverflow.com/a/11554034 - *

- * http://www.javamex.com/tutorials/random_numbers/xorshift.shtml - */ - public static long hashLong64Bit(long value) { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/IdUtils#hashLong64Bit(). public static long hashLong64Bit(long value) -// ^^^^^ definition local0 long value - value ^= (value << 21); -// ^^^^^ reference local0 -// ^^^^^ reference local0 - value ^= (value >>> 35); -// ^^^^^ reference local0 -// ^^^^^ reference local0 - value ^= (value << 4); -// ^^^^^ reference local0 -// ^^^^^ reference local0 - return value; -// ^^^^^ reference local0 - } - - /** - * Hash a string into 64 bits instead of the normal 32. This allows us to better use strings as a - * model id with less chance of collisions. This uses the FNV-1a algorithm for a good mix of speed - * and distribution. - *

- * Performance comparisons found at http://stackoverflow.com/a/1660613 - *

- * Hash implementation from http://www.isthe.com/chongo/tech/comp/fnv/index.html#FNV-1a - */ - public static long hashString64Bit(@Nullable CharSequence str) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/IdUtils#hashString64Bit(). public static long hashString64Bit(CharSequence str) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^ definition local1 @Nullable CharSequence str - if (str == null) { -// ^^^ reference local1 - return 0; - } - - long result = 0xcbf29ce484222325L; -// ^^^^^^ definition local2 long result - final int len = str.length(); -// ^^^ definition local3 final int len -// ^^^ reference local1 -// ^^^^^^ reference java/lang/CharSequence#length(). - for (int i = 0; i < len; i++) { -// ^ definition local4 int i -// ^ reference local4 -// ^^^ reference local3 -// ^ reference local4 - result ^= str.charAt(i); -// ^^^^^^ reference local2 -// ^^^ reference local1 -// ^^^^^^ reference java/lang/CharSequence#charAt(). -// ^ reference local4 - result *= 0x100000001b3L; -// ^^^^^^ reference local2 - } - return result; -// ^^^^^^ reference local2 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/IllegalEpoxyUsage.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/IllegalEpoxyUsage.java deleted file mode 100644 index 07011276d..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/IllegalEpoxyUsage.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.airbnb.epoxy; - -public class IllegalEpoxyUsage extends RuntimeException { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/IllegalEpoxyUsage# public class IllegalEpoxyUsage -// ^^^^^^^^^^^^^^^^ reference java/lang/RuntimeException# - public IllegalEpoxyUsage(String message) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/IllegalEpoxyUsage#``(). public IllegalEpoxyUsage(String message) -// ^^^^^^ reference java/lang/String# -// ^^^^^^^ definition local0 String message - super(message); -// ^^^^^ reference java/lang/RuntimeException#``(+1). -// ^^^^^^^ reference local0 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ImmutableModelException.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/ImmutableModelException.java deleted file mode 100644 index bc2fe906a..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ImmutableModelException.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.airbnb.epoxy; - -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# - -/** - * Thrown if a model is changed after it is added to an {@link com.airbnb.epoxy.EpoxyController}. - */ -class ImmutableModelException extends RuntimeException { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ImmutableModelException# class ImmutableModelException -// ^^^^^^^^^^^^^^^^ reference java/lang/RuntimeException# - private static final String MODEL_CANNOT_BE_CHANGED_MESSAGE = -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ImmutableModelException#MODEL_CANNOT_BE_CHANGED_MESSAGE. private static final String MODEL_CANNOT_BE_CHANGED_MESSAGE - "Epoxy attribute fields on a model cannot be changed once the model is added to a " - + "controller. Check that these fields are not updated, or that the assigned objects " - + "are not mutated, outside of the buildModels method. The only exception is if " - + "the change is made inside an Interceptor callback. Consider using an interceptor" - + " if you need to change a model after it is added to the controller and before it" - + " is set on the adapter. If the model is already set on the adapter then you must" - + " call `requestModelBuild` instead to recreate all models."; - - ImmutableModelException(EpoxyModel model, int modelPosition) { -//^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ImmutableModelException#``(). ImmutableModelException(EpoxyModel model, int modelPosition) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local0 EpoxyModel model -// ^^^^^^^^^^^^^ definition local1 int modelPosition - this(model, "", modelPosition); -// ^^^^ reference com/airbnb/epoxy/ImmutableModelException#``(+1). -// ^^^^^ reference local0 -// ^^^^^^^^^^^^^ reference local1 - } - - ImmutableModelException(EpoxyModel model, -//^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ImmutableModelException#``(+1). ImmutableModelException(EpoxyModel model, String descriptionOfWhenChangeHappened, int modelPosition) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local2 EpoxyModel model - String descriptionOfWhenChangeHappened, int modelPosition) { -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition local3 String descriptionOfWhenChangeHappened -// ^^^^^^^^^^^^^ definition local4 int modelPosition - super(buildMessage(model, descriptionOfWhenChangeHappened, modelPosition)); -// ^^^^^ reference java/lang/RuntimeException#``(+1). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/ImmutableModelException#buildMessage(). -// ^^^^^ reference local2 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference local3 -// ^^^^^^^^^^^^^ reference local4 - } - - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - private static String buildMessage(EpoxyModel model, -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/ImmutableModelException#buildMessage(). @NonNull private static String buildMessage(EpoxyModel model, String descriptionOfWhenChangeHappened, int modelPosition) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local5 EpoxyModel model - String descriptionOfWhenChangeHappened, int modelPosition) { -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition local6 String descriptionOfWhenChangeHappened -// ^^^^^^^^^^^^^ definition local7 int modelPosition - return new StringBuilder(descriptionOfWhenChangeHappened) -// ^^^^^^^^^^^^^ reference java/lang/StringBuilder#``(+2). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference local6 - .append(" Position: ") -// ^^^^^^ reference java/lang/StringBuilder#append(+1). - .append(modelPosition) -// ^^^^^^ reference java/lang/StringBuilder#append(+9). -// ^^^^^^^^^^^^^ reference local7 - .append(" Model: ") -// ^^^^^^ reference java/lang/StringBuilder#append(+1). - .append(model.toString()) -// ^^^^^^ reference java/lang/StringBuilder#append(+1). -// ^^^^^ reference local5 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#toString(). - .append("\n\n") -// ^^^^^^ reference java/lang/StringBuilder#append(+1). - .append(MODEL_CANNOT_BE_CHANGED_MESSAGE) -// ^^^^^^ reference java/lang/StringBuilder#append(+1). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ImmutableModelException#MODEL_CANNOT_BE_CHANGED_MESSAGE. - .toString(); -// ^^^^^^^^ reference java/lang/StringBuilder#toString(). - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/InternalExposer.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/InternalExposer.kt deleted file mode 100644 index 6a3f0965d..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/InternalExposer.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.airbnb.epoxy -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ - -/** - * Exposes package private things as internal so files in other packages can use them. - */ - -internal fun EpoxyViewHolder.objectToBindInternal() = objectToBind() -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/InternalExposerKt#objectToBindInternal(). internal fun [ERROR : EpoxyViewHolder].objectToBindInternal(): [ERROR : ] - -internal fun EpoxyModel<*>.viewTypeInternal() = viewType -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/InternalExposerKt#viewTypeInternal(). internal fun [ERROR : EpoxyModel<*>].viewTypeInternal(): [ERROR : ] -internal fun BaseEpoxyAdapter.boundViewHoldersInternal() = boundViewHolders -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/InternalExposerKt#boundViewHoldersInternal(). internal fun [ERROR : BaseEpoxyAdapter].boundViewHoldersInternal(): [ERROR : ] -internal fun BaseEpoxyAdapter.getModelForPositionInternal(position: Int): EpoxyModel<*>? { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/InternalExposerKt#getModelForPositionInternal(). internal fun [ERROR : BaseEpoxyAdapter].getModelForPositionInternal(position: kotlin.Int): [ERROR : EpoxyModel<*>]? -// ^^^^^^^^ definition com/airbnb/epoxy/InternalExposerKt#getModelForPositionInternal().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# - return getModelForPosition(position) -// ^^^^^^^^ reference com/airbnb/epoxy/InternalExposerKt#getModelForPositionInternal().(position) -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ListenersUtils.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/ListenersUtils.java deleted file mode 100644 index 54bad2853..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ListenersUtils.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.airbnb.epoxy; - -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# -import android.view.ViewParent; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^^^^^^^ reference android/view/ViewParent# - -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.recyclerview.widget.RecyclerView; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView# -import androidx.recyclerview.widget.RecyclerView.ViewHolder; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView/ -// ^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView/ViewHolder# - -public class ListenersUtils { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ListenersUtils# public class ListenersUtils -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ListenersUtils#``(). public ListenersUtils() - - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - static EpoxyViewHolder getEpoxyHolderForChildView(View v) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ListenersUtils#getEpoxyHolderForChildView(). @Nullable static EpoxyViewHolder getEpoxyHolderForChildView(unresolved_type v) -// ^^^^ reference _root_/ -// ^ definition local0 unresolved_type v - RecyclerView recyclerView = findParentRecyclerView(v); -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^ definition local1 unresolved_type recyclerView -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ListenersUtils#findParentRecyclerView(). -// ^ reference local0 - if (recyclerView == null) { -// ^^^^^^^^^^^^ reference local1 - return null; - } - - ViewHolder viewHolder = recyclerView.findContainingViewHolder(v); -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ definition local2 unresolved_type viewHolder -// ^^^^^^^^^^^^ reference local1 -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference findContainingViewHolder# -// ^ reference local0 - if (viewHolder == null) { -// ^^^^^^^^^^ reference local2 - return null; - } - - if (!(viewHolder instanceof EpoxyViewHolder)) { -// ^^^^^^^^^^ reference local2 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# - return null; - } - - return (EpoxyViewHolder) viewHolder; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^ reference local2 - } - - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - private static RecyclerView findParentRecyclerView(@Nullable View v) { -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ListenersUtils#findParentRecyclerView(). @Nullable private static unresolved_type findParentRecyclerView(unresolved_type v) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^ reference _root_/ -// ^ definition local3 @Nullable unresolved_type v - if (v == null) { -// ^ reference local3 - return null; - } - - ViewParent parent = v.getParent(); -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local4 unresolved_type parent -// ^ reference local3 -// ^^^^^^^^^ reference getParent# - if (parent instanceof RecyclerView) { -// ^^^^^^ reference local4 -// ^^^^^^^^^^^^ reference _root_/ - return (RecyclerView) parent; -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ reference local4 - } - - if (parent instanceof View) { -// ^^^^^^ reference local4 -// ^^^^ reference _root_/ - return findParentRecyclerView((View) parent); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ListenersUtils#findParentRecyclerView(). -// ^^^^ reference _root_/ -// ^^^^^^ reference local4 - } - - return null; - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/MainThreadExecutor.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/MainThreadExecutor.java deleted file mode 100644 index 4fbf8ad98..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/MainThreadExecutor.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.airbnb.epoxy; - -import static com.airbnb.epoxy.EpoxyAsyncUtil.AYSNC_MAIN_THREAD_HANDLER; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil# -import static com.airbnb.epoxy.EpoxyAsyncUtil.MAIN_THREAD_HANDLER; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil# - -class MainThreadExecutor extends HandlerExecutor { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/MainThreadExecutor# class MainThreadExecutor -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HandlerExecutor# - static final MainThreadExecutor INSTANCE = new MainThreadExecutor(false); -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/MainThreadExecutor# -// ^^^^^^^^ definition com/airbnb/epoxy/MainThreadExecutor#INSTANCE. static final MainThreadExecutor INSTANCE -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/MainThreadExecutor#``(). - static final MainThreadExecutor ASYNC_INSTANCE = new MainThreadExecutor(true); -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/MainThreadExecutor# -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/MainThreadExecutor#ASYNC_INSTANCE. static final MainThreadExecutor ASYNC_INSTANCE -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/MainThreadExecutor#``(). - - MainThreadExecutor(boolean async) { -//^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/MainThreadExecutor#``(). MainThreadExecutor(boolean async) -// ^^^^^ definition local0 boolean async - super(async ? AYSNC_MAIN_THREAD_HANDLER : MAIN_THREAD_HANDLER); -// ^^^^^ reference com/airbnb/epoxy/HandlerExecutor#``(). -// ^^^^^ reference local0 -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil#AYSNC_MAIN_THREAD_HANDLER. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAsyncUtil#MAIN_THREAD_HANDLER. - } -} - - diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ModelCollector.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/ModelCollector.kt deleted file mode 100644 index 9da8fcad0..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ModelCollector.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.airbnb.epoxy -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ - -/** - * Interface used to collect models. Used by [EpoxyController]. It is also convenient to build DSL - * helpers for carousel: @link https://github.com/airbnb/epoxy/issues/847. - */ -interface ModelCollector { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelCollector# public interface ModelCollector - - fun add(model: EpoxyModel<*>) -// ^^^ definition com/airbnb/epoxy/ModelCollector#add(). public abstract fun add(model: [ERROR : EpoxyModel<*>]) -// ^^^^^ definition com/airbnb/epoxy/ModelCollector#add().(model) value-parameter model: [ERROR : EpoxyModel<*>] -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ModelGroupHolder.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/ModelGroupHolder.kt deleted file mode 100644 index abf9b61fc..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ModelGroupHolder.kt +++ /dev/null @@ -1,671 +0,0 @@ -package com.airbnb.epoxy -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ - -import android.view.View -import android.view.ViewGroup -import android.view.ViewParent -import android.view.ViewStub -import androidx.annotation.VisibleForTesting -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^^^^^^^^^ reference androidx/annotation/VisibleForTesting# -import androidx.recyclerview.widget.RecyclerView -// ^^^^^^^^ reference androidx/ -import com.airbnb.viewmodeladapter.R -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -import java.util.ArrayList -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^ reference java/util/ArrayList# - -class ModelGroupHolder(private val modelGroupParent: ViewParent) : EpoxyHolder() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder# public final class ModelGroupHolder -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#``(). public constructor ModelGroupHolder(modelGroupParent: [ERROR : ViewParent]) -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#modelGroupParent. private final val modelGroupParent: [ERROR : ViewParent] -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#getModelGroupParent(). private final val modelGroupParent: [ERROR : ViewParent] -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#``().(modelGroupParent) value-parameter modelGroupParent: [ERROR : ViewParent] - val viewHolders = ArrayList(4) -// ^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#viewHolders. public final val viewHolders: [ERROR : Type for ArrayList(4)] -// ^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#getViewHolders(). public final val viewHolders: [ERROR : Type for ArrayList(4)] - - /** Use parent pool or create a local pool */ - @VisibleForTesting -// ^^^^^^^^^^^^^^^^^ reference androidx/annotation/VisibleForTesting#``(). - val viewPool = findViewPool(modelGroupParent) -// ^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#viewPool. public final val viewPool: [ERROR : RecyclerView.RecycledViewPool] -// ^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#getViewPool(). public final val viewPool: [ERROR : RecyclerView.RecycledViewPool] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#Companion#findViewPool(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#modelGroupParent. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getModelGroupParent(). - - /** - * Get the root view group (aka - * [androidx.recyclerview.widget.RecyclerView.ViewHolder.itemView]. - * You can override [EpoxyModelGroup.bind] and use this method to make custom - * changes to the root view. - */ - lateinit var rootView: ViewGroup -// ^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#rootView. public final lateinit var rootView: [ERROR : ViewGroup] -// ^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#getRootView(). public final lateinit var rootView: [ERROR : ViewGroup] - private set -// ^^^ definition com/airbnb/epoxy/ModelGroupHolder#setRootView(). private final fun (: [ERROR : ViewGroup]) - - private lateinit var childContainer: ViewGroup -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#childContainer. private final lateinit var childContainer: [ERROR : ViewGroup] -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#getChildContainer(). private final lateinit var childContainer: [ERROR : ViewGroup] -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#setChildContainer(). private final lateinit var childContainer: [ERROR : ViewGroup] - private lateinit var stubs: List -// ^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#stubs. private final lateinit var stubs: kotlin.collections.List -// ^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#getStubs(). private final lateinit var stubs: kotlin.collections.List -// ^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#setStubs(). private final lateinit var stubs: kotlin.collections.List -// ^^^^ reference kotlin/collections/List# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData# - private var boundGroup: EpoxyModelGroup? = null -// ^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#boundGroup. private final var boundGroup: [ERROR : EpoxyModelGroup]? -// ^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#getBoundGroup(). private final var boundGroup: [ERROR : EpoxyModelGroup]? -// ^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#setBoundGroup(). private final var boundGroup: [ERROR : EpoxyModelGroup]? - - private fun usingStubs(): Boolean = stubs.isNotEmpty() -// ^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#usingStubs(). private final fun usingStubs(): kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#stubs. -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getStubs(). -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setStubs(). -// ^^^^^^^^^^ reference kotlin/collections/CollectionsKt#isNotEmpty(+9). - - override fun bindView(itemView: View) { -// ^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#bindView(). public open fun bindView(itemView: [ERROR : View]) -// ^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#bindView().(itemView) value-parameter itemView: [ERROR : View] - if (itemView !is ViewGroup) { -// ^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#bindView().(itemView) - throw IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference kotlin/IllegalStateException#``(+1). - "The layout provided to EpoxyModelGroup must be a ViewGroup" - ) - } - - rootView = itemView -// ^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#rootView. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getRootView(). -// ^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#bindView().(itemView) - childContainer = findChildContainer(rootView) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#childContainer. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getChildContainer(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setChildContainer(). -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#findChildContainer(). -// ^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#rootView. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getRootView(). - - stubs = if (childContainer.childCount != 0) { -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#stubs. -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getStubs(). -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setStubs(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#childContainer. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getChildContainer(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setChildContainer(). - createViewStubData(childContainer) -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#createViewStubData(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#childContainer. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getChildContainer(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setChildContainer(). - } else { - emptyList() -// ^^^^^^^^^ reference kotlin/collections/CollectionsKt#emptyList(). - } - } - - /** - * By default the outermost viewgroup is used as the container that views are added to. However, - * users can specify a different, nested view group to use as the child container by marking it - * with a special id. - */ - private fun findChildContainer(outermostRoot: ViewGroup): ViewGroup { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#findChildContainer(). private final fun findChildContainer(outermostRoot: [ERROR : ViewGroup]): [ERROR : ViewGroup] -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#findChildContainer().(outermostRoot) value-parameter outermostRoot: [ERROR : ViewGroup] - val customRoot = outermostRoot.findViewById(R.id.epoxy_model_group_child_container) -// ^^^^^^^^^^ definition local0 val customRoot: [ERROR : ] -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#findChildContainer().(outermostRoot) - - return customRoot as? ViewGroup ?: outermostRoot -// ^^^^^^^^^^ reference local0 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#findChildContainer().(outermostRoot) - } - - private fun createViewStubData(viewGroup: ViewGroup): List { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#createViewStubData(). private final fun createViewStubData(viewGroup: [ERROR : ViewGroup]): kotlin.collections.List -// ^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#createViewStubData().(viewGroup) value-parameter viewGroup: [ERROR : ViewGroup] -// ^^^^ reference kotlin/collections/List# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData# - return ArrayList(4).apply { -// ^^^^^^^^^ reference java/util/ArrayList#``(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData# -// ^^^^^ reference kotlin/StandardKt#apply(). - - collectViewStubs(viewGroup, this) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#collectViewStubs(). -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#createViewStubData().(viewGroup) -// ^^^^ reference - - if (isEmpty()) { -// ^^^^^^^ reference java/util/ArrayList#isEmpty(). - throw IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference kotlin/IllegalStateException#``(+1). - "No view stubs found. If viewgroup is not empty it must contain ViewStubs." - ) - } - } - } - - private fun collectViewStubs( -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#collectViewStubs(). private final fun collectViewStubs(viewGroup: [ERROR : ViewGroup], stubs: java.util.ArrayList) - viewGroup: ViewGroup, -// ^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#collectViewStubs().(viewGroup) value-parameter viewGroup: [ERROR : ViewGroup] - stubs: ArrayList -// ^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#collectViewStubs().(stubs) value-parameter stubs: java.util.ArrayList -// ^^^^^^^^^ reference java/util/ArrayList# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData# - ) { - for (i in 0 until viewGroup.childCount) { -// ^ definition local1 val i: kotlin.Int -// ^^^^^ reference kotlin/ranges/RangesKt#until(+6). -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#collectViewStubs().(viewGroup) - val child = viewGroup.getChildAt(i) -// ^^^^^ definition local2 val child: [ERROR : ] -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#collectViewStubs().(viewGroup) -// ^ reference local1 - - if (child is ViewGroup) { -// ^^^^^ reference local2 - collectViewStubs(child, stubs) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#collectViewStubs(). -// ^^^^^ reference local2 -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#collectViewStubs().(stubs) - } else if (child is ViewStub) { -// ^^^^^ reference local2 - stubs.add(ViewStubData(viewGroup, child, i)) -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#collectViewStubs().(stubs) -// ^^^ reference java/util/ArrayList#add(+1). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#``(). -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#collectViewStubs().(viewGroup) -// ^^^^^ reference local2 -// ^ reference local1 - } - } - } - - fun bindGroupIfNeeded(group: EpoxyModelGroup) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#bindGroupIfNeeded(). public final fun bindGroupIfNeeded(group: [ERROR : EpoxyModelGroup]) -// ^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#bindGroupIfNeeded().(group) value-parameter group: [ERROR : EpoxyModelGroup] - val previouslyBoundGroup = this.boundGroup -// ^^^^^^^^^^^^^^^^^^^^ definition local3 val previouslyBoundGroup: [ERROR : EpoxyModelGroup]? -// ^^^^ reference com/airbnb/epoxy/ModelGroupHolder# -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#boundGroup. -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getBoundGroup(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setBoundGroup(). - - if (previouslyBoundGroup === group) { -// ^^^^^^^^^^^^^^^^^^^^ reference local3 -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#bindGroupIfNeeded().(group) - return - } else if (previouslyBoundGroup != null) { -// ^^^^^^^^^^^^^^^^^^^^ reference local3 - // A different group is being bound; this can happen when an onscreen model is changed. - // The models or their layouts could have changed, so views may need to be updated - - if (previouslyBoundGroup.models.size > group.models.size) { -// ^^^^^^^^^^^^^^^^^^^^ reference local3 -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#bindGroupIfNeeded().(group) - for (i in previouslyBoundGroup.models.size - 1 downTo group.models.size) { -// ^ definition local4 val i: [ERROR : ] -// ^^^^^^^^^^^^^^^^^^^^ reference local3 -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#bindGroupIfNeeded().(group) - removeAndRecycleView(i) -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#removeAndRecycleView(). -// ^ reference local4 - } - } - } - - this.boundGroup = group -// ^^^^ reference com/airbnb/epoxy/ModelGroupHolder# -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#boundGroup. -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getBoundGroup(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setBoundGroup(). -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#bindGroupIfNeeded().(group) - val models = group.models -// ^^^^^^ definition local5 val models: [ERROR : ] -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#bindGroupIfNeeded().(group) - val modelCount = models.size -// ^^^^^^^^^^ definition local6 val modelCount: [ERROR : ] -// ^^^^^^ reference local5 - - if (usingStubs() && stubs.size < modelCount) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#usingStubs(). -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#stubs. -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getStubs(). -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setStubs(). -// ^^^^ reference kotlin/collections/List#size. -// ^^^^ reference kotlin/collections/List#getSize(). -// ^^^^^^^^^^ reference local6 - throw IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference kotlin/IllegalStateException#``(+1). - "Insufficient view stubs for EpoxyModelGroup. $modelCount models were provided but only ${stubs.size} view stubs exist." -// ^^^^^^^^^^ reference local6 -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#stubs. -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getStubs(). -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setStubs(). -// ^^^^ reference kotlin/collections/List#size. -// ^^^^ reference kotlin/collections/List#getSize(). - ) - } - viewHolders.ensureCapacity(modelCount) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#viewHolders. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getViewHolders(). -// ^^^^^^^^^^ reference local6 - - for (i in 0 until modelCount) { -// ^ definition local7 val i: kotlin.Int -// ^^^^^ reference kotlin/ranges/RangesKt#until(+6). -// ^^^^^^^^^^ reference local6 - val model = models[i] -// ^^^^^ definition local8 val model: [ERROR : ] -// ^^^^^^ reference local5 -// ^ reference local7 - val previouslyBoundModel = previouslyBoundGroup?.models?.getOrNull(i) -// ^^^^^^^^^^^^^^^^^^^^ definition local9 val previouslyBoundModel: [ERROR : ] -// ^^^^^^^^^^^^^^^^^^^^ reference local3 -// ^ reference local7 - val stubData = stubs.getOrNull(i) -// ^^^^^^^^ definition local10 val stubData: com.airbnb.epoxy.ViewStubData? -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#stubs. -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getStubs(). -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setStubs(). -// ^^^^^^^^^ reference kotlin/collections/CollectionsKt#getOrNull(+9). -// ^ reference local7 - val parent = stubData?.viewGroup ?: childContainer -// ^^^^^^ definition local11 val parent: ??? -// ^^^^^^^^ reference local10 -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#viewGroup. -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#getViewGroup(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#childContainer. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getChildContainer(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setChildContainer(). - - if (previouslyBoundModel != null) { -// ^^^^^^^^^^^^^^^^^^^^ reference local9 - if (areSameViewType(previouslyBoundModel, model)) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#areSameViewType(). -// ^^^^^^^^^^^^^^^^^^^^ reference local9 -// ^^^^^ reference local8 - continue - } - - removeAndRecycleView(i) -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#removeAndRecycleView(). -// ^ reference local7 - } - - val holder = getViewHolder(parent, model) -// ^^^^^^ definition local12 val holder: [ERROR : EpoxyViewHolder] -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getViewHolder(). -// ^^^^^^ reference local11 -// ^^^^^ reference local8 - - if (stubData == null) { -// ^^^^^^^^ reference local10 -// ^^ reference com/airbnb/epoxy/ViewStubData#equals(+-1). - childContainer.addView(holder.itemView, i) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#childContainer. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getChildContainer(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setChildContainer(). -// ^^^^^^ reference local12 -// ^ reference local7 - } else { - stubData.setView(holder.itemView, group.useViewStubLayoutParams(model, i)) -// ^^^^^^^^ reference local10 -// ^^^^^^^ reference com/airbnb/epoxy/ViewStubData#setView(). -// ^^^^^^ reference local12 -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#bindGroupIfNeeded().(group) -// ^^^^^ reference local8 -// ^ reference local7 - } - - viewHolders.add(i, holder) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#viewHolders. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getViewHolders(). -// ^ reference local7 -// ^^^^^^ reference local12 - } - } - - private fun areSameViewType(model1: EpoxyModel<*>, model2: EpoxyModel<*>?): Boolean { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#areSameViewType(). private final fun areSameViewType(model1: [ERROR : EpoxyModel<*>], model2: [ERROR : EpoxyModel<*>]?): kotlin.Boolean -// ^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#areSameViewType().(model1) value-parameter model1: [ERROR : EpoxyModel<*>] -// ^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#areSameViewType().(model2) value-parameter model2: [ERROR : EpoxyModel<*>]? -// ^^^^^^^ reference kotlin/Boolean# - return ViewTypeManager.getViewType(model1) == ViewTypeManager.getViewType(model2) -// ^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#areSameViewType().(model1) -// ^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#areSameViewType().(model2) - } - - private fun getViewHolder(parent: ViewGroup, model: EpoxyModel<*>): EpoxyViewHolder { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#getViewHolder(). private final fun getViewHolder(parent: [ERROR : ViewGroup], model: [ERROR : EpoxyModel<*>]): [ERROR : EpoxyViewHolder] -// ^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#getViewHolder().(parent) value-parameter parent: [ERROR : ViewGroup] -// ^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#getViewHolder().(model) value-parameter model: [ERROR : EpoxyModel<*>] - val viewType = ViewTypeManager.getViewType(model) -// ^^^^^^^^ definition local13 val viewType: [ERROR : ] -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getViewHolder().(model) - val recycledView = viewPool.getRecycledView(viewType) -// ^^^^^^^^^^^^ definition local14 val recycledView: [ERROR : ] -// ^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#viewPool. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getViewPool(). -// ^^^^^^^^ reference local13 - - return recycledView as? EpoxyViewHolder -// ^^^^^^^^^^^^ reference local14 - ?: HELPER_ADAPTER.createViewHolder( -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#Companion#HELPER_ADAPTER. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#Companion#getHELPER_ADAPTER(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HelperAdapter#createViewHolder(). - modelGroupParent, -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#modelGroupParent. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getModelGroupParent(). - model, -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getViewHolder().(model) - parent, -// ^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getViewHolder().(parent) - viewType -// ^^^^^^^^ reference local13 - ) - } - - fun unbindGroup() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#unbindGroup(). public final fun unbindGroup() - if (boundGroup == null) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#boundGroup. -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getBoundGroup(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setBoundGroup(). - throw IllegalStateException("Group is not bound") -// ^^^^^^^^^^^^^^^^^^^^^ reference kotlin/IllegalStateException#``(+1). - } - - repeat(viewHolders.size) { -// ^^^^^^ reference kotlin/StandardKt#repeat(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#viewHolders. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getViewHolders(). - // Remove from the end for more efficient list actions - removeAndRecycleView(viewHolders.size - 1) -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#removeAndRecycleView(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#viewHolders. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getViewHolders(). - } - - boundGroup = null -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#boundGroup. -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getBoundGroup(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setBoundGroup(). - } - - private fun removeAndRecycleView(modelPosition: Int) { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#removeAndRecycleView(). private final fun removeAndRecycleView(modelPosition: kotlin.Int) -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#removeAndRecycleView().(modelPosition) value-parameter modelPosition: kotlin.Int -// ^^^ reference kotlin/Int# - if (usingStubs()) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#usingStubs(). - stubs[modelPosition].resetStub() -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#stubs. -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getStubs(). -// ^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setStubs(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#removeAndRecycleView().(modelPosition) -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#resetStub(). - } else { - childContainer.removeViewAt(modelPosition) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#childContainer. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getChildContainer(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#setChildContainer(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#removeAndRecycleView().(modelPosition) - } - - val viewHolder = viewHolders.removeAt(modelPosition) -// ^^^^^^^^^^ definition local15 val viewHolder: [ERROR : ] -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#viewHolders. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getViewHolders(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#removeAndRecycleView().(modelPosition) - viewHolder.unbind() -// ^^^^^^^^^^ reference local15 - viewPool.putRecycledView(viewHolder) -// ^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#viewPool. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#getViewPool(). -// ^^^^^^^^^^ reference local15 - } - - companion object { -// ^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#Companion# public companion object - - private val HELPER_ADAPTER = HelperAdapter() -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#Companion#HELPER_ADAPTER. private final val HELPER_ADAPTER: com.airbnb.epoxy.HelperAdapter -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#Companion#getHELPER_ADAPTER(). private final val HELPER_ADAPTER: com.airbnb.epoxy.HelperAdapter -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/HelperAdapter#``(). - - private fun findViewPool(view: ViewParent): RecyclerView.RecycledViewPool { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelGroupHolder#Companion#findViewPool(). private final fun findViewPool(view: [ERROR : ViewParent]): [ERROR : RecyclerView.RecycledViewPool] -// ^^^^ definition com/airbnb/epoxy/ModelGroupHolder#Companion#findViewPool().(view) value-parameter view: [ERROR : ViewParent] - var viewPool: RecyclerView.RecycledViewPool? = null -// ^^^^^^^^ definition local16 var viewPool: [ERROR : RecyclerView.RecycledViewPool]? - while (viewPool == null) { -// ^^^^^^^^ reference local16 - viewPool = if (view is RecyclerView) { -// ^^^^^^^^ reference local16 -// ^^^^ reference com/airbnb/epoxy/ModelGroupHolder#Companion#findViewPool().(view) - view.recycledViewPool -// ^^^^ reference com/airbnb/epoxy/ModelGroupHolder#Companion#findViewPool().(view) - } else { - val parent = view.parent -// ^^^^^^ definition local17 val parent: [ERROR : ] -// ^^^^ reference com/airbnb/epoxy/ModelGroupHolder#Companion#findViewPool().(view) - if (parent is ViewParent) { -// ^^^^^^ reference local17 - findViewPool(parent) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder#Companion#findViewPool(). -// ^^^^^^ reference local17 - } else { - // This model group is is not in a RecyclerView - LocalGroupRecycledViewPool() -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/LocalGroupRecycledViewPool#``(). - } - } - } - return viewPool -// ^^^^^^^^ reference local16 - } - } -} - -private class ViewStubData( -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewStubData# private final class ViewStubData -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewStubData#``(). public constructor ViewStubData(viewGroup: [ERROR : ViewGroup], viewStub: [ERROR : ViewStub], position: kotlin.Int) - val viewGroup: ViewGroup, -// ^^^^^^^^^ definition com/airbnb/epoxy/ViewStubData#viewGroup. public final val viewGroup: [ERROR : ViewGroup] -// ^^^^^^^^^ definition com/airbnb/epoxy/ViewStubData#getViewGroup(). public final val viewGroup: [ERROR : ViewGroup] -// ^^^^^^^^^ definition com/airbnb/epoxy/ViewStubData#``().(viewGroup) value-parameter viewGroup: [ERROR : ViewGroup] - val viewStub: ViewStub, -// ^^^^^^^^ definition com/airbnb/epoxy/ViewStubData#viewStub. public final val viewStub: [ERROR : ViewStub] -// ^^^^^^^^ definition com/airbnb/epoxy/ViewStubData#getViewStub(). public final val viewStub: [ERROR : ViewStub] -// ^^^^^^^^ definition com/airbnb/epoxy/ViewStubData#``().(viewStub) value-parameter viewStub: [ERROR : ViewStub] - val position: Int -// ^^^^^^^^ definition com/airbnb/epoxy/ViewStubData#position. public final val position: kotlin.Int -// ^^^^^^^^ definition com/airbnb/epoxy/ViewStubData#getPosition(). public final val position: kotlin.Int -// ^^^^^^^^ definition com/airbnb/epoxy/ViewStubData#``().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# -) { - - fun setView(view: View, useStubLayoutParams: Boolean) { -// ^^^^^^^ definition com/airbnb/epoxy/ViewStubData#setView(). public final fun setView(view: [ERROR : View], useStubLayoutParams: kotlin.Boolean) -// ^^^^ definition com/airbnb/epoxy/ViewStubData#setView().(view) value-parameter view: [ERROR : View] -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewStubData#setView().(useStubLayoutParams) value-parameter useStubLayoutParams: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - removeCurrentView() -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#removeCurrentView(). - - // Carry over the stub id manually since we aren't inflating via the stub - val inflatedId = viewStub.inflatedId -// ^^^^^^^^^^ definition local18 val inflatedId: [ERROR : ] -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#viewStub. -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#getViewStub(). - if (inflatedId != View.NO_ID) { -// ^^^^^^^^^^ reference local18 - view.id = inflatedId -// ^^^^ reference com/airbnb/epoxy/ViewStubData#setView().(view) -// ^^^^^^^^^^ reference local18 - } - - if (useStubLayoutParams) { -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#setView().(useStubLayoutParams) - viewGroup.addView(view, position, viewStub.layoutParams) -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#viewGroup. -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#getViewGroup(). -// ^^^^ reference com/airbnb/epoxy/ViewStubData#setView().(view) -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#position. -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#getPosition(). -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#viewStub. -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#getViewStub(). - } else { - viewGroup.addView(view, position) -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#viewGroup. -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#getViewGroup(). -// ^^^^ reference com/airbnb/epoxy/ViewStubData#setView().(view) -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#position. -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#getPosition(). - } - } - - fun resetStub() { -// ^^^^^^^^^ definition com/airbnb/epoxy/ViewStubData#resetStub(). public final fun resetStub() - removeCurrentView() -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#removeCurrentView(). - viewGroup.addView(viewStub, position) -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#viewGroup. -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#getViewGroup(). -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#viewStub. -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#getViewStub(). -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#position. -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#getPosition(). - } - - private fun removeCurrentView() { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewStubData#removeCurrentView(). private final fun removeCurrentView() - val view = viewGroup.getChildAt(position) -// ^^^^ definition local19 val view: kotlin.Nothing -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#viewGroup. -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#getViewGroup(). -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#position. -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#getPosition(). - ?: throw IllegalStateException("No view exists at position $position") -// ^^^^^^^^^^^^^^^^^^^^^ reference kotlin/IllegalStateException#``(+1). -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#position. -// ^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#getPosition(). - viewGroup.removeView(view) -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#viewGroup. -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewStubData#getViewGroup(). -// ^^^^ reference local19 - } -} - -/** - * Local pool to the [ModelGroupHolder] - */ -private class LocalGroupRecycledViewPool : RecyclerView.RecycledViewPool() -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/LocalGroupRecycledViewPool# private final class LocalGroupRecycledViewPool -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/LocalGroupRecycledViewPool#``(). public constructor LocalGroupRecycledViewPool() - -/** - * A viewholder's viewtype can only be set internally in an adapter when the viewholder - * is created. To work around that we do the creation in an adapter. - */ -private class HelperAdapter : RecyclerView.Adapter() { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/HelperAdapter# private final class HelperAdapter -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/HelperAdapter#``(). public constructor HelperAdapter() - - private var model: EpoxyModel<*>? = null -// ^^^^^ definition com/airbnb/epoxy/HelperAdapter#model. private final var model: [ERROR : EpoxyModel<*>]? -// ^^^^^ definition com/airbnb/epoxy/HelperAdapter#getModel(). private final var model: [ERROR : EpoxyModel<*>]? -// ^^^^^ definition com/airbnb/epoxy/HelperAdapter#setModel(). private final var model: [ERROR : EpoxyModel<*>]? - private var modelGroupParent: ViewParent? = null -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/HelperAdapter#modelGroupParent. private final var modelGroupParent: [ERROR : ViewParent]? -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/HelperAdapter#getModelGroupParent(). private final var modelGroupParent: [ERROR : ViewParent]? -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/HelperAdapter#setModelGroupParent(). private final var modelGroupParent: [ERROR : ViewParent]? - - fun createViewHolder( -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/HelperAdapter#createViewHolder(). public final fun createViewHolder(modelGroupParent: [ERROR : ViewParent], model: [ERROR : EpoxyModel<*>], parent: [ERROR : ViewGroup], viewType: kotlin.Int): [ERROR : EpoxyViewHolder] - modelGroupParent: ViewParent, -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/HelperAdapter#createViewHolder().(modelGroupParent) value-parameter modelGroupParent: [ERROR : ViewParent] - model: EpoxyModel<*>, -// ^^^^^ definition com/airbnb/epoxy/HelperAdapter#createViewHolder().(model) value-parameter model: [ERROR : EpoxyModel<*>] - parent: ViewGroup, -// ^^^^^^ definition com/airbnb/epoxy/HelperAdapter#createViewHolder().(parent) value-parameter parent: [ERROR : ViewGroup] - viewType: Int -// ^^^^^^^^ definition com/airbnb/epoxy/HelperAdapter#createViewHolder().(viewType) value-parameter viewType: kotlin.Int -// ^^^ reference kotlin/Int# - ): EpoxyViewHolder { - this.model = model -// ^^^^ reference com/airbnb/epoxy/HelperAdapter# -// ^^^^^ reference com/airbnb/epoxy/HelperAdapter#model. -// ^^^^^ reference com/airbnb/epoxy/HelperAdapter#getModel(). -// ^^^^^ reference com/airbnb/epoxy/HelperAdapter#setModel(). -// ^^^^^ reference com/airbnb/epoxy/HelperAdapter#createViewHolder().(model) - this.modelGroupParent = modelGroupParent -// ^^^^ reference com/airbnb/epoxy/HelperAdapter# -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HelperAdapter#modelGroupParent. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HelperAdapter#getModelGroupParent(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HelperAdapter#setModelGroupParent(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HelperAdapter#createViewHolder().(modelGroupParent) - val viewHolder = createViewHolder(parent, viewType) -// ^^^^^^^^^^ definition local20 val viewHolder: [ERROR : EpoxyViewHolder] -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HelperAdapter#createViewHolder(). -// ^^^^^^ reference com/airbnb/epoxy/HelperAdapter#createViewHolder().(parent) -// ^^^^^^^^ reference com/airbnb/epoxy/HelperAdapter#createViewHolder().(viewType) - this.model = null -// ^^^^ reference com/airbnb/epoxy/HelperAdapter# -// ^^^^^ reference com/airbnb/epoxy/HelperAdapter#model. -// ^^^^^ reference com/airbnb/epoxy/HelperAdapter#getModel(). -// ^^^^^ reference com/airbnb/epoxy/HelperAdapter#setModel(). - this.modelGroupParent = null -// ^^^^ reference com/airbnb/epoxy/HelperAdapter# -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HelperAdapter#modelGroupParent. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HelperAdapter#getModelGroupParent(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HelperAdapter#setModelGroupParent(). - return viewHolder -// ^^^^^^^^^^ reference local20 - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): EpoxyViewHolder { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/HelperAdapter#onCreateViewHolder(). public open fun onCreateViewHolder(parent: [ERROR : ViewGroup], viewType: kotlin.Int): [ERROR : EpoxyViewHolder] -// ^^^^^^ definition com/airbnb/epoxy/HelperAdapter#onCreateViewHolder().(parent) value-parameter parent: [ERROR : ViewGroup] -// ^^^^^^^^ definition com/airbnb/epoxy/HelperAdapter#onCreateViewHolder().(viewType) value-parameter viewType: kotlin.Int -// ^^^ reference kotlin/Int# - return EpoxyViewHolder(modelGroupParent, model!!.buildView(parent), model!!.shouldSaveViewState()) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HelperAdapter#modelGroupParent. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HelperAdapter#getModelGroupParent(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HelperAdapter#setModelGroupParent(). -// ^^^^^ reference com/airbnb/epoxy/HelperAdapter#model. -// ^^^^^ reference com/airbnb/epoxy/HelperAdapter#getModel(). -// ^^^^^ reference com/airbnb/epoxy/HelperAdapter#setModel(). -// ^^^^^^ reference com/airbnb/epoxy/HelperAdapter#onCreateViewHolder().(parent) -// ^^^^^ reference com/airbnb/epoxy/HelperAdapter#model. -// ^^^^^ reference com/airbnb/epoxy/HelperAdapter#getModel(). -// ^^^^^ reference com/airbnb/epoxy/HelperAdapter#setModel(). - } - - override fun onBindViewHolder(holder: EpoxyViewHolder, position: Int) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/HelperAdapter#onBindViewHolder(). public open fun onBindViewHolder(holder: [ERROR : EpoxyViewHolder], position: kotlin.Int) -// ^^^^^^ definition com/airbnb/epoxy/HelperAdapter#onBindViewHolder().(holder) value-parameter holder: [ERROR : EpoxyViewHolder] -// ^^^^^^^^ definition com/airbnb/epoxy/HelperAdapter#onBindViewHolder().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# - } - - override fun getItemCount() = 1 -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/HelperAdapter#getItemCount(). public open fun getItemCount(): kotlin.Int -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ModelList.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/ModelList.java deleted file mode 100644 index 43c97e419..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ModelList.java +++ /dev/null @@ -1,1192 +0,0 @@ -package com.airbnb.epoxy; - -import java.util.AbstractList; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^^^ reference java/util/AbstractList# -import java.util.ArrayList; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^ reference java/util/ArrayList# -import java.util.Collection; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^ reference java/util/Collection# -import java.util.ConcurrentModificationException; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/util/ConcurrentModificationException# -import java.util.Iterator; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^ reference java/util/Iterator# -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# -import java.util.ListIterator; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^^^ reference java/util/ListIterator# -import java.util.NoSuchElementException; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^^^^^^^^^^^^^ reference java/util/NoSuchElementException# - -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# - -/** - * Used by our {@link EpoxyAdapter} to track models. It simply wraps ArrayList and notifies an - * observer when remove or insertion operations are done on the list. This allows us to optimize - * diffing since we have a knowledge of what changed in the list. - */ -class ModelList extends ArrayList> { -// ^^^^^^^^^ definition com/airbnb/epoxy/ModelList# class ModelList -// ^^^^^^^^^ reference java/util/ArrayList# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# - - ModelList(int expectedModelCount) { -//^^^^^^^^^ definition com/airbnb/epoxy/ModelList#``(). ModelList(int expectedModelCount) -// ^^^^^^^^^^^^^^^^^^ definition local0 int expectedModelCount - super(expectedModelCount); -// ^^^^^ reference java/util/ArrayList#``(). -// ^^^^^^^^^^^^^^^^^^ reference local0 - } - - ModelList() { -//^^^^^^^^^ definition com/airbnb/epoxy/ModelList#``(+1). ModelList() - - } - - interface ModelListObserver { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#ModelListObserver# interface ModelListObserver - void onItemRangeInserted(int positionStart, int itemCount); -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#ModelListObserver#onItemRangeInserted(). public abstract void onItemRangeInserted(int positionStart, int itemCount) -// ^^^^^^^^^^^^^ definition local1 int positionStart -// ^^^^^^^^^ definition local2 int itemCount - void onItemRangeRemoved(int positionStart, int itemCount); -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#ModelListObserver#onItemRangeRemoved(). public abstract void onItemRangeRemoved(int positionStart, int itemCount) -// ^^^^^^^^^^^^^ definition local3 int positionStart -// ^^^^^^^^^ definition local4 int itemCount - } - - private boolean notificationsPaused; -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#notificationsPaused. private boolean notificationsPaused - private ModelListObserver observer; -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#ModelListObserver# -// ^^^^^^^^ definition com/airbnb/epoxy/ModelList#observer. private ModelListObserver observer - - void pauseNotifications() { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#pauseNotifications(). void pauseNotifications() - if (notificationsPaused) { -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notificationsPaused. - throw new IllegalStateException("Notifications already paused"); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - } - notificationsPaused = true; -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notificationsPaused. - } - - void resumeNotifications() { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#resumeNotifications(). void resumeNotifications() - if (!notificationsPaused) { -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notificationsPaused. - throw new IllegalStateException("Notifications already resumed"); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - } - notificationsPaused = false; -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notificationsPaused. - } - - void setObserver(ModelListObserver observer) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#setObserver(). void setObserver(ModelListObserver observer) -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#ModelListObserver# -// ^^^^^^^^ definition local5 ModelListObserver observer - this.observer = observer; -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#observer. -// ^^^^^^^^ reference local5 - } - - private void notifyInsertion(int positionStart, int itemCount) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#notifyInsertion(). private void notifyInsertion(int positionStart, int itemCount) -// ^^^^^^^^^^^^^ definition local6 int positionStart -// ^^^^^^^^^ definition local7 int itemCount - if (!notificationsPaused && observer != null) { -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notificationsPaused. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#observer. - observer.onItemRangeInserted(positionStart, itemCount); -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#observer. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#ModelListObserver#onItemRangeInserted(). -// ^^^^^^^^^^^^^ reference local6 -// ^^^^^^^^^ reference local7 - } - } - - private void notifyRemoval(int positionStart, int itemCount) { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#notifyRemoval(). private void notifyRemoval(int positionStart, int itemCount) -// ^^^^^^^^^^^^^ definition local8 int positionStart -// ^^^^^^^^^ definition local9 int itemCount - if (!notificationsPaused && observer != null) { -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notificationsPaused. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#observer. - observer.onItemRangeRemoved(positionStart, itemCount); -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#observer. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#ModelListObserver#onItemRangeRemoved(). -// ^^^^^^^^^^^^^ reference local8 -// ^^^^^^^^^ reference local9 - } - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public EpoxyModel set(int index, EpoxyModel element) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^ definition com/airbnb/epoxy/ModelList#set(). @Override public EpoxyModel set(int index, EpoxyModel element) -// ^^^^^ definition local10 int index -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition local11 EpoxyModel element - EpoxyModel previousModel = super.set(index, element); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition local12 EpoxyModel previousModel -// ^^^^^ reference com/airbnb/epoxy/ModelList#super. -// ^^^ reference java/util/ArrayList#set(). -// ^^^^^ reference local10 -// ^^^^^^^ reference local11 - - if (previousModel.id() != element.id()) { -// ^^^^^^^^^^^^^ reference local12 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). -// ^^^^^^^ reference local11 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). - notifyRemoval(index, 1); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notifyRemoval(). -// ^^^^^ reference local10 - notifyInsertion(index, 1); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notifyInsertion(). -// ^^^^^ reference local10 - } - - return previousModel; -// ^^^^^^^^^^^^^ reference local12 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean add(EpoxyModel epoxyModel) { -// ^^^ definition com/airbnb/epoxy/ModelList#add(). @Override public boolean add(EpoxyModel epoxyModel) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^ definition local13 EpoxyModel epoxyModel - notifyInsertion(size(), 1); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notifyInsertion(). -// ^^^^ reference java/util/ArrayList#size(). - return super.add(epoxyModel); -// ^^^^^ reference com/airbnb/epoxy/ModelList#super. -// ^^^ reference java/util/ArrayList#add(). -// ^^^^^^^^^^ reference local13 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void add(int index, EpoxyModel element) { -// ^^^ definition com/airbnb/epoxy/ModelList#add(+1). @Override public void add(int index, EpoxyModel element) -// ^^^^^ definition local14 int index -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition local15 EpoxyModel element - notifyInsertion(index, 1); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notifyInsertion(). -// ^^^^^ reference local14 - super.add(index, element); -// ^^^^^ reference com/airbnb/epoxy/ModelList#super. -// ^^^ reference java/util/ArrayList#add(+1). -// ^^^^^ reference local14 -// ^^^^^^^ reference local15 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean addAll(Collection> c) { -// ^^^^^^ definition com/airbnb/epoxy/ModelList#addAll(). @Override public boolean addAll(Collection> c) -// ^^^^^^^^^^ reference java/util/Collection# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ definition local16 Collection> c - notifyInsertion(size(), c.size()); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notifyInsertion(). -// ^^^^ reference java/util/ArrayList#size(). -// ^ reference local16 -// ^^^^ reference java/util/Collection#size(). - return super.addAll(c); -// ^^^^^ reference com/airbnb/epoxy/ModelList#super. -// ^^^^^^ reference java/util/ArrayList#addAll(). -// ^ reference local16 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean addAll(int index, Collection> c) { -// ^^^^^^ definition com/airbnb/epoxy/ModelList#addAll(+1). @Override public boolean addAll(int index, Collection> c) -// ^^^^^ definition local17 int index -// ^^^^^^^^^^ reference java/util/Collection# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ definition local18 Collection> c - notifyInsertion(index, c.size()); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notifyInsertion(). -// ^^^^^ reference local17 -// ^ reference local18 -// ^^^^ reference java/util/Collection#size(). - return super.addAll(index, c); -// ^^^^^ reference com/airbnb/epoxy/ModelList#super. -// ^^^^^^ reference java/util/ArrayList#addAll(+1). -// ^^^^^ reference local17 -// ^ reference local18 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public EpoxyModel remove(int index) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition com/airbnb/epoxy/ModelList#remove(). @Override public EpoxyModel remove(int index) -// ^^^^^ definition local19 int index - notifyRemoval(index, 1); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notifyRemoval(). -// ^^^^^ reference local19 - return super.remove(index); -// ^^^^^ reference com/airbnb/epoxy/ModelList#super. -// ^^^^^^ reference java/util/ArrayList#remove(). -// ^^^^^ reference local19 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean remove(Object o) { -// ^^^^^^ definition com/airbnb/epoxy/ModelList#remove(+1). @Override public boolean remove(Object o) -// ^^^^^^ reference java/lang/Object# -// ^ definition local20 Object o - int index = indexOf(o); -// ^^^^^ definition local21 int index -// ^^^^^^^ reference java/util/ArrayList#indexOf(). -// ^ reference local20 - - if (index == -1) { -// ^^^^^ reference local21 - return false; - } - - notifyRemoval(index, 1); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notifyRemoval(). -// ^^^^^ reference local21 - super.remove(index); -// ^^^^^ reference com/airbnb/epoxy/ModelList#super. -// ^^^^^^ reference java/util/ArrayList#remove(). -// ^^^^^ reference local21 - return true; - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void clear() { -// ^^^^^ definition com/airbnb/epoxy/ModelList#clear(). @Override public void clear() - if (!isEmpty()) { -// ^^^^^^^ reference java/util/ArrayList#isEmpty(). - notifyRemoval(0, size()); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notifyRemoval(). -// ^^^^ reference java/util/ArrayList#size(). - super.clear(); -// ^^^^^ reference com/airbnb/epoxy/ModelList#super. -// ^^^^^ reference java/util/ArrayList#clear(). - } - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected void removeRange(int fromIndex, int toIndex) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#removeRange(). @Override protected void removeRange(int fromIndex, int toIndex) -// ^^^^^^^^^ definition local22 int fromIndex -// ^^^^^^^ definition local23 int toIndex - if (fromIndex == toIndex) { -// ^^^^^^^^^ reference local22 -// ^^^^^^^ reference local23 - return; - } - - notifyRemoval(fromIndex, toIndex - fromIndex); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#notifyRemoval(). -// ^^^^^^^^^ reference local22 -// ^^^^^^^ reference local23 -// ^^^^^^^^^ reference local22 - super.removeRange(fromIndex, toIndex); -// ^^^^^ reference com/airbnb/epoxy/ModelList#super. -// ^^^^^^^^^^^ reference java/util/ArrayList#removeRange(). -// ^^^^^^^^^ reference local22 -// ^^^^^^^ reference local23 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean removeAll(Collection collection) { -// ^^^^^^^^^ definition com/airbnb/epoxy/ModelList#removeAll(). @Override public boolean removeAll(Collection collection) -// ^^^^^^^^^^ reference java/util/Collection# -// ^^^^^^^^^^ definition local24 Collection collection - // Using this implementation from the Android ArrayList since the Java 1.8 ArrayList - // doesn't call through to remove. Calling through to remove lets us leverage the notification - // done there - boolean result = false; -// ^^^^^^ definition local25 boolean result - Iterator it = iterator(); -// ^^^^^^^^ reference java/util/Iterator# -// ^^ definition local26 Iterator it -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#iterator(). - while (it.hasNext()) { -// ^^ reference local26 -// ^^^^^^^ reference java/util/Iterator#hasNext(). - if (collection.contains(it.next())) { -// ^^^^^^^^^^ reference local24 -// ^^^^^^^^ reference java/util/Collection#contains(). -// ^^ reference local26 -// ^^^^ reference java/util/Iterator#next(). - it.remove(); -// ^^ reference local26 -// ^^^^^^ reference java/util/Iterator#remove(). - result = true; -// ^^^^^^ reference local25 - } - } - return result; -// ^^^^^^ reference local25 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean retainAll(Collection collection) { -// ^^^^^^^^^ definition com/airbnb/epoxy/ModelList#retainAll(). @Override public boolean retainAll(Collection collection) -// ^^^^^^^^^^ reference java/util/Collection# -// ^^^^^^^^^^ definition local27 Collection collection - // Using this implementation from the Android ArrayList since the Java 1.8 ArrayList - // doesn't call through to remove. Calling through to remove lets us leverage the notification - // done there - boolean result = false; -// ^^^^^^ definition local28 boolean result - Iterator it = iterator(); -// ^^^^^^^^ reference java/util/Iterator# -// ^^ definition local29 Iterator it -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#iterator(). - while (it.hasNext()) { -// ^^ reference local29 -// ^^^^^^^ reference java/util/Iterator#hasNext(). - if (!collection.contains(it.next())) { -// ^^^^^^^^^^ reference local27 -// ^^^^^^^^ reference java/util/Collection#contains(). -// ^^ reference local29 -// ^^^^ reference java/util/Iterator#next(). - it.remove(); -// ^^ reference local29 -// ^^^^^^ reference java/util/Iterator#remove(). - result = true; -// ^^^^^^ reference local28 - } - } - return result; -// ^^^^^^ reference local28 - } - - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - @Override -// ^^^^^^^^ reference java/lang/Override# - public Iterator> iterator() { -// ^^^^^^^^ reference java/util/Iterator# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^ definition com/airbnb/epoxy/ModelList#iterator(). @NonNull @Override public Iterator> iterator() - return new Itr(); -// ^^^ reference com/airbnb/epoxy/ModelList#Itr#``(). - } - - /** - * An Iterator implementation that calls through to the parent list's methods for modification. - * Some implementations, like the Android ArrayList.ArrayListIterator class, modify the list data - * directly instead of calling into the parent list's methods. We need the implementation to call - * the parent methods so that the proper notifications are done. - */ - private class Itr implements Iterator> { -// ^^^ definition com/airbnb/epoxy/ModelList#Itr# private class Itr -// ^^^ definition com/airbnb/epoxy/ModelList#Itr#``(). private Itr() -// ^^^^^^^^ reference java/util/Iterator# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# - int cursor; // index of next element to return -// ^^^^^^ definition com/airbnb/epoxy/ModelList#Itr#cursor. int cursor - int lastRet = -1; // index of last element returned; -1 if no such -// ^^^^^^^ definition com/airbnb/epoxy/ModelList#Itr#lastRet. int lastRet - int expectedModCount = modCount; -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#Itr#expectedModCount. int expectedModCount -// ^^^^^^^^ reference java/util/AbstractList#modCount. - - public boolean hasNext() { -// ^^^^^^^ definition com/airbnb/epoxy/ModelList#Itr#hasNext(). public boolean hasNext() - return cursor != size(); -// ^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#cursor. -// ^^^^ reference java/util/ArrayList#size(). - } - - @SuppressWarnings("unchecked") -// ^^^^^^^^^^^^^^^^ reference java/lang/SuppressWarnings# - public EpoxyModel next() { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^ definition com/airbnb/epoxy/ModelList#Itr#next(). @SuppressWarnings("unchecked") public EpoxyModel next() - checkForComodification(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#checkForComodification(). - int i = cursor; -// ^ definition local30 int i -// ^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#cursor. - cursor = i + 1; -// ^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#cursor. -// ^ reference local30 - lastRet = i; -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#lastRet. -// ^ reference local30 - return ModelList.this.get(i); -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelList# -// ^^^^ reference com/airbnb/epoxy/ModelList#this. -// ^^^ reference java/util/ArrayList#get(). -// ^ reference local30 - } - - public void remove() { -// ^^^^^^ definition com/airbnb/epoxy/ModelList#Itr#remove(). public void remove() - if (lastRet < 0) { -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#lastRet. - throw new IllegalStateException(); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(). - } - checkForComodification(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#checkForComodification(). - - try { - ModelList.this.remove(lastRet); -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelList# -// ^^^^ reference com/airbnb/epoxy/ModelList#this. -// ^^^^^^ reference com/airbnb/epoxy/ModelList#remove(). -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#lastRet. - cursor = lastRet; -// ^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#cursor. -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#lastRet. - lastRet = -1; -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#lastRet. - expectedModCount = modCount; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#expectedModCount. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - } catch (IndexOutOfBoundsException ex) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IndexOutOfBoundsException# -// ^^ definition local31 IndexOutOfBoundsException ex - throw new ConcurrentModificationException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/util/ConcurrentModificationException#``(). - } - } - - final void checkForComodification() { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#Itr#checkForComodification(). final void checkForComodification() - if (modCount != expectedModCount) { -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#expectedModCount. - throw new ConcurrentModificationException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/util/ConcurrentModificationException#``(). - } - } - } - - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - @Override -// ^^^^^^^^ reference java/lang/Override# - public ListIterator> listIterator() { -// ^^^^^^^^^^^^ reference java/util/ListIterator# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#listIterator(). @NonNull @Override public ListIterator> listIterator() - return new ListItr(0); -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#ListItr#``(). - } - - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - @Override -// ^^^^^^^^ reference java/lang/Override# - public ListIterator> listIterator(int index) { -// ^^^^^^^^^^^^ reference java/util/ListIterator# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#listIterator(+1). @NonNull @Override public ListIterator> listIterator(int index) -// ^^^^^ definition local32 int index - return new ListItr(index); -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#ListItr#``(). -// ^^^^^ reference local32 - } - - /** - * A ListIterator implementation that calls through to the parent list's methods for modification. - * Some implementations may modify the list data directly instead of calling into the parent - * list's methods. We need the implementation to call the parent methods so that the proper - * notifications are done. - */ - private class ListItr extends Itr implements ListIterator> { -// ^^^^^^^ definition com/airbnb/epoxy/ModelList#ListItr# private class ListItr -// ^^^ reference com/airbnb/epoxy/ModelList#Itr# -// ^^^^^^^^^^^^ reference java/util/ListIterator# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# - ListItr(int index) { -// ^^^^^^^ definition com/airbnb/epoxy/ModelList#ListItr#``(). ListItr(int index) -// ^^^^^ definition local33 int index - cursor = index; -// ^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#cursor. -// ^^^^^ reference local33 - } - - public boolean hasPrevious() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#ListItr#hasPrevious(). public boolean hasPrevious() - return cursor != 0; -// ^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#cursor. - } - - public int nextIndex() { -// ^^^^^^^^^ definition com/airbnb/epoxy/ModelList#ListItr#nextIndex(). public int nextIndex() - return cursor; -// ^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#cursor. - } - - public int previousIndex() { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#ListItr#previousIndex(). public int previousIndex() - return cursor - 1; -// ^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#cursor. - } - - @SuppressWarnings("unchecked") -// ^^^^^^^^^^^^^^^^ reference java/lang/SuppressWarnings# - public EpoxyModel previous() { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^ definition com/airbnb/epoxy/ModelList#ListItr#previous(). @SuppressWarnings("unchecked") public EpoxyModel previous() - checkForComodification(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#checkForComodification(). - int i = cursor - 1; -// ^ definition local34 int i -// ^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#cursor. - if (i < 0) { -// ^ reference local34 - throw new NoSuchElementException(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference java/util/NoSuchElementException#``(). - } - - cursor = i; -// ^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#cursor. -// ^ reference local34 - lastRet = i; -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#lastRet. -// ^ reference local34 - return ModelList.this.get(i); -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelList# -// ^^^^ reference com/airbnb/epoxy/ModelList#this. -// ^^^ reference java/util/ArrayList#get(). -// ^ reference local34 - } - - public void set(EpoxyModel e) { -// ^^^ definition com/airbnb/epoxy/ModelList#ListItr#set(). public void set(EpoxyModel e) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ definition local35 EpoxyModel e - if (lastRet < 0) { -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#lastRet. - throw new IllegalStateException(); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(). - } - checkForComodification(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#checkForComodification(). - - try { - ModelList.this.set(lastRet, e); -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelList# -// ^^^^ reference com/airbnb/epoxy/ModelList#this. -// ^^^ reference com/airbnb/epoxy/ModelList#set(). -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#lastRet. -// ^ reference local35 - } catch (IndexOutOfBoundsException ex) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IndexOutOfBoundsException# -// ^^ definition local36 IndexOutOfBoundsException ex - throw new ConcurrentModificationException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/util/ConcurrentModificationException#``(). - } - } - - public void add(EpoxyModel e) { -// ^^^ definition com/airbnb/epoxy/ModelList#ListItr#add(). public void add(EpoxyModel e) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ definition local37 EpoxyModel e - checkForComodification(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#checkForComodification(). - - try { - int i = cursor; -// ^ definition local38 int i -// ^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#cursor. - ModelList.this.add(i, e); -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelList# -// ^^^^ reference com/airbnb/epoxy/ModelList#this. -// ^^^ reference com/airbnb/epoxy/ModelList#add(+1). -// ^ reference local38 -// ^ reference local37 - cursor = i + 1; -// ^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#cursor. -// ^ reference local38 - lastRet = -1; -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#lastRet. - expectedModCount = modCount; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#Itr#expectedModCount. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - } catch (IndexOutOfBoundsException ex) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IndexOutOfBoundsException# -// ^^ definition local39 IndexOutOfBoundsException ex - throw new ConcurrentModificationException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/util/ConcurrentModificationException#``(). - } - } - } - - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - @Override -// ^^^^^^^^ reference java/lang/Override# - public List> subList(int start, int end) { -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition com/airbnb/epoxy/ModelList#subList(). @NonNull @Override public List> subList(int start, int end) -// ^^^^^ definition local40 int start -// ^^^ definition local41 int end - if (start >= 0 && end <= size()) { -// ^^^^^ reference local40 -// ^^^ reference local41 -// ^^^^ reference java/util/ArrayList#size(). - if (start <= end) { -// ^^^^^ reference local40 -// ^^^ reference local41 - return new SubList(this, start, end); -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#``(). -// ^^^^^ reference local40 -// ^^^ reference local41 - } - throw new IllegalArgumentException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalArgumentException#``(). - } - throw new IndexOutOfBoundsException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IndexOutOfBoundsException#``(). - } - - /** - * A SubList implementation from Android's AbstractList class. It's copied here to make sure the - * implementation doesn't change, since some implementations, like the Java 1.8 ArrayList.SubList - * class, modify the list data directly instead of calling into the parent list's methods. We need - * the implementation to call the parent methods so that the proper notifications are done. - */ - private static class SubList extends AbstractList> { -// ^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList# private static class SubList -// ^^^^^^^^^^^^ reference java/util/AbstractList# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# - private final ModelList fullList; -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelList# -// ^^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#fullList. private final ModelList fullList - private int offset; -// ^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#offset. private int offset - private int size; -// ^^^^ definition com/airbnb/epoxy/ModelList#SubList#size. private int size - - private static final class SubListIterator implements ListIterator> { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator# private static final class SubListIterator -// ^^^^^^^^^^^^ reference java/util/ListIterator# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# - private final SubList subList; -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList# -// ^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator#subList. private final SubList subList - private final ListIterator> iterator; -// ^^^^^^^^^^^^ reference java/util/ListIterator# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator#iterator. private final ListIterator> iterator - private int start; -// ^^^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator#start. private int start - private int end; -// ^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator#end. private int end - - SubListIterator(ListIterator> it, SubList list, int offset, int length) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator#``(). SubListIterator(ListIterator> it, SubList list, int offset, int length) -// ^^^^^^^^^^^^ reference java/util/ListIterator# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^ definition local42 ListIterator> it -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList# -// ^^^^ definition local43 SubList list -// ^^^^^^ definition local44 int offset -// ^^^^^^ definition local45 int length - iterator = it; -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#iterator. -// ^^ reference local42 - subList = list; -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#subList. -// ^^^^ reference local43 - start = offset; -// ^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#start. -// ^^^^^^ reference local44 - end = start + length; -// ^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#end. -// ^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#start. -// ^^^^^^ reference local45 - } - - public void add(EpoxyModel object) { -// ^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator#add(). public void add(EpoxyModel object) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local46 EpoxyModel object - iterator.add(object); -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#iterator. -// ^^^ reference java/util/ListIterator#add(). -// ^^^^^^ reference local46 - subList.sizeChanged(true); -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#subList. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#sizeChanged(). - end++; -// ^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#end. - } - - public boolean hasNext() { -// ^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator#hasNext(). public boolean hasNext() - return iterator.nextIndex() < end; -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#iterator. -// ^^^^^^^^^ reference java/util/ListIterator#nextIndex(). -// ^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#end. - } - - public boolean hasPrevious() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator#hasPrevious(). public boolean hasPrevious() - return iterator.previousIndex() >= start; -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#iterator. -// ^^^^^^^^^^^^^ reference java/util/ListIterator#previousIndex(). -// ^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#start. - } - - public EpoxyModel next() { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator#next(). public EpoxyModel next() - if (iterator.nextIndex() < end) { -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#iterator. -// ^^^^^^^^^ reference java/util/ListIterator#nextIndex(). -// ^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#end. - return iterator.next(); -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#iterator. -// ^^^^ reference java/util/ListIterator#next(). - } - throw new NoSuchElementException(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference java/util/NoSuchElementException#``(). - } - - public int nextIndex() { -// ^^^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator#nextIndex(). public int nextIndex() - return iterator.nextIndex() - start; -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#iterator. -// ^^^^^^^^^ reference java/util/ListIterator#nextIndex(). -// ^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#start. - } - - public EpoxyModel previous() { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator#previous(). public EpoxyModel previous() - if (iterator.previousIndex() >= start) { -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#iterator. -// ^^^^^^^^^^^^^ reference java/util/ListIterator#previousIndex(). -// ^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#start. - return iterator.previous(); -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#iterator. -// ^^^^^^^^ reference java/util/ListIterator#previous(). - } - throw new NoSuchElementException(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference java/util/NoSuchElementException#``(). - } - - public int previousIndex() { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator#previousIndex(). public int previousIndex() - int previous = iterator.previousIndex(); -// ^^^^^^^^ definition local47 int previous -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#iterator. -// ^^^^^^^^^^^^^ reference java/util/ListIterator#previousIndex(). - if (previous >= start) { -// ^^^^^^^^ reference local47 -// ^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#start. - return previous - start; -// ^^^^^^^^ reference local47 -// ^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#start. - } - return -1; - } - - public void remove() { -// ^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator#remove(). public void remove() - iterator.remove(); -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#iterator. -// ^^^^^^ reference java/util/ListIterator#remove(). - subList.sizeChanged(false); -// ^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#subList. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#sizeChanged(). - end--; -// ^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#end. - } - - public void set(EpoxyModel object) { -// ^^^ definition com/airbnb/epoxy/ModelList#SubList#SubListIterator#set(). public void set(EpoxyModel object) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local48 EpoxyModel object - iterator.set(object); -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#iterator. -// ^^^ reference java/util/ListIterator#set(). -// ^^^^^^ reference local48 - } - } - - SubList(ModelList list, int start, int end) { -// ^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#``(). SubList(ModelList list, int start, int end) -// ^^^^^^^^^ reference com/airbnb/epoxy/ModelList# -// ^^^^ definition local49 ModelList list -// ^^^^^ definition local50 int start -// ^^^ definition local51 int end - fullList = list; -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^ reference local49 - modCount = fullList.modCount; -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - offset = start; -// ^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#offset. -// ^^^^^ reference local50 - size = end - start; -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. -// ^^^ reference local51 -// ^^^^^ reference local50 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void add(int location, EpoxyModel object) { -// ^^^ definition com/airbnb/epoxy/ModelList#SubList#add(). @Override public void add(int location, EpoxyModel object) -// ^^^^^^^^ definition local52 int location -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local53 EpoxyModel object - if (modCount == fullList.modCount) { -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - if (location >= 0 && location <= size) { -// ^^^^^^^^ reference local52 -// ^^^^^^^^ reference local52 -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. - fullList.add(location + offset, object); -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^ reference com/airbnb/epoxy/ModelList#add(+1). -// ^^^^^^^^ reference local52 -// ^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#offset. -// ^^^^^^ reference local53 - size++; -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. - modCount = fullList.modCount; -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - } else { - throw new IndexOutOfBoundsException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IndexOutOfBoundsException#``(). - } - } else { - throw new ConcurrentModificationException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/util/ConcurrentModificationException#``(). - } - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean addAll(int location, Collection> collection) { -// ^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#addAll(). @Override public boolean addAll(int location, Collection> collection) -// ^^^^^^^^ definition local54 int location -// ^^^^^^^^^^ reference java/util/Collection# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^ definition local55 Collection> collection - if (modCount == fullList.modCount) { -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - if (location >= 0 && location <= size) { -// ^^^^^^^^ reference local54 -// ^^^^^^^^ reference local54 -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. - boolean result = fullList.addAll(location + offset, collection); -// ^^^^^^ definition local56 boolean result -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^ reference com/airbnb/epoxy/ModelList#addAll(+1). -// ^^^^^^^^ reference local54 -// ^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#offset. -// ^^^^^^^^^^ reference local55 - if (result) { -// ^^^^^^ reference local56 - size += collection.size(); -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. -// ^^^^^^^^^^ reference local55 -// ^^^^ reference java/util/Collection#size(). - modCount = fullList.modCount; -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - } - return result; -// ^^^^^^ reference local56 - } - throw new IndexOutOfBoundsException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IndexOutOfBoundsException#``(). - } - throw new ConcurrentModificationException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/util/ConcurrentModificationException#``(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean addAll(@NonNull Collection> collection) { -// ^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#addAll(+1). @Override public boolean addAll(Collection> collection) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference java/util/Collection# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^ definition local57 @NonNull Collection> collection - if (modCount == fullList.modCount) { -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - boolean result = fullList.addAll(offset + size, collection); -// ^^^^^^ definition local58 boolean result -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^ reference com/airbnb/epoxy/ModelList#addAll(+1). -// ^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#offset. -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. -// ^^^^^^^^^^ reference local57 - if (result) { -// ^^^^^^ reference local58 - size += collection.size(); -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. -// ^^^^^^^^^^ reference local57 -// ^^^^ reference java/util/Collection#size(). - modCount = fullList.modCount; -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - } - return result; -// ^^^^^^ reference local58 - } - throw new ConcurrentModificationException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/util/ConcurrentModificationException#``(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public EpoxyModel get(int location) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^ definition com/airbnb/epoxy/ModelList#SubList#get(). @Override public EpoxyModel get(int location) -// ^^^^^^^^ definition local59 int location - if (modCount == fullList.modCount) { -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - if (location >= 0 && location < size) { -// ^^^^^^^^ reference local59 -// ^^^^^^^^ reference local59 -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. - return fullList.get(location + offset); -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^ reference java/util/ArrayList#get(). -// ^^^^^^^^ reference local59 -// ^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#offset. - } - throw new IndexOutOfBoundsException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IndexOutOfBoundsException#``(). - } - throw new ConcurrentModificationException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/util/ConcurrentModificationException#``(). - } - - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - @Override -// ^^^^^^^^ reference java/lang/Override# - public Iterator> iterator() { -// ^^^^^^^^ reference java/util/Iterator# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#iterator(). @NonNull @Override public Iterator> iterator() - return listIterator(0); -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#listIterator(). - } - - @NonNull -// ^^^^^^^ reference androidx/annotation/NonNull# - @Override -// ^^^^^^^^ reference java/lang/Override# - public ListIterator> listIterator(int location) { -// ^^^^^^^^^^^^ reference java/util/ListIterator# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#listIterator(). @NonNull @Override public ListIterator> listIterator(int location) -// ^^^^^^^^ definition local60 int location - if (modCount == fullList.modCount) { -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - if (location >= 0 && location <= size) { -// ^^^^^^^^ reference local60 -// ^^^^^^^^ reference local60 -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. - return new SubListIterator(fullList.listIterator(location + offset), this, offset, size); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#SubListIterator#``(). -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#listIterator(+1). -// ^^^^^^^^ reference local60 -// ^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#offset. -// ^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#offset. -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. - } - throw new IndexOutOfBoundsException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IndexOutOfBoundsException#``(). - } - throw new ConcurrentModificationException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/util/ConcurrentModificationException#``(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public EpoxyModel remove(int location) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#remove(). @Override public EpoxyModel remove(int location) -// ^^^^^^^^ definition local61 int location - if (modCount == fullList.modCount) { -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - if (location >= 0 && location < size) { -// ^^^^^^^^ reference local61 -// ^^^^^^^^ reference local61 -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. - EpoxyModel result = fullList.remove(location + offset); -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local62 EpoxyModel result -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^ reference com/airbnb/epoxy/ModelList#remove(). -// ^^^^^^^^ reference local61 -// ^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#offset. - size--; -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. - modCount = fullList.modCount; -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - return result; -// ^^^^^^ reference local62 - } - throw new IndexOutOfBoundsException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IndexOutOfBoundsException#``(). - } - throw new ConcurrentModificationException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/util/ConcurrentModificationException#``(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected void removeRange(int start, int end) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#removeRange(). @Override protected void removeRange(int start, int end) -// ^^^^^ definition local63 int start -// ^^^ definition local64 int end - if (start != end) { -// ^^^^^ reference local63 -// ^^^ reference local64 - if (modCount == fullList.modCount) { -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - fullList.removeRange(start + offset, end + offset); -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ModelList#removeRange(). -// ^^^^^ reference local63 -// ^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#offset. -// ^^^ reference local64 -// ^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#offset. - size -= end - start; -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. -// ^^^ reference local64 -// ^^^^^ reference local63 - modCount = fullList.modCount; -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - } else { - throw new ConcurrentModificationException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/util/ConcurrentModificationException#``(). - } - } - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public EpoxyModel set(int location, EpoxyModel object) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^ definition com/airbnb/epoxy/ModelList#SubList#set(). @Override public EpoxyModel set(int location, EpoxyModel object) -// ^^^^^^^^ definition local65 int location -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local66 EpoxyModel object - if (modCount == fullList.modCount) { -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - if (location >= 0 && location < size) { -// ^^^^^^^^ reference local65 -// ^^^^^^^^ reference local65 -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. - return fullList.set(location + offset, object); -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^ reference com/airbnb/epoxy/ModelList#set(). -// ^^^^^^^^ reference local65 -// ^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#offset. -// ^^^^^^ reference local66 - } - throw new IndexOutOfBoundsException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IndexOutOfBoundsException#``(). - } - throw new ConcurrentModificationException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/util/ConcurrentModificationException#``(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int size() { -// ^^^^ definition com/airbnb/epoxy/ModelList#SubList#size(). @Override public int size() - if (modCount == fullList.modCount) { -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - return size; -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. - } - throw new ConcurrentModificationException(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference java/util/ConcurrentModificationException#``(). - } - - void sizeChanged(boolean increment) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/ModelList#SubList#sizeChanged(). void sizeChanged(boolean increment) -// ^^^^^^^^^ definition local67 boolean increment - if (increment) { -// ^^^^^^^^^ reference local67 - size++; -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. - } else { - size--; -// ^^^^ reference com/airbnb/epoxy/ModelList#SubList#size. - } - modCount = fullList.modCount; -// ^^^^^^^^ reference java/util/AbstractList#modCount. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelList#SubList#fullList. -// ^^^^^^^^ reference java/util/AbstractList#modCount. - } - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ModelState.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/ModelState.java deleted file mode 100644 index 701acf9df..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ModelState.java +++ /dev/null @@ -1,142 +0,0 @@ -package com.airbnb.epoxy; - -/** Helper to store relevant information about a model that we need to determine if it changed. */ -class ModelState { -// ^^^^^^^^^^ definition com/airbnb/epoxy/ModelState# class ModelState -// ^^^^^^^^^^ definition com/airbnb/epoxy/ModelState#``(). ModelState() - long id; -// ^^ definition com/airbnb/epoxy/ModelState#id. long id - int hashCode; -// ^^^^^^^^ definition com/airbnb/epoxy/ModelState#hashCode. int hashCode - int position; -// ^^^^^^^^ definition com/airbnb/epoxy/ModelState#position. int position - EpoxyModel model; -//^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition com/airbnb/epoxy/ModelState#model. EpoxyModel model - - /** - * A link to the item with the same id in the other list when diffing two lists. This will be null - * if the item doesn't exist, in the case of insertions or removals. This is an optimization to - * prevent having to look up the matching pair in a hash map every time. - */ - ModelState pair; -//^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^ definition com/airbnb/epoxy/ModelState#pair. ModelState pair - - /** - * How many movement operations have been applied to this item in order to update its position. As - * we find more item movements we need to update the position of affected items in the list in - * order to correctly calculate the next movement. Instead of iterating through all items in the - * list every time a movement operation happens we keep track of how many of these operations have - * been applied to an item, and apply all new operations in order when we need to get this item's - * up to date position. - */ - int lastMoveOp; -// ^^^^^^^^^^ definition com/airbnb/epoxy/ModelState#lastMoveOp. int lastMoveOp - - static ModelState build(EpoxyModel model, int position, boolean immutableModel) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^ definition com/airbnb/epoxy/ModelState#build(). static ModelState build(EpoxyModel model, int position, boolean immutableModel) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local0 EpoxyModel model -// ^^^^^^^^ definition local1 int position -// ^^^^^^^^^^^^^^ definition local2 boolean immutableModel - ModelState state = new ModelState(); -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState# -// ^^^^^ definition local3 ModelState state -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState#``(). - - state.lastMoveOp = 0; -// ^^^^^ reference local3 -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState#lastMoveOp. - state.pair = null; -// ^^^^^ reference local3 -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. - state.id = model.id(); -// ^^^^^ reference local3 -// ^^ reference com/airbnb/epoxy/ModelState#id. -// ^^^^^ reference local0 -// ^^ reference com/airbnb/epoxy/EpoxyModel#id(). - state.position = position; -// ^^^^^ reference local3 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^^^ reference local1 - - if (immutableModel) { -// ^^^^^^^^^^^^^^ reference local2 - state.model = model; -// ^^^^^ reference local3 -// ^^^^^ reference com/airbnb/epoxy/ModelState#model. -// ^^^^^ reference local0 - } else { - state.hashCode = model.hashCode(); -// ^^^^^ reference local3 -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#hashCode. -// ^^^^^ reference local0 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#hashCode(). - } - - return state; -// ^^^^^ reference local3 - } - - /** - * Used for an item inserted into the new list when we need to track moves that effect the - * inserted item in the old list. - */ - void pairWithSelf() { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/ModelState#pairWithSelf(). void pairWithSelf() - if (pair != null) { -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. - throw new IllegalStateException("Already paired."); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - } - - pair = new ModelState(); -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState#``(). - pair.lastMoveOp = 0; -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState#lastMoveOp. - pair.id = id; -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^ reference com/airbnb/epoxy/ModelState#id. -// ^^ reference com/airbnb/epoxy/ModelState#id. - pair.position = position; -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - pair.hashCode = hashCode; -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#hashCode. -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#hashCode. - pair.pair = this; -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. - pair.model = model; -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. -// ^^^^^ reference com/airbnb/epoxy/ModelState#model. -// ^^^^^ reference com/airbnb/epoxy/ModelState#model. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public String toString() { -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^ definition com/airbnb/epoxy/ModelState#toString(). @Override public String toString() - return "ModelState{" - + "id=" + id -// ^^ reference com/airbnb/epoxy/ModelState#id. - + ", model=" + model -// ^^^^^ reference com/airbnb/epoxy/ModelState#model. - + ", hashCode=" + hashCode -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#hashCode. - + ", position=" + position -// ^^^^^^^^ reference com/airbnb/epoxy/ModelState#position. - + ", pair=" + pair -// ^^^^ reference com/airbnb/epoxy/ModelState#pair. - + ", lastMoveOp=" + lastMoveOp -// ^^^^^^^^^^ reference com/airbnb/epoxy/ModelState#lastMoveOp. - + '}'; - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/NoOpControllerHelper.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/NoOpControllerHelper.java deleted file mode 100644 index e0757acd5..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/NoOpControllerHelper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.airbnb.epoxy; - -/** - * A {@link ControllerHelper} implementation for adapters with no {@link - * com.airbnb.epoxy.AutoModel} usage. - */ -class NoOpControllerHelper extends ControllerHelper { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/NoOpControllerHelper# class NoOpControllerHelper -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/NoOpControllerHelper#``(). NoOpControllerHelper() -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ControllerHelper# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void resetAutoModels() { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/NoOpControllerHelper#resetAutoModels(). @Override public void resetAutoModels() - // No - Op - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/NoOpTimer.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/NoOpTimer.java deleted file mode 100644 index 70db7f42a..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/NoOpTimer.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.airbnb.epoxy; - -class NoOpTimer implements Timer { -// ^^^^^^^^^ definition com/airbnb/epoxy/NoOpTimer# class NoOpTimer -// ^^^^^^^^^ definition com/airbnb/epoxy/NoOpTimer#``(). NoOpTimer() -// ^^^^^ reference com/airbnb/epoxy/Timer# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void start(String sectionName) { -// ^^^^^ definition com/airbnb/epoxy/NoOpTimer#start(). @Override public void start(String sectionName) -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^^^^ definition local0 String sectionName - - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void stop() { -// ^^^^ definition com/airbnb/epoxy/NoOpTimer#stop(). @Override public void stop() - - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/NotifyBlocker.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/NotifyBlocker.java deleted file mode 100644 index bcc29bcb7..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/NotifyBlocker.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.airbnb.epoxy; - -import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView/ -// ^^^^^^^^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView/AdapterDataObserver# - -/** - * We don't allow any data change notifications except the ones done though diffing. Forcing - * changes to happen through diffing reduces the chance for developer error when implementing an - * adapter. - *

- * This observer throws upon any changes done outside of diffing. - */ -class NotifyBlocker extends AdapterDataObserver { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/NotifyBlocker# class NotifyBlocker -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/NotifyBlocker#``(). NotifyBlocker() -// ^^^^^^^^^^^^^^^^^^^ reference _root_/ - - private boolean changesAllowed; -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/NotifyBlocker#changesAllowed. private boolean changesAllowed - - void allowChanges() { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/NotifyBlocker#allowChanges(). void allowChanges() - changesAllowed = true; -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#changesAllowed. - } - - void blockChanges() { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/NotifyBlocker#blockChanges(). void blockChanges() - changesAllowed = false; -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#changesAllowed. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onChanged() { -// ^^^^^^^^^ definition com/airbnb/epoxy/NotifyBlocker#onChanged(). @Override public void onChanged() - if (!changesAllowed) { -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#changesAllowed. - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "You cannot notify item changes directly. Call `requestModelBuild` instead."); - } - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onItemRangeChanged(int positionStart, int itemCount) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/NotifyBlocker#onItemRangeChanged(). @Override public void onItemRangeChanged(int positionStart, int itemCount) -// ^^^^^^^^^^^^^ definition local0 int positionStart -// ^^^^^^^^^ definition local1 int itemCount - onChanged(); -// ^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#onChanged(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onItemRangeChanged(int positionStart, int itemCount, Object payload) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/NotifyBlocker#onItemRangeChanged(+1). @Override public void onItemRangeChanged(int positionStart, int itemCount, Object payload) -// ^^^^^^^^^^^^^ definition local2 int positionStart -// ^^^^^^^^^ definition local3 int itemCount -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^ definition local4 Object payload - onChanged(); -// ^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#onChanged(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onItemRangeInserted(int positionStart, int itemCount) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/NotifyBlocker#onItemRangeInserted(). @Override public void onItemRangeInserted(int positionStart, int itemCount) -// ^^^^^^^^^^^^^ definition local5 int positionStart -// ^^^^^^^^^ definition local6 int itemCount - onChanged(); -// ^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#onChanged(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onItemRangeRemoved(int positionStart, int itemCount) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/NotifyBlocker#onItemRangeRemoved(). @Override public void onItemRangeRemoved(int positionStart, int itemCount) -// ^^^^^^^^^^^^^ definition local7 int positionStart -// ^^^^^^^^^ definition local8 int itemCount - onChanged(); -// ^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#onChanged(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onItemRangeMoved(int fromPosition, int toPosition, int itemCount) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/NotifyBlocker#onItemRangeMoved(). @Override public void onItemRangeMoved(int fromPosition, int toPosition, int itemCount) -// ^^^^^^^^^^^^ definition local9 int fromPosition -// ^^^^^^^^^^ definition local10 int toPosition -// ^^^^^^^^^ definition local11 int itemCount - onChanged(); -// ^^^^^^^^^ reference com/airbnb/epoxy/NotifyBlocker#onChanged(). - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelBoundListener.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelBoundListener.java deleted file mode 100644 index a64878fa1..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelBoundListener.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.airbnb.epoxy; - -/** Used to register an onBind callback with a generated model. */ -public interface OnModelBoundListener, V> { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/OnModelBoundListener# public interface OnModelBoundListener, V> -// ^ definition com/airbnb/epoxy/OnModelBoundListener#[T] T extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ definition com/airbnb/epoxy/OnModelBoundListener#[V] V - /** - * This will be called immediately after a model was bound, with the model and view that were - * bound together. - * - * @param model The model being bound - * @param view The view that is being bound to the model - * @param position The adapter position of the model - */ - void onModelBound(T model, V view, int position); -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/OnModelBoundListener#onModelBound(). public abstract void onModelBound(T model, V view, int position) -// ^ reference com/airbnb/epoxy/OnModelBoundListener#[T] -// ^^^^^ definition local0 T model -// ^ reference com/airbnb/epoxy/OnModelBoundListener#[V] -// ^^^^ definition local1 V view -// ^^^^^^^^ definition local2 int position -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelBuildFinishedListener.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelBuildFinishedListener.java deleted file mode 100644 index b2ca42f5f..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelBuildFinishedListener.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.airbnb.epoxy; - -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# - -/** - * Used with {@link EpoxyController#addModelBuildListener(OnModelBuildFinishedListener)} to be - * alerted to new model changes. - */ -public interface OnModelBuildFinishedListener { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/OnModelBuildFinishedListener# public interface OnModelBuildFinishedListener - /** - * Called after {@link EpoxyController#buildModels()} has run and changes have been notified to - * the adapter. This will be called even if no changes existed. - */ - void onModelBuildFinished(@NonNull DiffResult result); -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/OnModelBuildFinishedListener#onModelBuildFinished(). public abstract void onModelBuildFinished(DiffResult result) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^^^^^^^ reference com/airbnb/epoxy/DiffResult# -// ^^^^^^ definition local0 @NonNull DiffResult result -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelCheckedChangeListener.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelCheckedChangeListener.java deleted file mode 100644 index 76239ddcb..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelCheckedChangeListener.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.airbnb.epoxy; - -import android.widget.CompoundButton; -// ^^^^^^^ reference android/ -// ^^^^^^ reference android/widget/ -// ^^^^^^^^^^^^^^ reference android/widget/CompoundButton# - -public interface OnModelCheckedChangeListener, V> { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/OnModelCheckedChangeListener# public interface OnModelCheckedChangeListener, V> -// ^ definition com/airbnb/epoxy/OnModelCheckedChangeListener#[T] T extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ definition com/airbnb/epoxy/OnModelCheckedChangeListener#[V] V - /** - * Called when the view bound to the model is checked. - * - * @param model The model that the view is bound to. - * @param parentView The view bound to the model which received the click. - * @param checkedView The view that received the click. This is either a child of the parentView - * or the parentView itself - * @param isChecked The new value for isChecked property. - * @param position The position of the model in the adapter. - */ - void onChecked(T model, V parentView, -// ^^^^^^^^^ definition com/airbnb/epoxy/OnModelCheckedChangeListener#onChecked(). public abstract void onChecked(T model, V parentView, unresolved_type checkedView, boolean isChecked, int position) -// ^ reference com/airbnb/epoxy/OnModelCheckedChangeListener#[T] -// ^^^^^ definition local0 T model -// ^ reference com/airbnb/epoxy/OnModelCheckedChangeListener#[V] -// ^^^^^^^^^^ definition local1 V parentView - CompoundButton checkedView, boolean isChecked, int position); -// ^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^ definition local2 unresolved_type checkedView -// ^^^^^^^^^ definition local3 boolean isChecked -// ^^^^^^^^ definition local4 int position -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelClickListener.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelClickListener.java deleted file mode 100644 index 415a7b0b1..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelClickListener.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.airbnb.epoxy; - -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# - -/** Used to register a click listener on a generated model. */ -public interface OnModelClickListener, V> { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/OnModelClickListener# public interface OnModelClickListener, V> -// ^ definition com/airbnb/epoxy/OnModelClickListener#[T] T extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ definition com/airbnb/epoxy/OnModelClickListener#[V] V - /** - * Called when the view bound to the model is clicked. - * - * @param model The model that the view is bound to. - * @param parentView The view bound to the model which received the click. - * @param clickedView The view that received the click. This is either a child of the parentView - * or the parentView itself - * @param position The position of the model in the adapter. - */ - void onClick(T model, V parentView, View clickedView, int position); -// ^^^^^^^ definition com/airbnb/epoxy/OnModelClickListener#onClick(). public abstract void onClick(T model, V parentView, unresolved_type clickedView, int position) -// ^ reference com/airbnb/epoxy/OnModelClickListener#[T] -// ^^^^^ definition local0 T model -// ^ reference com/airbnb/epoxy/OnModelClickListener#[V] -// ^^^^^^^^^^ definition local1 V parentView -// ^^^^ reference _root_/ -// ^^^^^^^^^^^ definition local2 unresolved_type clickedView -// ^^^^^^^^ definition local3 int position -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelLongClickListener.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelLongClickListener.java deleted file mode 100644 index 374dfd138..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelLongClickListener.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.airbnb.epoxy; - -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# - -public interface OnModelLongClickListener, V> { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/OnModelLongClickListener# public interface OnModelLongClickListener, V> -// ^ definition com/airbnb/epoxy/OnModelLongClickListener#[T] T extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ definition com/airbnb/epoxy/OnModelLongClickListener#[V] V - /** - * Called when the view bound to the model is clicked. - * - * @param model The model that the view is bound to. - * @param parentView The view bound to the model which received the click. - * @param clickedView The view that received the click. This is either a child of the parentView - * or the parentView itself - * @param position The position of the model in the adapter. - */ - boolean onLongClick(T model, V parentView, View clickedView, int position); -// ^^^^^^^^^^^ definition com/airbnb/epoxy/OnModelLongClickListener#onLongClick(). public abstract boolean onLongClick(T model, V parentView, unresolved_type clickedView, int position) -// ^ reference com/airbnb/epoxy/OnModelLongClickListener#[T] -// ^^^^^ definition local0 T model -// ^ reference com/airbnb/epoxy/OnModelLongClickListener#[V] -// ^^^^^^^^^^ definition local1 V parentView -// ^^^^ reference _root_/ -// ^^^^^^^^^^^ definition local2 unresolved_type clickedView -// ^^^^^^^^ definition local3 int position -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelUnboundListener.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelUnboundListener.java deleted file mode 100644 index 0f9aac16a..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelUnboundListener.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.airbnb.epoxy; - -/** Used to register an onUnbind callback with a generated model. */ -public interface OnModelUnboundListener, V> { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/OnModelUnboundListener# public interface OnModelUnboundListener, V> -// ^ definition com/airbnb/epoxy/OnModelUnboundListener#[T] T extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ definition com/airbnb/epoxy/OnModelUnboundListener#[V] V - /** - * This will be called immediately after a model is unbound from a view, with the view and model - * that were unbound. - */ - void onModelUnbound(T model, V view); -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/OnModelUnboundListener#onModelUnbound(). public abstract void onModelUnbound(T model, V view) -// ^ reference com/airbnb/epoxy/OnModelUnboundListener#[T] -// ^^^^^ definition local0 T model -// ^ reference com/airbnb/epoxy/OnModelUnboundListener#[V] -// ^^^^ definition local1 V view -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelVisibilityChangedListener.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelVisibilityChangedListener.java deleted file mode 100644 index 48c1c197c..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelVisibilityChangedListener.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.airbnb.epoxy; - -import androidx.annotation.FloatRange; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^^ reference androidx/annotation/FloatRange# -import androidx.annotation.Px; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^ reference androidx/annotation/Px# - -/** Used to register an onVisibilityChanged callback with a generated model. */ -public interface OnModelVisibilityChangedListener, V> { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/OnModelVisibilityChangedListener# public interface OnModelVisibilityChangedListener, V> -// ^ definition com/airbnb/epoxy/OnModelVisibilityChangedListener#[T] T extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/OnModelVisibilityChangedListener#[V] -// ^ definition com/airbnb/epoxy/OnModelVisibilityChangedListener#[V] V - - /** - * This will be called once the view visible part changes. - *

- * OnModelVisibilityChangedListener should be used with particular care since they will be - * dispatched on every frame while scrolling. No heavy work should be done inside the - * implementation. Using {@link OnModelVisibilityStateChangedListener} is recommended whenever - * possible. - *

- * @param model The model being bound - * @param view The view that is being bound to the model - * @param percentVisibleHeight The percentage of height visible (0-100) - * @param percentVisibleWidth The percentage of width visible (0-100) - * @param heightVisible The visible height in pixel - * @param widthVisible The visible width in pixel - */ - void onVisibilityChanged(T model, V view, -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/OnModelVisibilityChangedListener#onVisibilityChanged(). public abstract void onVisibilityChanged(T model, V view, float percentVisibleHeight, float percentVisibleWidth, int heightVisible, int widthVisible) -// ^ reference com/airbnb/epoxy/OnModelVisibilityChangedListener#[T] -// ^^^^^ definition local0 T model -// ^ reference com/airbnb/epoxy/OnModelVisibilityChangedListener#[V] -// ^^^^ definition local1 V view - @FloatRange(from = 0, to = 100) float percentVisibleHeight, -// ^^^^^^^^^^ reference androidx/annotation/FloatRange# -// ^^^^ reference androidx/annotation/FloatRange#from(). -// ^^ reference androidx/annotation/FloatRange#to(). -// ^^^^^^^^^^^^^^^^^^^^ definition local2 @FloatRange(from = 0, to = 100) float percentVisibleHeight - @FloatRange(from = 0, to = 100) float percentVisibleWidth, -// ^^^^^^^^^^ reference androidx/annotation/FloatRange# -// ^^^^ reference androidx/annotation/FloatRange#from(). -// ^^ reference androidx/annotation/FloatRange#to(). -// ^^^^^^^^^^^^^^^^^^^ definition local3 @FloatRange(from = 0, to = 100) float percentVisibleWidth - @Px int heightVisible, @Px int widthVisible); -// ^^ reference androidx/annotation/Px# -// ^^^^^^^^^^^^^ definition local4 @Px int heightVisible -// ^^ reference androidx/annotation/Px# -// ^^^^^^^^^^^^ definition local5 @Px int widthVisible -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelVisibilityStateChangedListener.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelVisibilityStateChangedListener.java deleted file mode 100644 index dac6496f7..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/OnModelVisibilityStateChangedListener.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.airbnb.epoxy; - -import com.airbnb.epoxy.VisibilityState.Visibility; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState# -// ^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState#Visibility# - -/** Used to register an onVisibilityChanged callback with a generated model. */ -public interface OnModelVisibilityStateChangedListener, V> { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/OnModelVisibilityStateChangedListener# public interface OnModelVisibilityStateChangedListener, V> -// ^ definition com/airbnb/epoxy/OnModelVisibilityStateChangedListener#[T] T extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ reference com/airbnb/epoxy/OnModelVisibilityStateChangedListener#[V] -// ^ definition com/airbnb/epoxy/OnModelVisibilityStateChangedListener#[V] V - - /** - * This will be called once the visibility changed. - *

- * @param model The model being bound - * @param view The view that is being bound to the model - * @param visibilityState The new visibility - *

- * @see VisibilityState - */ - void onVisibilityStateChanged(T model, V view, @Visibility int visibilityState); -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/OnModelVisibilityStateChangedListener#onVisibilityStateChanged(). public abstract void onVisibilityStateChanged(T model, V view, int visibilityState) -// ^ reference com/airbnb/epoxy/OnModelVisibilityStateChangedListener#[T] -// ^^^^^ definition local0 T model -// ^ reference com/airbnb/epoxy/OnModelVisibilityStateChangedListener#[V] -// ^^^^ definition local1 V view -// ^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState#Visibility# -// ^^^^^^^^^^^^^^^ definition local2 @Visibility int visibilityState -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/QuantityStringResAttribute.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/QuantityStringResAttribute.java deleted file mode 100644 index bb408a819..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/QuantityStringResAttribute.java +++ /dev/null @@ -1,176 +0,0 @@ -package com.airbnb.epoxy; - -import android.content.Context; -// ^^^^^^^ reference android/ -// ^^^^^^^ reference android/content/ -// ^^^^^^^ reference android/content/Context# - -import java.util.Arrays; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^ reference java/util/Arrays# - -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.annotation.PluralsRes; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^^ reference androidx/annotation/PluralsRes# - -public class QuantityStringResAttribute { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/QuantityStringResAttribute# public class QuantityStringResAttribute - @PluralsRes private final int id; -// ^^^^^^^^^^ reference androidx/annotation/PluralsRes# -// ^^ definition com/airbnb/epoxy/QuantityStringResAttribute#id. @PluralsRes private final int id - private final int quantity; -// ^^^^^^^^ definition com/airbnb/epoxy/QuantityStringResAttribute#quantity. private final int quantity - @Nullable private final Object[] formatArgs; -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^^^ definition com/airbnb/epoxy/QuantityStringResAttribute#formatArgs. @Nullable private final Object[] formatArgs - - public QuantityStringResAttribute(@PluralsRes int id, int quantity, -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/QuantityStringResAttribute#``(). public QuantityStringResAttribute(int id, int quantity, Object[] formatArgs) -// ^^^^^^^^^^ reference androidx/annotation/PluralsRes# -// ^^ definition local0 @PluralsRes int id -// ^^^^^^^^ definition local1 int quantity - @Nullable Object[] formatArgs) { -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^^^ definition local2 @Nullable Object[] formatArgs - this.quantity = quantity; -// ^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#quantity. -// ^^^^^^^^ reference local1 - this.id = id; -// ^^ reference com/airbnb/epoxy/QuantityStringResAttribute#id. -// ^^ reference local0 - this.formatArgs = formatArgs; -// ^^^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#formatArgs. -// ^^^^^^^^^^ reference local2 - } - - public QuantityStringResAttribute(int id, int quantity) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/QuantityStringResAttribute#``(+1). public QuantityStringResAttribute(int id, int quantity) -// ^^ definition local3 int id -// ^^^^^^^^ definition local4 int quantity - this(id, quantity, null); -// ^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#``(). -// ^^ reference local3 -// ^^^^^^^^ reference local4 - } - - @PluralsRes -// ^^^^^^^^^^ reference androidx/annotation/PluralsRes# - public int getId() { -// ^^^^^ definition com/airbnb/epoxy/QuantityStringResAttribute#getId(). @PluralsRes public int getId() - return id; -// ^^ reference com/airbnb/epoxy/QuantityStringResAttribute#id. - } - - public int getQuantity() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/QuantityStringResAttribute#getQuantity(). public int getQuantity() - return quantity; -// ^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#quantity. - } - - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - public Object[] getFormatArgs() { -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/QuantityStringResAttribute#getFormatArgs(). @Nullable public Object[] getFormatArgs() - return formatArgs; -// ^^^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#formatArgs. - } - - public CharSequence toString(Context context) { -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^ definition com/airbnb/epoxy/QuantityStringResAttribute#toString(). public CharSequence toString(unresolved_type context) -// ^^^^^^^ reference _root_/ -// ^^^^^^^ definition local5 unresolved_type context - if (formatArgs == null || formatArgs.length == 0) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#formatArgs. -// ^^^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#formatArgs. -// ^^^^^^ reference length. - return context.getResources().getQuantityString(id, quantity); -// ^^^^^^^ reference local5 -// ^^^^^^^^^^^^ reference getResources# -// ^^^^^^^^^^^^^^^^^ reference getResources#getQuantityString# -// ^^ reference com/airbnb/epoxy/QuantityStringResAttribute#id. -// ^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#quantity. - } else { - return context.getResources().getQuantityString(id, quantity, formatArgs); -// ^^^^^^^ reference local5 -// ^^^^^^^^^^^^ reference getResources# -// ^^^^^^^^^^^^^^^^^ reference getResources#getQuantityString# -// ^^ reference com/airbnb/epoxy/QuantityStringResAttribute#id. -// ^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#quantity. -// ^^^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#formatArgs. - } - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean equals(Object o) { -// ^^^^^^ definition com/airbnb/epoxy/QuantityStringResAttribute#equals(). @Override public boolean equals(Object o) -// ^^^^^^ reference java/lang/Object# -// ^ definition local6 Object o - if (this == o) { -// ^ reference local6 - return true; - } - if (!(o instanceof QuantityStringResAttribute)) { -// ^ reference local6 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute# - return false; - } - - QuantityStringResAttribute that = (QuantityStringResAttribute) o; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute# -// ^^^^ definition local7 QuantityStringResAttribute that -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute# -// ^ reference local6 - - if (id != that.id) { -// ^^ reference com/airbnb/epoxy/QuantityStringResAttribute#id. -// ^^^^ reference local7 -// ^^ reference com/airbnb/epoxy/QuantityStringResAttribute#id. - return false; - } - if (quantity != that.quantity) { -// ^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#quantity. -// ^^^^ reference local7 -// ^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#quantity. - return false; - } - // Probably incorrect - comparing Object[] arrays with Arrays.equals - return Arrays.equals(formatArgs, that.formatArgs); -// ^^^^^^ reference java/util/Arrays# -// ^^^^^^ reference java/util/Arrays#equals(+8). -// ^^^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#formatArgs. -// ^^^^ reference local7 -// ^^^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#formatArgs. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int hashCode() { -// ^^^^^^^^ definition com/airbnb/epoxy/QuantityStringResAttribute#hashCode(). @Override public int hashCode() - int result = id; -// ^^^^^^ definition local8 int result -// ^^ reference com/airbnb/epoxy/QuantityStringResAttribute#id. - result = 31 * result + quantity; -// ^^^^^^ reference local8 -// ^^^^^^ reference local8 -// ^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#quantity. - result = 31 * result + Arrays.hashCode(formatArgs); -// ^^^^^^ reference local8 -// ^^^^^^ reference local8 -// ^^^^^^ reference java/util/Arrays# -// ^^^^^^^^ reference java/util/Arrays#hashCode(+8). -// ^^^^^^^^^^ reference com/airbnb/epoxy/QuantityStringResAttribute#formatArgs. - return result; -// ^^^^^^ reference local8 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/SimpleEpoxyAdapter.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/SimpleEpoxyAdapter.java deleted file mode 100644 index 49305de1c..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/SimpleEpoxyAdapter.java +++ /dev/null @@ -1,312 +0,0 @@ -package com.airbnb.epoxy; - -import java.util.Collection; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^ reference java/util/Collection# -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -/** - * A non-abstract version of {@link com.airbnb.epoxy.EpoxyAdapter} that exposes all methods and - * models as public. Use this if you don't want to create your own adapter subclass and instead want - * to modify the adapter from elsewhere, such as from an activity. - */ -public class SimpleEpoxyAdapter extends EpoxyAdapter { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter# public class SimpleEpoxyAdapter -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#``(). public SimpleEpoxyAdapter() -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter# - - public List> getModels() { -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#getModels(). public List> getModels() - return models; -// ^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#models. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void enableDiffing() { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#enableDiffing(). @Override public void enableDiffing() - super.enableDiffing(); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#enableDiffing(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void notifyModelsChanged() { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#notifyModelsChanged(). @Override public void notifyModelsChanged() - super.notifyModelsChanged(); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#notifyModelsChanged(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public BoundViewHolders getBoundViewHolders() { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BoundViewHolders# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#getBoundViewHolders(). @Override public BoundViewHolders getBoundViewHolders() - return super.getBoundViewHolders(); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getBoundViewHolders(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void notifyModelChanged(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#notifyModelChanged(). @Override public void notifyModelChanged(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local0 EpoxyModel model - super.notifyModelChanged(model); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#notifyModelChanged(). -// ^^^^^ reference local0 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void addModels(EpoxyModel... modelsToAdd) { -// ^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#addModels(). @Override public void addModels(EpoxyModel[] modelsToAdd) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition local1 EpoxyModel[] modelsToAdd - super.addModels(modelsToAdd); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#addModels(). -// ^^^^^^^^^^^ reference local1 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void addModels(Collection> modelsToAdd) { -// ^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#addModels(+1). @Override public void addModels(Collection> modelsToAdd) -// ^^^^^^^^^^ reference java/util/Collection# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition local2 Collection> modelsToAdd - super.addModels(modelsToAdd); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#addModels(+1). -// ^^^^^^^^^^^ reference local2 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void insertModelBefore(EpoxyModel modelToInsert, EpoxyModel modelToInsertBefore) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#insertModelBefore(). @Override public void insertModelBefore(EpoxyModel modelToInsert, EpoxyModel modelToInsertBefore) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition local3 EpoxyModel modelToInsert -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^ definition local4 EpoxyModel modelToInsertBefore - super.insertModelBefore(modelToInsert, modelToInsertBefore); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#insertModelBefore(). -// ^^^^^^^^^^^^^ reference local3 -// ^^^^^^^^^^^^^^^^^^^ reference local4 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void insertModelAfter(EpoxyModel modelToInsert, EpoxyModel modelToInsertAfter) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#insertModelAfter(). @Override public void insertModelAfter(EpoxyModel modelToInsert, EpoxyModel modelToInsertAfter) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition local5 EpoxyModel modelToInsert -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^ definition local6 EpoxyModel modelToInsertAfter - super.insertModelAfter(modelToInsert, modelToInsertAfter); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#insertModelAfter(). -// ^^^^^^^^^^^^^ reference local5 -// ^^^^^^^^^^^^^^^^^^ reference local6 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void removeModel(EpoxyModel model) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#removeModel(). @Override public void removeModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local7 EpoxyModel model - super.removeModel(model); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#removeModel(). -// ^^^^^ reference local7 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void removeAllModels() { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#removeAllModels(). @Override public void removeAllModels() - super.removeAllModels(); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#removeAllModels(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void removeAllAfterModel(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#removeAllAfterModel(). @Override public void removeAllAfterModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local8 EpoxyModel model - super.removeAllAfterModel(model); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#removeAllAfterModel(). -// ^^^^^ reference local8 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void showModel(EpoxyModel model, boolean show) { -// ^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#showModel(). @Override public void showModel(EpoxyModel model, boolean show) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local9 EpoxyModel model -// ^^^^ definition local10 boolean show - super.showModel(model, show); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#showModel(). -// ^^^^^ reference local9 -// ^^^^ reference local10 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void showModel(EpoxyModel model) { -// ^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#showModel(+1). @Override public void showModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local11 EpoxyModel model - super.showModel(model); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#showModel(+1). -// ^^^^^ reference local11 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void showModels(EpoxyModel... models) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#showModels(). @Override public void showModels(EpoxyModel[] models) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local12 EpoxyModel[] models - super.showModels(models); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#showModels(). -// ^^^^^^ reference local12 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void showModels(boolean show, EpoxyModel... models) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#showModels(+1). @Override public void showModels(boolean show, EpoxyModel[] models) -// ^^^^ definition local13 boolean show -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local14 EpoxyModel[] models - super.showModels(show, models); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#showModels(+1). -// ^^^^ reference local13 -// ^^^^^^ reference local14 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void showModels(Iterable> epoxyModels) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#showModels(+2). @Override public void showModels(Iterable> epoxyModels) -// ^^^^^^^^ reference java/lang/Iterable# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition local15 Iterable> epoxyModels - super.showModels(epoxyModels); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#showModels(+2). -// ^^^^^^^^^^^ reference local15 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void showModels(Iterable> epoxyModels, boolean show) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#showModels(+3). @Override public void showModels(Iterable> epoxyModels, boolean show) -// ^^^^^^^^ reference java/lang/Iterable# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition local16 Iterable> epoxyModels -// ^^^^ definition local17 boolean show - super.showModels(epoxyModels, show); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#showModels(+3). -// ^^^^^^^^^^^ reference local16 -// ^^^^ reference local17 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void hideModel(EpoxyModel model) { -// ^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#hideModel(). @Override public void hideModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local18 EpoxyModel model - super.hideModel(model); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#hideModel(). -// ^^^^^ reference local18 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void hideModels(Iterable> epoxyModels) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#hideModels(). @Override public void hideModels(Iterable> epoxyModels) -// ^^^^^^^^ reference java/lang/Iterable# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^ definition local19 Iterable> epoxyModels - super.hideModels(epoxyModels); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#hideModels(). -// ^^^^^^^^^^^ reference local19 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void hideModels(EpoxyModel... models) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#hideModels(+1). @Override public void hideModels(EpoxyModel[] models) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local20 EpoxyModel[] models - super.hideModels(models); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#hideModels(+1). -// ^^^^^^ reference local20 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void hideAllAfterModel(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#hideAllAfterModel(). @Override public void hideAllAfterModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local21 EpoxyModel model - super.hideAllAfterModel(model); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#hideAllAfterModel(). -// ^^^^^ reference local21 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public List> getAllModelsAfter(EpoxyModel model) { -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#getAllModelsAfter(). @Override public List> getAllModelsAfter(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local22 EpoxyModel model - return super.getAllModelsAfter(model); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyAdapter#getAllModelsAfter(). -// ^^^^^ reference local22 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int getModelPosition(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyAdapter#getModelPosition(). @Override public int getModelPosition(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local23 EpoxyModel model - return super.getModelPosition(model); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyAdapter#super. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getModelPosition(). -// ^^^^^ reference local23 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/SimpleEpoxyController.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/SimpleEpoxyController.java deleted file mode 100644 index 76daf4806..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/SimpleEpoxyController.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.airbnb.epoxy; - -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -/** - * A small wrapper around {@link com.airbnb.epoxy.EpoxyController} that lets you set a list of - * models directly. - */ -public class SimpleEpoxyController extends EpoxyController { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyController# public class SimpleEpoxyController -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyController#``(). public SimpleEpoxyController() -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# - private List> currentModels; -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyController#currentModels. private List> currentModels - private boolean insideSetModels; -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyController#insideSetModels. private boolean insideSetModels - - /** - * Set the models to add to this controller. Clears any previous models and adds this new list - * . - */ - public void setModels(List> models) { -// ^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyController#setModels(). public void setModels(List> models) -// ^^^^ reference java/util/List# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^ definition local0 List> models - currentModels = models; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyController#currentModels. -// ^^^^^^ reference local0 - insideSetModels = true; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyController#insideSetModels. - requestModelBuild(); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyController#requestModelBuild(). - insideSetModels = false; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyController#insideSetModels. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final void requestModelBuild() { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyController#requestModelBuild(). @Override public final void requestModelBuild() - if (!insideSetModels) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyController#insideSetModels. - throw new IllegalEpoxyUsage( -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IllegalEpoxyUsage#``(). - "You cannot call `requestModelBuild` directly. Call `setModels` instead."); - } - super.requestModelBuild(); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyController#super. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestModelBuild(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected final void buildModels() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyController#buildModels(). @Override protected final void buildModels() - if (!isBuildingModels()) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#isBuildingModels(). - throw new IllegalEpoxyUsage( -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/IllegalEpoxyUsage#``(). - "You cannot call `buildModels` directly. Call `setModels` instead."); - } - add(currentModels); -// ^^^ reference com/airbnb/epoxy/EpoxyController#add(+2). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyController#currentModels. - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/SimpleEpoxyModel.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/SimpleEpoxyModel.java deleted file mode 100644 index 956371359..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/SimpleEpoxyModel.java +++ /dev/null @@ -1,208 +0,0 @@ -package com.airbnb.epoxy; - -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# - -import androidx.annotation.CallSuper; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^ reference androidx/annotation/CallSuper# -import androidx.annotation.LayoutRes; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# -import androidx.annotation.NonNull; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^ reference androidx/annotation/NonNull# - -/** - * Helper class for cases where you don't need to do anything special when binding the view. This - * allows you to just provide the layout instead of needing to create a separate {@link EpoxyModel} - * subclass. This is useful for static layouts. You can also specify an onClick listener and the - * span size. - */ -public class SimpleEpoxyModel extends EpoxyModel { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyModel# public class SimpleEpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^ reference _root_/ - @LayoutRes private final int layoutRes; -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# -// ^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyModel#layoutRes. @LayoutRes private final int layoutRes - private View.OnClickListener onClickListener; -// ^^^^ reference View/ -// ^^^^^^^^^^^^^^^ reference View/OnClickListener# -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyModel#onClickListener. private unresolved_type onClickListener - private int spanCount = 1; -// ^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyModel#spanCount. private int spanCount - - public SimpleEpoxyModel(@LayoutRes int layoutRes) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyModel#``(). public SimpleEpoxyModel(int layoutRes) -// ^^^^^^^^^ reference androidx/annotation/LayoutRes# -// ^^^^^^^^^ definition local0 @LayoutRes int layoutRes - this.layoutRes = layoutRes; -// ^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#layoutRes. -// ^^^^^^^^^ reference local0 - } - - public SimpleEpoxyModel onClick(View.OnClickListener listener) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel# -// ^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyModel#onClick(). public SimpleEpoxyModel onClick(unresolved_type listener) -// ^^^^ reference View/ -// ^^^^^^^^^^^^^^^ reference View/OnClickListener# -// ^^^^^^^^ definition local1 unresolved_type listener - this.onClickListener = listener; -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#onClickListener. -// ^^^^^^^^ reference local1 - return this; - } - - public SimpleEpoxyModel span(int span) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel# -// ^^^^ definition com/airbnb/epoxy/SimpleEpoxyModel#span(). public SimpleEpoxyModel span(int span) -// ^^^^ definition local2 int span - spanCount = span; -// ^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#spanCount. -// ^^^^ reference local2 - return this; - } - - @CallSuper -// ^^^^^^^^^ reference androidx/annotation/CallSuper# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void bind(@NonNull View view) { -// ^^^^ definition com/airbnb/epoxy/SimpleEpoxyModel#bind(). @CallSuper @Override public void bind(unresolved_type view) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference _root_/ -// ^^^^ definition local3 @NonNull unresolved_type view - super.bind(view); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#super. -// ^^^^ reference com/airbnb/epoxy/EpoxyModel#bind(). -// ^^^^ reference local3 - view.setOnClickListener(onClickListener); -// ^^^^ reference local3 -// ^^^^^^^^^^^^^^^^^^ reference setOnClickListener# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#onClickListener. - view.setClickable(onClickListener != null); -// ^^^^ reference local3 -// ^^^^^^^^^^^^ reference setClickable# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#onClickListener. - } - - @CallSuper -// ^^^^^^^^^ reference androidx/annotation/CallSuper# - @Override -// ^^^^^^^^ reference java/lang/Override# - public void unbind(@NonNull View view) { -// ^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyModel#unbind(). @CallSuper @Override public void unbind(unresolved_type view) -// ^^^^^^^ reference androidx/annotation/NonNull# -// ^^^^ reference _root_/ -// ^^^^ definition local4 @NonNull unresolved_type view - super.unbind(view); -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#super. -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModel#unbind(). -// ^^^^ reference local4 - view.setOnClickListener(null); -// ^^^^ reference local4 -// ^^^^^^^^^^^^^^^^^^ reference setOnClickListener# - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected int getDefaultLayout() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyModel#getDefaultLayout(). @Override protected int getDefaultLayout() - return layoutRes; -// ^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#layoutRes. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int getSpanSize(int totalSpanCount, int position, int itemCount) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyModel#getSpanSize(). @Override public int getSpanSize(int totalSpanCount, int position, int itemCount) -// ^^^^^^^^^^^^^^ definition local5 int totalSpanCount -// ^^^^^^^^ definition local6 int position -// ^^^^^^^^^ definition local7 int itemCount - return spanCount; -// ^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#spanCount. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean equals(Object o) { -// ^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyModel#equals(). @Override public boolean equals(Object o) -// ^^^^^^ reference java/lang/Object# -// ^ definition local8 Object o - if (this == o) { -// ^ reference local8 - return true; - } - if (!(o instanceof SimpleEpoxyModel)) { -// ^ reference local8 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel# - return false; - } - if (!super.equals(o)) { -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#super. -// ^^^^^^ reference com/airbnb/epoxy/EpoxyModel#equals(). -// ^ reference local8 - return false; - } - - SimpleEpoxyModel that = (SimpleEpoxyModel) o; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel# -// ^^^^ definition local9 SimpleEpoxyModel that -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel# -// ^ reference local8 - - if (layoutRes != that.layoutRes) { -// ^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#layoutRes. -// ^^^^ reference local9 -// ^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#layoutRes. - return false; - } - if (spanCount != that.spanCount) { -// ^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#spanCount. -// ^^^^ reference local9 -// ^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#spanCount. - return false; - } - return onClickListener != null ? onClickListener.equals(that.onClickListener) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#onClickListener. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#onClickListener. -// ^^^^^^ reference View/OnClickListener#equals# -// ^^^^ reference local9 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#onClickListener. - : that.onClickListener == null; -// ^^^^ reference local9 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#onClickListener. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int hashCode() { -// ^^^^^^^^ definition com/airbnb/epoxy/SimpleEpoxyModel#hashCode(). @Override public int hashCode() - int result = super.hashCode(); -// ^^^^^^ definition local10 int result -// ^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#super. -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#hashCode(). - result = 31 * result + layoutRes; -// ^^^^^^ reference local10 -// ^^^^^^ reference local10 -// ^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#layoutRes. - result = 31 * result + (onClickListener != null ? onClickListener.hashCode() : 0); -// ^^^^^^ reference local10 -// ^^^^^^ reference local10 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#onClickListener. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#onClickListener. -// ^^^^^^^^ reference View/OnClickListener#hashCode# - result = 31 * result + spanCount; -// ^^^^^^ reference local10 -// ^^^^^^ reference local10 -// ^^^^^^^^^ reference com/airbnb/epoxy/SimpleEpoxyModel#spanCount. - return result; -// ^^^^^^ reference local10 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/StringAttributeData.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/StringAttributeData.java deleted file mode 100644 index 001974176..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/StringAttributeData.java +++ /dev/null @@ -1,331 +0,0 @@ -package com.airbnb.epoxy; - -import android.content.Context; -// ^^^^^^^ reference android/ -// ^^^^^^^ reference android/content/ -// ^^^^^^^ reference android/content/Context# - -import java.util.Arrays; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^ reference java/util/Arrays# - -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.annotation.PluralsRes; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^^ reference androidx/annotation/PluralsRes# -import androidx.annotation.StringRes; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^ reference androidx/annotation/StringRes# - -public class StringAttributeData { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData# public class StringAttributeData - private final boolean hasDefault; -// ^^^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#hasDefault. private final boolean hasDefault - @Nullable private final CharSequence defaultString; -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#defaultString. @Nullable private final CharSequence defaultString - @StringRes private final int defaultStringRes; -// ^^^^^^^^^ reference androidx/annotation/StringRes# -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#defaultStringRes. @StringRes private final int defaultStringRes - - @Nullable private CharSequence string; -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^ definition com/airbnb/epoxy/StringAttributeData#string. @Nullable private CharSequence string - @StringRes private int stringRes; -// ^^^^^^^^^ reference androidx/annotation/StringRes# -// ^^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#stringRes. @StringRes private int stringRes - @PluralsRes private int pluralRes; -// ^^^^^^^^^^ reference androidx/annotation/PluralsRes# -// ^^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#pluralRes. @PluralsRes private int pluralRes - private int quantity; -// ^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#quantity. private int quantity - @Nullable private Object[] formatArgs; -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#formatArgs. @Nullable private Object[] formatArgs - - public StringAttributeData() { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#``(). public StringAttributeData() - hasDefault = false; -// ^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#hasDefault. - defaultString = null; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#defaultString. - defaultStringRes = 0; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#defaultStringRes. - } - - public StringAttributeData(@Nullable CharSequence defaultString) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#``(+1). public StringAttributeData(CharSequence defaultString) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^^^^^^ definition local0 @Nullable CharSequence defaultString - hasDefault = true; -// ^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#hasDefault. - this.defaultString = defaultString; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#defaultString. -// ^^^^^^^^^^^^^ reference local0 - string = defaultString; -// ^^^^^^ reference com/airbnb/epoxy/StringAttributeData#string. -// ^^^^^^^^^^^^^ reference local0 - defaultStringRes = 0; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#defaultStringRes. - } - - public StringAttributeData(@StringRes int defaultStringRes) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#``(+2). public StringAttributeData(int defaultStringRes) -// ^^^^^^^^^ reference androidx/annotation/StringRes# -// ^^^^^^^^^^^^^^^^ definition local1 @StringRes int defaultStringRes - hasDefault = true; -// ^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#hasDefault. - this.defaultStringRes = defaultStringRes; -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#defaultStringRes. -// ^^^^^^^^^^^^^^^^ reference local1 - stringRes = defaultStringRes; -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#stringRes. -// ^^^^^^^^^^^^^^^^ reference local1 - defaultString = null; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#defaultString. - } - - public void setValue(@Nullable CharSequence string) { -// ^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#setValue(). public void setValue(CharSequence string) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^ definition local2 @Nullable CharSequence string - this.string = string; -// ^^^^^^ reference com/airbnb/epoxy/StringAttributeData#string. -// ^^^^^^ reference local2 - stringRes = 0; -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#stringRes. - pluralRes = 0; -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#pluralRes. - } - - public void setValue(@StringRes int stringRes) { -// ^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#setValue(+1). public void setValue(int stringRes) -// ^^^^^^^^^ reference androidx/annotation/StringRes# -// ^^^^^^^^^ definition local3 @StringRes int stringRes - setValue(stringRes, null); -// ^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#setValue(+2). -// ^^^^^^^^^ reference local3 - } - - public void setValue(@StringRes int stringRes, @Nullable Object[] formatArgs) { -// ^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#setValue(+2). public void setValue(int stringRes, Object[] formatArgs) -// ^^^^^^^^^ reference androidx/annotation/StringRes# -// ^^^^^^^^^ definition local4 @StringRes int stringRes -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^^^ definition local5 @Nullable Object[] formatArgs - if (stringRes != 0) { -// ^^^^^^^^^ reference local4 - this.stringRes = stringRes; -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#stringRes. -// ^^^^^^^^^ reference local4 - this.formatArgs = formatArgs; -// ^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#formatArgs. -// ^^^^^^^^^^ reference local5 - string = null; -// ^^^^^^ reference com/airbnb/epoxy/StringAttributeData#string. - pluralRes = 0; -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#pluralRes. - } else { - handleInvalidStringRes(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#handleInvalidStringRes(). - } - } - - private void handleInvalidStringRes() { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#handleInvalidStringRes(). private void handleInvalidStringRes() - if (hasDefault) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#hasDefault. - if (defaultStringRes != 0) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#defaultStringRes. - setValue(defaultStringRes); -// ^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#setValue(+1). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#defaultStringRes. - } else { - setValue(defaultString); -// ^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#setValue(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#defaultString. - } - } else { - throw new IllegalArgumentException("0 is an invalid value for required strings."); -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalArgumentException#``(+1). - } - } - - public void setValue(@PluralsRes int pluralRes, int quantity, @Nullable Object[] formatArgs) { -// ^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#setValue(+3). public void setValue(int pluralRes, int quantity, Object[] formatArgs) -// ^^^^^^^^^^ reference androidx/annotation/PluralsRes# -// ^^^^^^^^^ definition local6 @PluralsRes int pluralRes -// ^^^^^^^^ definition local7 int quantity -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^ reference java/lang/Object# -// ^^^^^^^^^^ definition local8 @Nullable Object[] formatArgs - if (pluralRes != 0) { -// ^^^^^^^^^ reference local6 - this.pluralRes = pluralRes; -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#pluralRes. -// ^^^^^^^^^ reference local6 - this.quantity = quantity; -// ^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#quantity. -// ^^^^^^^^ reference local7 - this.formatArgs = formatArgs; -// ^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#formatArgs. -// ^^^^^^^^^^ reference local8 - string = null; -// ^^^^^^ reference com/airbnb/epoxy/StringAttributeData#string. - stringRes = 0; -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#stringRes. - } else { - handleInvalidStringRes(); -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#handleInvalidStringRes(). - } - } - - public CharSequence toString(Context context) { -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#toString(). public CharSequence toString(unresolved_type context) -// ^^^^^^^ reference _root_/ -// ^^^^^^^ definition local9 unresolved_type context - if (pluralRes != 0) { -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#pluralRes. - if (formatArgs != null) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#formatArgs. - return context.getResources().getQuantityString(pluralRes, quantity, formatArgs); -// ^^^^^^^ reference local9 -// ^^^^^^^^^^^^ reference getResources# -// ^^^^^^^^^^^^^^^^^ reference getResources#getQuantityString# -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#pluralRes. -// ^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#quantity. -// ^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#formatArgs. - } else { - return context.getResources().getQuantityString(pluralRes, quantity); -// ^^^^^^^ reference local9 -// ^^^^^^^^^^^^ reference getResources# -// ^^^^^^^^^^^^^^^^^ reference getResources#getQuantityString# -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#pluralRes. -// ^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#quantity. - } - } else if (stringRes != 0) { -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#stringRes. - if (formatArgs != null) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#formatArgs. - return context.getResources().getString(stringRes, formatArgs); -// ^^^^^^^ reference local9 -// ^^^^^^^^^^^^ reference getResources# -// ^^^^^^^^^ reference getResources#getString# -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#stringRes. -// ^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#formatArgs. - } else { - return context.getResources().getText(stringRes); -// ^^^^^^^ reference local9 -// ^^^^^^^^^^^^ reference getResources# -// ^^^^^^^ reference getResources#getText# -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#stringRes. - } - } else { - return string; -// ^^^^^^ reference com/airbnb/epoxy/StringAttributeData#string. - } - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean equals(Object o) { -// ^^^^^^ definition com/airbnb/epoxy/StringAttributeData#equals(). @Override public boolean equals(Object o) -// ^^^^^^ reference java/lang/Object# -// ^ definition local10 Object o - if (this == o) { -// ^ reference local10 - return true; - } - if (!(o instanceof StringAttributeData)) { -// ^ reference local10 -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData# - return false; - } - - StringAttributeData that = (StringAttributeData) o; -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData# -// ^^^^ definition local11 StringAttributeData that -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData# -// ^ reference local10 - - if (stringRes != that.stringRes) { -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#stringRes. -// ^^^^ reference local11 -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#stringRes. - return false; - } - if (pluralRes != that.pluralRes) { -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#pluralRes. -// ^^^^ reference local11 -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#pluralRes. - return false; - } - if (quantity != that.quantity) { -// ^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#quantity. -// ^^^^ reference local11 -// ^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#quantity. - return false; - } - if (string != null ? !string.equals(that.string) : that.string != null) { -// ^^^^^^ reference com/airbnb/epoxy/StringAttributeData#string. -// ^^^^^^ reference com/airbnb/epoxy/StringAttributeData#string. -// ^^^^^^ reference java/lang/Object#equals(). -// ^^^^ reference local11 -// ^^^^^^ reference com/airbnb/epoxy/StringAttributeData#string. -// ^^^^ reference local11 -// ^^^^^^ reference com/airbnb/epoxy/StringAttributeData#string. - return false; - } - - return Arrays.equals(formatArgs, that.formatArgs); -// ^^^^^^ reference java/util/Arrays# -// ^^^^^^ reference java/util/Arrays#equals(+8). -// ^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#formatArgs. -// ^^^^ reference local11 -// ^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#formatArgs. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int hashCode() { -// ^^^^^^^^ definition com/airbnb/epoxy/StringAttributeData#hashCode(). @Override public int hashCode() - int result = string != null ? string.hashCode() : 0; -// ^^^^^^ definition local12 int result -// ^^^^^^ reference com/airbnb/epoxy/StringAttributeData#string. -// ^^^^^^ reference com/airbnb/epoxy/StringAttributeData#string. -// ^^^^^^^^ reference java/lang/Object#hashCode(). - result = 31 * result + stringRes; -// ^^^^^^ reference local12 -// ^^^^^^ reference local12 -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#stringRes. - result = 31 * result + pluralRes; -// ^^^^^^ reference local12 -// ^^^^^^ reference local12 -// ^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#pluralRes. - result = 31 * result + quantity; -// ^^^^^^ reference local12 -// ^^^^^^ reference local12 -// ^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#quantity. - result = 31 * result + Arrays.hashCode(formatArgs); -// ^^^^^^ reference local12 -// ^^^^^^ reference local12 -// ^^^^^^ reference java/util/Arrays# -// ^^^^^^^^ reference java/util/Arrays#hashCode(+8). -// ^^^^^^^^^^ reference com/airbnb/epoxy/StringAttributeData#formatArgs. - return result; -// ^^^^^^ reference local12 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/StyleBuilderCallback.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/StyleBuilderCallback.java deleted file mode 100644 index d99f5699f..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/StyleBuilderCallback.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.airbnb.epoxy; - -/** - * Used for specifying dynamic styling for a view when creating a model. This is only used if the - * view is set up to be styled with the Paris library. - */ -public interface StyleBuilderCallback { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/StyleBuilderCallback# public interface StyleBuilderCallback -// ^ definition com/airbnb/epoxy/StyleBuilderCallback#[T] T - void buildStyle(T builder); -// ^^^^^^^^^^ definition com/airbnb/epoxy/StyleBuilderCallback#buildStyle(). public abstract void buildStyle(T builder) -// ^ reference com/airbnb/epoxy/StyleBuilderCallback#[T] -// ^^^^^^^ definition local0 T builder -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/Timer.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/Timer.java deleted file mode 100644 index a703490fa..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/Timer.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.airbnb.epoxy; - -interface Timer { -// ^^^^^ definition com/airbnb/epoxy/Timer# interface Timer - void start(String sectionName); -// ^^^^^ definition com/airbnb/epoxy/Timer#start(). public abstract void start(String sectionName) -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^^^^ definition local0 String sectionName - void stop(); -// ^^^^ definition com/airbnb/epoxy/Timer#stop(). public abstract void stop() -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/Typed2EpoxyController.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/Typed2EpoxyController.java deleted file mode 100644 index 232199f30..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/Typed2EpoxyController.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.airbnb.epoxy; - -import android.os.Handler; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^^ reference android/os/Handler# - -/** - * This is a wrapper around {@link com.airbnb.epoxy.EpoxyController} to simplify how data is - * accessed. Use this if the data required to build your models is represented by two objects. - *

- * To use this, create a subclass typed with your data object. Then, call {@link #setData} - * whenever that data changes. This class will handle calling {@link #buildModels} with the - * latest data. - *

- * You should NOT call {@link #requestModelBuild()} directly. - * - * @see TypedEpoxyController - * @see Typed3EpoxyController - * @see Typed4EpoxyController - */ -public abstract class Typed2EpoxyController extends EpoxyController { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed2EpoxyController# public abstract class Typed2EpoxyController -// ^ definition com/airbnb/epoxy/Typed2EpoxyController#[T] T -// ^ definition com/airbnb/epoxy/Typed2EpoxyController#[U] U -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# - - private T data1; -// ^ reference com/airbnb/epoxy/Typed2EpoxyController#[T] -// ^^^^^ definition com/airbnb/epoxy/Typed2EpoxyController#data1. private T data1 - private U data2; -// ^ reference com/airbnb/epoxy/Typed2EpoxyController#[U] -// ^^^^^ definition com/airbnb/epoxy/Typed2EpoxyController#data2. private U data2 - private boolean allowModelBuildRequests; -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed2EpoxyController#allowModelBuildRequests. private boolean allowModelBuildRequests - - public Typed2EpoxyController() { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed2EpoxyController#``(). public Typed2EpoxyController() - } - - public Typed2EpoxyController(Handler modelBuildingHandler, Handler diffingHandler) { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed2EpoxyController#``(+1). public Typed2EpoxyController(unresolved_type modelBuildingHandler, unresolved_type diffingHandler) -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^^ definition local0 unresolved_type modelBuildingHandler -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^ definition local1 unresolved_type diffingHandler - super(modelBuildingHandler, diffingHandler); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#``(+1). -// ^^^^^^^^^^^^^^^^^^^^ reference local0 -// ^^^^^^^^^^^^^^ reference local1 - } - - /** - * Call this with the latest data when you want models to be rebuilt. The data will be passed on - * to {@link #buildModels(Object, Object)} - */ - public void setData(T data1, U data2) { -// ^^^^^^^ definition com/airbnb/epoxy/Typed2EpoxyController#setData(). public void setData(T data1, U data2) -// ^ reference com/airbnb/epoxy/Typed2EpoxyController#[T] -// ^^^^^ definition local2 T data1 -// ^ reference com/airbnb/epoxy/Typed2EpoxyController#[U] -// ^^^^^ definition local3 U data2 - this.data1 = data1; -// ^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#data1. -// ^^^^^ reference local2 - this.data2 = data2; -// ^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#data2. -// ^^^^^ reference local3 - allowModelBuildRequests = true; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#allowModelBuildRequests. - requestModelBuild(); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#requestModelBuild(). - allowModelBuildRequests = false; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#allowModelBuildRequests. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final void requestModelBuild() { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed2EpoxyController#requestModelBuild(). @Override public final void requestModelBuild() - if (!allowModelBuildRequests) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#allowModelBuildRequests. - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "You cannot call `requestModelBuild` directly. Call `setData` instead to trigger a " - + "model refresh with new data."); - } - super.requestModelBuild(); -// ^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#super. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestModelBuild(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void moveModel(int fromPosition, int toPosition) { -// ^^^^^^^^^ definition com/airbnb/epoxy/Typed2EpoxyController#moveModel(). @Override public void moveModel(int fromPosition, int toPosition) -// ^^^^^^^^^^^^ definition local4 int fromPosition -// ^^^^^^^^^^ definition local5 int toPosition - allowModelBuildRequests = true; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#allowModelBuildRequests. - super.moveModel(fromPosition, toPosition); -// ^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#super. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#moveModel(). -// ^^^^^^^^^^^^ reference local4 -// ^^^^^^^^^^ reference local5 - allowModelBuildRequests = false; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#allowModelBuildRequests. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void requestDelayedModelBuild(int delayMs) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed2EpoxyController#requestDelayedModelBuild(). @Override public void requestDelayedModelBuild(int delayMs) -// ^^^^^^^ definition local6 int delayMs - if (!allowModelBuildRequests) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#allowModelBuildRequests. - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "You cannot call `requestModelBuild` directly. Call `setData` instead to trigger a " - + "model refresh with new data."); - } - super.requestDelayedModelBuild(delayMs); -// ^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#super. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestDelayedModelBuild(). -// ^^^^^^^ reference local6 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected final void buildModels() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/Typed2EpoxyController#buildModels(). @Override protected final void buildModels() - if (!isBuildingModels()) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#isBuildingModels(). - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "You cannot call `buildModels` directly. Call `setData` instead to trigger a model " - + "refresh with new data."); - } - buildModels(data1, data2); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#buildModels(+1). -// ^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#data1. -// ^^^^^ reference com/airbnb/epoxy/Typed2EpoxyController#data2. - } - - protected abstract void buildModels(T data1, U data2); -// ^^^^^^^^^^^ definition com/airbnb/epoxy/Typed2EpoxyController#buildModels(+1). protected abstract void buildModels(T data1, U data2) -// ^ reference com/airbnb/epoxy/Typed2EpoxyController#[T] -// ^^^^^ definition local7 T data1 -// ^ reference com/airbnb/epoxy/Typed2EpoxyController#[U] -// ^^^^^ definition local8 U data2 -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/Typed3EpoxyController.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/Typed3EpoxyController.java deleted file mode 100644 index 9810b619e..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/Typed3EpoxyController.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.airbnb.epoxy; - -import android.os.Handler; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^^ reference android/os/Handler# - -/** - * This is a wrapper around {@link com.airbnb.epoxy.EpoxyController} to simplify how data is - * accessed. Use this if the data required to build your models is represented by three objects. - *

- * To use this, create a subclass typed with your data object. Then, call {@link #setData} - * whenever that data changes. This class will handle calling {@link #buildModels} with the - * latest data. - *

- * You should NOT call {@link #requestModelBuild()} directly. - * - * @see TypedEpoxyController - * @see Typed2EpoxyController - * @see Typed4EpoxyController - */ -public abstract class Typed3EpoxyController extends EpoxyController { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed3EpoxyController# public abstract class Typed3EpoxyController -// ^ definition com/airbnb/epoxy/Typed3EpoxyController#[T] T -// ^ definition com/airbnb/epoxy/Typed3EpoxyController#[U] U -// ^ definition com/airbnb/epoxy/Typed3EpoxyController#[V] V -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# - - private T data1; -// ^ reference com/airbnb/epoxy/Typed3EpoxyController#[T] -// ^^^^^ definition com/airbnb/epoxy/Typed3EpoxyController#data1. private T data1 - private U data2; -// ^ reference com/airbnb/epoxy/Typed3EpoxyController#[U] -// ^^^^^ definition com/airbnb/epoxy/Typed3EpoxyController#data2. private U data2 - private V data3; -// ^ reference com/airbnb/epoxy/Typed3EpoxyController#[V] -// ^^^^^ definition com/airbnb/epoxy/Typed3EpoxyController#data3. private V data3 - private boolean allowModelBuildRequests; -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed3EpoxyController#allowModelBuildRequests. private boolean allowModelBuildRequests - - public Typed3EpoxyController() { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed3EpoxyController#``(). public Typed3EpoxyController() - } - - public Typed3EpoxyController(Handler modelBuildingHandler, Handler diffingHandler) { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed3EpoxyController#``(+1). public Typed3EpoxyController(unresolved_type modelBuildingHandler, unresolved_type diffingHandler) -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^^ definition local0 unresolved_type modelBuildingHandler -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^ definition local1 unresolved_type diffingHandler - super(modelBuildingHandler, diffingHandler); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#``(+1). -// ^^^^^^^^^^^^^^^^^^^^ reference local0 -// ^^^^^^^^^^^^^^ reference local1 - } - - /** - * Call this with the latest data when you want models to be rebuilt. The data will be passed on - * to {@link #buildModels(Object, Object, Object)} - */ - public void setData(T data1, U data2, V data3) { -// ^^^^^^^ definition com/airbnb/epoxy/Typed3EpoxyController#setData(). public void setData(T data1, U data2, V data3) -// ^ reference com/airbnb/epoxy/Typed3EpoxyController#[T] -// ^^^^^ definition local2 T data1 -// ^ reference com/airbnb/epoxy/Typed3EpoxyController#[U] -// ^^^^^ definition local3 U data2 -// ^ reference com/airbnb/epoxy/Typed3EpoxyController#[V] -// ^^^^^ definition local4 V data3 - this.data1 = data1; -// ^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#data1. -// ^^^^^ reference local2 - this.data2 = data2; -// ^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#data2. -// ^^^^^ reference local3 - this.data3 = data3; -// ^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#data3. -// ^^^^^ reference local4 - allowModelBuildRequests = true; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#allowModelBuildRequests. - requestModelBuild(); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#requestModelBuild(). - allowModelBuildRequests = false; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#allowModelBuildRequests. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final void requestModelBuild() { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed3EpoxyController#requestModelBuild(). @Override public final void requestModelBuild() - if (!allowModelBuildRequests) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#allowModelBuildRequests. - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "You cannot call `requestModelBuild` directly. Call `setData` instead to trigger a " - + "model refresh with new data."); - } - super.requestModelBuild(); -// ^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#super. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestModelBuild(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void moveModel(int fromPosition, int toPosition) { -// ^^^^^^^^^ definition com/airbnb/epoxy/Typed3EpoxyController#moveModel(). @Override public void moveModel(int fromPosition, int toPosition) -// ^^^^^^^^^^^^ definition local5 int fromPosition -// ^^^^^^^^^^ definition local6 int toPosition - allowModelBuildRequests = true; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#allowModelBuildRequests. - super.moveModel(fromPosition, toPosition); -// ^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#super. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#moveModel(). -// ^^^^^^^^^^^^ reference local5 -// ^^^^^^^^^^ reference local6 - allowModelBuildRequests = false; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#allowModelBuildRequests. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void requestDelayedModelBuild(int delayMs) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed3EpoxyController#requestDelayedModelBuild(). @Override public void requestDelayedModelBuild(int delayMs) -// ^^^^^^^ definition local7 int delayMs - if (!allowModelBuildRequests) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#allowModelBuildRequests. - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "You cannot call `requestModelBuild` directly. Call `setData` instead to trigger a " - + "model refresh with new data."); - } - super.requestDelayedModelBuild(delayMs); -// ^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#super. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestDelayedModelBuild(). -// ^^^^^^^ reference local7 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected final void buildModels() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/Typed3EpoxyController#buildModels(). @Override protected final void buildModels() - if (!isBuildingModels()) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#isBuildingModels(). - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "You cannot call `buildModels` directly. Call `setData` instead to trigger a model " - + "refresh with new data."); - } - buildModels(data1, data2, data3); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#buildModels(+1). -// ^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#data1. -// ^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#data2. -// ^^^^^ reference com/airbnb/epoxy/Typed3EpoxyController#data3. - } - - protected abstract void buildModels(T data1, U data2, V data3); -// ^^^^^^^^^^^ definition com/airbnb/epoxy/Typed3EpoxyController#buildModels(+1). protected abstract void buildModels(T data1, U data2, V data3) -// ^ reference com/airbnb/epoxy/Typed3EpoxyController#[T] -// ^^^^^ definition local8 T data1 -// ^ reference com/airbnb/epoxy/Typed3EpoxyController#[U] -// ^^^^^ definition local9 U data2 -// ^ reference com/airbnb/epoxy/Typed3EpoxyController#[V] -// ^^^^^ definition local10 V data3 -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/Typed4EpoxyController.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/Typed4EpoxyController.java deleted file mode 100644 index cf333e58e..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/Typed4EpoxyController.java +++ /dev/null @@ -1,176 +0,0 @@ -package com.airbnb.epoxy; - -import android.os.Handler; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^^ reference android/os/Handler# - -/** - * This is a wrapper around {@link com.airbnb.epoxy.EpoxyController} to simplify how data is - * accessed. Use this if the data required to build your models is represented by four objects. - *

- * To use this, create a subclass typed with your data object. Then, call {@link #setData} - * whenever that data changes. This class will handle calling {@link #buildModels} with the - * latest data. - *

- * You should NOT call {@link #requestModelBuild()} directly. - * - * @see TypedEpoxyController - * @see Typed2EpoxyController - * @see Typed3EpoxyController - */ -public abstract class Typed4EpoxyController extends EpoxyController { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed4EpoxyController# public abstract class Typed4EpoxyController -// ^ definition com/airbnb/epoxy/Typed4EpoxyController#[T] T -// ^ definition com/airbnb/epoxy/Typed4EpoxyController#[U] U -// ^ definition com/airbnb/epoxy/Typed4EpoxyController#[V] V -// ^ definition com/airbnb/epoxy/Typed4EpoxyController#[W] W -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# - - private T data1; -// ^ reference com/airbnb/epoxy/Typed4EpoxyController#[T] -// ^^^^^ definition com/airbnb/epoxy/Typed4EpoxyController#data1. private T data1 - private U data2; -// ^ reference com/airbnb/epoxy/Typed4EpoxyController#[U] -// ^^^^^ definition com/airbnb/epoxy/Typed4EpoxyController#data2. private U data2 - private V data3; -// ^ reference com/airbnb/epoxy/Typed4EpoxyController#[V] -// ^^^^^ definition com/airbnb/epoxy/Typed4EpoxyController#data3. private V data3 - private W data4; -// ^ reference com/airbnb/epoxy/Typed4EpoxyController#[W] -// ^^^^^ definition com/airbnb/epoxy/Typed4EpoxyController#data4. private W data4 - private boolean allowModelBuildRequests; -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed4EpoxyController#allowModelBuildRequests. private boolean allowModelBuildRequests - - public Typed4EpoxyController() { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed4EpoxyController#``(). public Typed4EpoxyController() - } - - public Typed4EpoxyController(Handler modelBuildingHandler, Handler diffingHandler) { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed4EpoxyController#``(+1). public Typed4EpoxyController(unresolved_type modelBuildingHandler, unresolved_type diffingHandler) -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^^ definition local0 unresolved_type modelBuildingHandler -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^ definition local1 unresolved_type diffingHandler - super(modelBuildingHandler, diffingHandler); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#``(+1). -// ^^^^^^^^^^^^^^^^^^^^ reference local0 -// ^^^^^^^^^^^^^^ reference local1 - } - - /** - * Call this with the latest data when you want models to be rebuilt. The data will be passed on - * to {@link #buildModels(Object, Object, Object, Object)} - */ - public void setData(T data1, U data2, V data3, W data4) { -// ^^^^^^^ definition com/airbnb/epoxy/Typed4EpoxyController#setData(). public void setData(T data1, U data2, V data3, W data4) -// ^ reference com/airbnb/epoxy/Typed4EpoxyController#[T] -// ^^^^^ definition local2 T data1 -// ^ reference com/airbnb/epoxy/Typed4EpoxyController#[U] -// ^^^^^ definition local3 U data2 -// ^ reference com/airbnb/epoxy/Typed4EpoxyController#[V] -// ^^^^^ definition local4 V data3 -// ^ reference com/airbnb/epoxy/Typed4EpoxyController#[W] -// ^^^^^ definition local5 W data4 - this.data1 = data1; -// ^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#data1. -// ^^^^^ reference local2 - this.data2 = data2; -// ^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#data2. -// ^^^^^ reference local3 - this.data3 = data3; -// ^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#data3. -// ^^^^^ reference local4 - this.data4 = data4; -// ^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#data4. -// ^^^^^ reference local5 - allowModelBuildRequests = true; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#allowModelBuildRequests. - requestModelBuild(); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#requestModelBuild(). - allowModelBuildRequests = false; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#allowModelBuildRequests. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final void requestModelBuild() { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed4EpoxyController#requestModelBuild(). @Override public final void requestModelBuild() - if (!allowModelBuildRequests) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#allowModelBuildRequests. - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "You cannot call `requestModelBuild` directly. Call `setData` instead to trigger a " - + "model refresh with new data."); - } - super.requestModelBuild(); -// ^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#super. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestModelBuild(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void moveModel(int fromPosition, int toPosition) { -// ^^^^^^^^^ definition com/airbnb/epoxy/Typed4EpoxyController#moveModel(). @Override public void moveModel(int fromPosition, int toPosition) -// ^^^^^^^^^^^^ definition local6 int fromPosition -// ^^^^^^^^^^ definition local7 int toPosition - allowModelBuildRequests = true; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#allowModelBuildRequests. - super.moveModel(fromPosition, toPosition); -// ^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#super. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#moveModel(). -// ^^^^^^^^^^^^ reference local6 -// ^^^^^^^^^^ reference local7 - allowModelBuildRequests = false; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#allowModelBuildRequests. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void requestDelayedModelBuild(int delayMs) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/Typed4EpoxyController#requestDelayedModelBuild(). @Override public void requestDelayedModelBuild(int delayMs) -// ^^^^^^^ definition local8 int delayMs - if (!allowModelBuildRequests) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#allowModelBuildRequests. - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "You cannot call `requestModelBuild` directly. Call `setData` instead to trigger a " - + "model refresh with new data."); - } - super.requestDelayedModelBuild(delayMs); -// ^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#super. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestDelayedModelBuild(). -// ^^^^^^^ reference local8 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected final void buildModels() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/Typed4EpoxyController#buildModels(). @Override protected final void buildModels() - if (!isBuildingModels()) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#isBuildingModels(). - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "You cannot call `buildModels` directly. Call `setData` instead to trigger a model " - + "refresh with new data."); - } - buildModels(data1, data2, data3, data4); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#buildModels(+1). -// ^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#data1. -// ^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#data2. -// ^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#data3. -// ^^^^^ reference com/airbnb/epoxy/Typed4EpoxyController#data4. - } - - protected abstract void buildModels(T data1, U data2, V data3, W data4); -// ^^^^^^^^^^^ definition com/airbnb/epoxy/Typed4EpoxyController#buildModels(+1). protected abstract void buildModels(T data1, U data2, V data3, W data4) -// ^ reference com/airbnb/epoxy/Typed4EpoxyController#[T] -// ^^^^^ definition local9 T data1 -// ^ reference com/airbnb/epoxy/Typed4EpoxyController#[U] -// ^^^^^ definition local10 U data2 -// ^ reference com/airbnb/epoxy/Typed4EpoxyController#[V] -// ^^^^^ definition local11 V data3 -// ^ reference com/airbnb/epoxy/Typed4EpoxyController#[W] -// ^^^^^ definition local12 W data4 -} - diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/TypedEpoxyController.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/TypedEpoxyController.java deleted file mode 100644 index 3640a3f4c..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/TypedEpoxyController.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.airbnb.epoxy; - -import android.os.Handler; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^^ reference android/os/Handler# -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# - -/** - * This is a wrapper around {@link com.airbnb.epoxy.EpoxyController} to simplify how data is - * accessed. Use this if the data required to build your models is represented by a single object. - *

- * To use this, create a subclass typed with your data object. Then, call {@link #setData(Object)} - * whenever that data changes. This class will handle calling {@link #buildModels(Object)} with the - * latest data. - *

- * You should NOT call {@link #requestModelBuild()} directly. - * - * @see Typed2EpoxyController - * @see Typed3EpoxyController - * @see Typed4EpoxyController - */ -public abstract class TypedEpoxyController extends EpoxyController { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/TypedEpoxyController# public abstract class TypedEpoxyController -// ^ definition com/airbnb/epoxy/TypedEpoxyController#[T] T -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController# - private T currentData; -// ^ reference com/airbnb/epoxy/TypedEpoxyController#[T] -// ^^^^^^^^^^^ definition com/airbnb/epoxy/TypedEpoxyController#currentData. private T currentData - private boolean allowModelBuildRequests; -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/TypedEpoxyController#allowModelBuildRequests. private boolean allowModelBuildRequests - - public TypedEpoxyController() { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/TypedEpoxyController#``(). public TypedEpoxyController() - } - - public TypedEpoxyController(Handler modelBuildingHandler, Handler diffingHandler) { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/TypedEpoxyController#``(+1). public TypedEpoxyController(unresolved_type modelBuildingHandler, unresolved_type diffingHandler) -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^^^^^^ definition local0 unresolved_type modelBuildingHandler -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^ definition local1 unresolved_type diffingHandler - super(modelBuildingHandler, diffingHandler); -// ^^^^^ reference com/airbnb/epoxy/EpoxyController#``(+1). -// ^^^^^^^^^^^^^^^^^^^^ reference local0 -// ^^^^^^^^^^^^^^ reference local1 - } - - public final void setData(T data) { -// ^^^^^^^ definition com/airbnb/epoxy/TypedEpoxyController#setData(). public final void setData(T data) -// ^ reference com/airbnb/epoxy/TypedEpoxyController#[T] -// ^^^^ definition local2 T data - currentData = data; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/TypedEpoxyController#currentData. -// ^^^^ reference local2 - allowModelBuildRequests = true; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/TypedEpoxyController#allowModelBuildRequests. - requestModelBuild(); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/TypedEpoxyController#requestModelBuild(). - allowModelBuildRequests = false; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/TypedEpoxyController#allowModelBuildRequests. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public final void requestModelBuild() { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/TypedEpoxyController#requestModelBuild(). @Override public final void requestModelBuild() - if (!allowModelBuildRequests) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/TypedEpoxyController#allowModelBuildRequests. - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "You cannot call `requestModelBuild` directly. Call `setData` instead to trigger a " - + "model refresh with new data."); - } - super.requestModelBuild(); -// ^^^^^ reference com/airbnb/epoxy/TypedEpoxyController#super. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestModelBuild(). - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void moveModel(int fromPosition, int toPosition) { -// ^^^^^^^^^ definition com/airbnb/epoxy/TypedEpoxyController#moveModel(). @Override public void moveModel(int fromPosition, int toPosition) -// ^^^^^^^^^^^^ definition local3 int fromPosition -// ^^^^^^^^^^ definition local4 int toPosition - allowModelBuildRequests = true; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/TypedEpoxyController#allowModelBuildRequests. - super.moveModel(fromPosition, toPosition); -// ^^^^^ reference com/airbnb/epoxy/TypedEpoxyController#super. -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#moveModel(). -// ^^^^^^^^^^^^ reference local3 -// ^^^^^^^^^^ reference local4 - allowModelBuildRequests = false; -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/TypedEpoxyController#allowModelBuildRequests. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void requestDelayedModelBuild(int delayMs) { -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/TypedEpoxyController#requestDelayedModelBuild(). @Override public void requestDelayedModelBuild(int delayMs) -// ^^^^^^^ definition local5 int delayMs - if (!allowModelBuildRequests) { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/TypedEpoxyController#allowModelBuildRequests. - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "You cannot call `requestModelBuild` directly. Call `setData` instead to trigger a " - + "model refresh with new data."); - } - super.requestDelayedModelBuild(delayMs); -// ^^^^^ reference com/airbnb/epoxy/TypedEpoxyController#super. -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#requestDelayedModelBuild(). -// ^^^^^^^ reference local5 - } - - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - public final T getCurrentData() { -// ^ reference com/airbnb/epoxy/TypedEpoxyController#[T] -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/TypedEpoxyController#getCurrentData(). @Nullable public final T getCurrentData() - return currentData; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/TypedEpoxyController#currentData. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - protected final void buildModels() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/TypedEpoxyController#buildModels(). @Override protected final void buildModels() - if (!isBuildingModels()) { -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#isBuildingModels(). - throw new IllegalStateException( -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - "You cannot call `buildModels` directly. Call `setData` instead to trigger a model " - + "refresh with new data."); - } - buildModels(currentData); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/TypedEpoxyController#buildModels(+1). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/TypedEpoxyController#currentData. - } - - protected abstract void buildModels(T data); -// ^^^^^^^^^^^ definition com/airbnb/epoxy/TypedEpoxyController#buildModels(+1). protected abstract void buildModels(T data) -// ^ reference com/airbnb/epoxy/TypedEpoxyController#[T] -// ^^^^ definition local6 T data -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/UnboundedViewPool.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/UnboundedViewPool.kt deleted file mode 100644 index 51e44890d..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/UnboundedViewPool.kt +++ /dev/null @@ -1,114 +0,0 @@ -package com.airbnb.epoxy -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ - -import android.util.SparseArray -import androidx.recyclerview.widget.RecyclerView.RecycledViewPool -// ^^^^^^^^ reference androidx/ -import androidx.recyclerview.widget.RecyclerView.ViewHolder -// ^^^^^^^^ reference androidx/ -import java.util.LinkedList -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^ reference java/util/LinkedList# -import java.util.Queue -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^ reference java/util/Queue# - -/** - * Like its parent, UnboundedViewPool lets you share Views between multiple RecyclerViews. However - * there is no maximum number of recycled views that it will store. This usually ends up being - * optimal, barring any hard memory constraints, as RecyclerViews do not recycle more Views than - * they need. - */ -internal class UnboundedViewPool : RecycledViewPool() { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UnboundedViewPool# internal final class UnboundedViewPool -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UnboundedViewPool#``(). public constructor UnboundedViewPool() - - private val scrapHeaps = SparseArray>() -// ^^^^^^^^^^ definition com/airbnb/epoxy/UnboundedViewPool#scrapHeaps. private final val scrapHeaps: [ERROR : Type for SparseArray>()] -// ^^^^^^^^^^ definition com/airbnb/epoxy/UnboundedViewPool#getScrapHeaps(). private final val scrapHeaps: [ERROR : Type for SparseArray>()] -// ^^^^^ reference java/util/Queue# - - override fun clear() { -// ^^^^^ definition com/airbnb/epoxy/UnboundedViewPool#clear(). public open fun clear() - scrapHeaps.clear() -// ^^^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#scrapHeaps. -// ^^^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#getScrapHeaps(). - } - - override fun setMaxRecycledViews(viewType: Int, max: Int) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UnboundedViewPool#setMaxRecycledViews(). public open fun setMaxRecycledViews(viewType: kotlin.Int, max: kotlin.Int) -// ^^^^^^^^ definition com/airbnb/epoxy/UnboundedViewPool#setMaxRecycledViews().(viewType) value-parameter viewType: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^ definition com/airbnb/epoxy/UnboundedViewPool#setMaxRecycledViews().(max) value-parameter max: kotlin.Int -// ^^^ reference kotlin/Int# - throw UnsupportedOperationException( -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference kotlin/UnsupportedOperationException#``(+1). - "UnboundedViewPool does not support setting a maximum number of recycled views" - ) - } - - override fun getRecycledView(viewType: Int): ViewHolder? { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UnboundedViewPool#getRecycledView(). public open fun getRecycledView(viewType: kotlin.Int): [ERROR : ViewHolder]? -// ^^^^^^^^ definition com/airbnb/epoxy/UnboundedViewPool#getRecycledView().(viewType) value-parameter viewType: kotlin.Int -// ^^^ reference kotlin/Int# - val scrapHeap = scrapHeaps.get(viewType) -// ^^^^^^^^^ definition local0 val scrapHeap: [ERROR : ] -// ^^^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#scrapHeaps. -// ^^^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#getScrapHeaps(). -// ^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#getRecycledView().(viewType) - return scrapHeap?.poll() -// ^^^^^^^^^ reference local0 - } - - override fun putRecycledView(viewHolder: ViewHolder) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UnboundedViewPool#putRecycledView(). public open fun putRecycledView(viewHolder: [ERROR : ViewHolder]) -// ^^^^^^^^^^ definition com/airbnb/epoxy/UnboundedViewPool#putRecycledView().(viewHolder) value-parameter viewHolder: [ERROR : ViewHolder] - getScrapHeapForType(viewHolder.itemViewType).add(viewHolder) -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#getScrapHeapForType(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#putRecycledView().(viewHolder) -// ^^^ reference java/util/Queue#add(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#putRecycledView().(viewHolder) - } - - override fun getRecycledViewCount(viewType: Int): Int { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UnboundedViewPool#getRecycledViewCount(). public open fun getRecycledViewCount(viewType: kotlin.Int): kotlin.Int -// ^^^^^^^^ definition com/airbnb/epoxy/UnboundedViewPool#getRecycledViewCount().(viewType) value-parameter viewType: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^ reference kotlin/Int# - return scrapHeaps.get(viewType)?.size ?: 0 -// ^^^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#scrapHeaps. -// ^^^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#getScrapHeaps(). -// ^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#getRecycledViewCount().(viewType) - } - - private fun getScrapHeapForType(viewType: Int): Queue { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UnboundedViewPool#getScrapHeapForType(). private final fun getScrapHeapForType(viewType: kotlin.Int): java.util.Queue<[ERROR : ViewHolder]> -// ^^^^^^^^ definition com/airbnb/epoxy/UnboundedViewPool#getScrapHeapForType().(viewType) value-parameter viewType: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^ reference java/util/Queue# - var scrapHeap: Queue? = scrapHeaps.get(viewType) -// ^^^^^^^^^ definition local1 var scrapHeap: java.util.Queue<[ERROR : ViewHolder]>? -// ^^^^^ reference java/util/Queue# -// ^^^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#scrapHeaps. -// ^^^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#getScrapHeaps(). -// ^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#getScrapHeapForType().(viewType) - if (scrapHeap == null) { -// ^^^^^^^^^ reference local1 -// ^^ reference java/util/Queue#equals(). - scrapHeap = LinkedList() -// ^^^^^^^^^ reference local1 -// ^^^^^^^^^^ reference java/util/LinkedList#``(). - scrapHeaps.put(viewType, scrapHeap) -// ^^^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#scrapHeaps. -// ^^^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#getScrapHeaps(). -// ^^^^^^^^ reference com/airbnb/epoxy/UnboundedViewPool#getScrapHeapForType().(viewType) -// ^^^^^^^^^ reference local1 - } - return scrapHeap -// ^^^^^^^^^ reference local1 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/UpdateOp.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/UpdateOp.java deleted file mode 100644 index 26e7516c6..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/UpdateOp.java +++ /dev/null @@ -1,190 +0,0 @@ - -package com.airbnb.epoxy; - -import java.lang.annotation.Retention; -// ^^^^ reference java/ -// ^^^^ reference java/lang/ -// ^^^^^^^^^^ reference java/lang/annotation/ -// ^^^^^^^^^ reference java/lang/annotation/Retention# -import java.lang.annotation.RetentionPolicy; -// ^^^^ reference java/ -// ^^^^ reference java/lang/ -// ^^^^^^^^^^ reference java/lang/annotation/ -// ^^^^^^^^^^^^^^^ reference java/lang/annotation/RetentionPolicy# -import java.util.ArrayList; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^ reference java/util/ArrayList# - -import androidx.annotation.IntDef; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^ reference androidx/annotation/IntDef# -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# - -/** Defines an operation that makes a change to the epoxy model list. */ -class UpdateOp { -// ^^^^^^^^ definition com/airbnb/epoxy/UpdateOp# class UpdateOp - - @IntDef({ADD, REMOVE, UPDATE, MOVE}) -// ^^^^^^ reference androidx/annotation/IntDef# -// ^^^ reference com/airbnb/epoxy/UpdateOp#ADD. -// ^^^^^^ reference com/airbnb/epoxy/UpdateOp#REMOVE. -// ^^^^^^ reference com/airbnb/epoxy/UpdateOp#UPDATE. -// ^^^^ reference com/airbnb/epoxy/UpdateOp#MOVE. - @Retention(RetentionPolicy.SOURCE) -// ^^^^^^^^^ reference java/lang/annotation/Retention# -// ^^^^^^^^^^^^^^^ reference java/lang/annotation/RetentionPolicy# -// ^^^^^^ reference java/lang/annotation/RetentionPolicy#SOURCE. - @interface Type { -// ^^^^ definition com/airbnb/epoxy/UpdateOp#Type# @IntDef({ADD, REMOVE, UPDATE, MOVE}) @Retention(RetentionPolicy.SOURCE) @interface Type - } - - static final int ADD = 0; -// ^^^ definition com/airbnb/epoxy/UpdateOp#ADD. static final int ADD - static final int REMOVE = 1; -// ^^^^^^ definition com/airbnb/epoxy/UpdateOp#REMOVE. static final int REMOVE - static final int UPDATE = 2; -// ^^^^^^ definition com/airbnb/epoxy/UpdateOp#UPDATE. static final int UPDATE - static final int MOVE = 3; -// ^^^^ definition com/airbnb/epoxy/UpdateOp#MOVE. static final int MOVE - - @Type int type; -// ^^^^ reference com/airbnb/epoxy/UpdateOp#Type# -// ^^^^ definition com/airbnb/epoxy/UpdateOp#type. @Type int type - int positionStart; -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOp#positionStart. int positionStart - /** Holds the target position if this is a MOVE */ - int itemCount; -// ^^^^^^^^^ definition com/airbnb/epoxy/UpdateOp#itemCount. int itemCount - ArrayList> payloads; -//^^^^^^^^^ reference java/util/ArrayList# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^ definition com/airbnb/epoxy/UpdateOp#payloads. ArrayList> payloads - - private UpdateOp() { -// ^^^^^^^^ definition com/airbnb/epoxy/UpdateOp#``(). private UpdateOp() - } - - static UpdateOp instance(@Type int type, int positionStart, int itemCount, -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^^^^^^^ definition com/airbnb/epoxy/UpdateOp#instance(). static UpdateOp instance(int type, int positionStart, int itemCount, EpoxyModel payload) -// ^^^^ reference com/airbnb/epoxy/UpdateOp#Type# -// ^^^^ definition local0 @Type int type -// ^^^^^^^^^^^^^ definition local1 int positionStart -// ^^^^^^^^^ definition local2 int itemCount - @Nullable EpoxyModel payload) { -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition local3 @Nullable EpoxyModel payload - UpdateOp op = new UpdateOp(); -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^ definition local4 UpdateOp op -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#``(). - - op.type = type; -// ^^ reference local4 -// ^^^^ reference com/airbnb/epoxy/UpdateOp#type. -// ^^^^ reference local0 - op.positionStart = positionStart; -// ^^ reference local4 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. -// ^^^^^^^^^^^^^ reference local1 - op.itemCount = itemCount; -// ^^ reference local4 -// ^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#itemCount. -// ^^^^^^^^^ reference local2 - - op.addPayload(payload); -// ^^ reference local4 -// ^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#addPayload(). -// ^^^^^^^ reference local3 - - return op; -// ^^ reference local4 - } - - /** Returns the index one past the last item in the affected range. */ - int positionEnd() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOp#positionEnd(). int positionEnd() - return positionStart + itemCount; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. -// ^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#itemCount. - } - - boolean isAfter(int position) { -// ^^^^^^^ definition com/airbnb/epoxy/UpdateOp#isAfter(). boolean isAfter(int position) -// ^^^^^^^^ definition local5 int position - return position < positionStart; -// ^^^^^^^^ reference local5 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. - } - - boolean isBefore(int position) { -// ^^^^^^^^ definition com/airbnb/epoxy/UpdateOp#isBefore(). boolean isBefore(int position) -// ^^^^^^^^ definition local6 int position - return position >= positionEnd(); -// ^^^^^^^^ reference local6 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionEnd(). - } - - boolean contains(int position) { -// ^^^^^^^^ definition com/airbnb/epoxy/UpdateOp#contains(). boolean contains(int position) -// ^^^^^^^^ definition local7 int position - return position >= positionStart && position < positionEnd(); -// ^^^^^^^^ reference local7 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. -// ^^^^^^^^ reference local7 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionEnd(). - } - - void addPayload(@Nullable EpoxyModel payload) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOp#addPayload(). void addPayload(EpoxyModel payload) -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition local8 @Nullable EpoxyModel payload - if (payload == null) { -// ^^^^^^^ reference local8 - return; - } - - if (payloads == null) { -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#payloads. - // In most cases this won't be a batch update so we can expect just one payload - payloads = new ArrayList<>(1); -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#payloads. -// ^^^^^^^^^ reference java/util/ArrayList#``(). - } else if (payloads.size() == 1) { -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#payloads. -// ^^^^ reference java/util/ArrayList#size(). - // There are multiple payloads, but we don't know how big the batch will end up being. - // To prevent resizing the list many times we bump it to a medium size - payloads.ensureCapacity(10); -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#payloads. -// ^^^^^^^^^^^^^^ reference java/util/ArrayList#ensureCapacity(). - } - - payloads.add(payload); -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#payloads. -// ^^^ reference java/util/ArrayList#add(). -// ^^^^^^^ reference local8 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public String toString() { -// ^^^^^^ reference java/lang/String# -// ^^^^^^^^ definition com/airbnb/epoxy/UpdateOp#toString(). @Override public String toString() - return "UpdateOp{" - + "type=" + type -// ^^^^ reference com/airbnb/epoxy/UpdateOp#type. - + ", positionStart=" + positionStart -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. - + ", itemCount=" + itemCount -// ^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#itemCount. - + '}'; - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/UpdateOpHelper.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/UpdateOpHelper.java deleted file mode 100644 index 0603548a8..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/UpdateOpHelper.java +++ /dev/null @@ -1,397 +0,0 @@ -package com.airbnb.epoxy; - -import com.airbnb.epoxy.UpdateOp.Type; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^^^ reference com/airbnb/epoxy/UpdateOp#Type# - -import java.util.ArrayList; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^ reference java/util/ArrayList# -import java.util.List; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^ reference java/util/List# - -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# - -import static com.airbnb.epoxy.UpdateOp.ADD; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -import static com.airbnb.epoxy.UpdateOp.MOVE; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -import static com.airbnb.epoxy.UpdateOp.REMOVE; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -import static com.airbnb.epoxy.UpdateOp.UPDATE; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# - -/** Helper class to collect changes in a diff, batching when possible. */ -class UpdateOpHelper { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper# class UpdateOpHelper -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#``(). UpdateOpHelper() - final List opList = new ArrayList<>(); -// ^^^^ reference java/util/List# -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#opList. final List opList -// ^^^^^^^^^ reference java/util/ArrayList#``(+1). - // We have to be careful to update all item positions in the list when we - // do a MOVE. This adds some complexity. - // To do this we keep track of all moves and apply them to an item when we - // need the up to date position - final List moves = new ArrayList<>(); -// ^^^^ reference java/util/List# -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#moves. final List moves -// ^^^^^^^^^ reference java/util/ArrayList#``(+1). - private UpdateOp lastOp; -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#lastOp. private UpdateOp lastOp - private int numInsertions; -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#numInsertions. private int numInsertions - private int numInsertionBatches; -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#numInsertionBatches. private int numInsertionBatches - private int numRemovals; -// ^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#numRemovals. private int numRemovals - private int numRemovalBatches; -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#numRemovalBatches. private int numRemovalBatches - - void reset() { -// ^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#reset(). void reset() - opList.clear(); -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#opList. -// ^^^^^ reference java/util/List#clear(). - moves.clear(); -// ^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#moves. -// ^^^^^ reference java/util/List#clear(). - lastOp = null; -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. - numInsertions = 0; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#numInsertions. - numInsertionBatches = 0; -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#numInsertionBatches. - numRemovals = 0; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#numRemovals. - numRemovalBatches = 0; -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#numRemovalBatches. - } - - void add(int indexToInsert) { -// ^^^ definition com/airbnb/epoxy/UpdateOpHelper#add(). void add(int indexToInsert) -// ^^^^^^^^^^^^^ definition local0 int indexToInsert - add(indexToInsert, 1); -// ^^^ reference com/airbnb/epoxy/UpdateOpHelper#add(+1). -// ^^^^^^^^^^^^^ reference local0 - } - - void add(int startPosition, int itemCount) { -// ^^^ definition com/airbnb/epoxy/UpdateOpHelper#add(+1). void add(int startPosition, int itemCount) -// ^^^^^^^^^^^^^ definition local1 int startPosition -// ^^^^^^^^^ definition local2 int itemCount - numInsertions += itemCount; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#numInsertions. -// ^^^^^^^^^ reference local2 - - // We can append to a previously ADD batch if the new items are added anywhere in the - // range of the previous batch batch - boolean batchWithLast = isLastOp(ADD) -// ^^^^^^^^^^^^^ definition local3 boolean batchWithLast -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#isLastOp(). -// ^^^ reference com/airbnb/epoxy/UpdateOp#ADD. - && (lastOp.contains(startPosition) || lastOp.positionEnd() == startPosition); -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#contains(). -// ^^^^^^^^^^^^^ reference local1 -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionEnd(). -// ^^^^^^^^^^^^^ reference local1 - - if (batchWithLast) { -// ^^^^^^^^^^^^^ reference local3 - addItemsToLastOperation(itemCount, null); -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#addItemsToLastOperation(). -// ^^^^^^^^^ reference local2 - } else { - numInsertionBatches++; -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#numInsertionBatches. - addNewOperation(ADD, startPosition, itemCount); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#addNewOperation(). -// ^^^ reference com/airbnb/epoxy/UpdateOp#ADD. -// ^^^^^^^^^^^^^ reference local1 -// ^^^^^^^^^ reference local2 - } - } - - void update(int indexToChange) { -// ^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#update(). void update(int indexToChange) -// ^^^^^^^^^^^^^ definition local4 int indexToChange - update(indexToChange, null); -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#update(+1). -// ^^^^^^^^^^^^^ reference local4 - } - - void update(final int indexToChange, EpoxyModel payload) { -// ^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#update(+1). void update(int indexToChange, EpoxyModel payload) -// ^^^^^^^^^^^^^ definition local5 final int indexToChange -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition local6 EpoxyModel payload - if (isLastOp(UPDATE)) { -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#isLastOp(). -// ^^^^^^ reference com/airbnb/epoxy/UpdateOp#UPDATE. - if (lastOp.positionStart == indexToChange + 1) { -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. -// ^^^^^^^^^^^^^ reference local5 - // Change another item at the start of the batch range - addItemsToLastOperation(1, payload); -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#addItemsToLastOperation(). -// ^^^^^^^ reference local6 - lastOp.positionStart = indexToChange; -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. -// ^^^^^^^^^^^^^ reference local5 - } else if (lastOp.positionEnd() == indexToChange) { -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionEnd(). -// ^^^^^^^^^^^^^ reference local5 - // Add another item at the end of the batch range - addItemsToLastOperation(1, payload); -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#addItemsToLastOperation(). -// ^^^^^^^ reference local6 - } else if (lastOp.contains(indexToChange)) { -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#contains(). -// ^^^^^^^^^^^^^ reference local5 - // This item is already included in the existing batch range, so we don't add any items - // to the batch count, but we still need to add the new payload - addItemsToLastOperation(0, payload); -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#addItemsToLastOperation(). -// ^^^^^^^ reference local6 - } else { - // The item can't be batched with the previous update operation - addNewOperation(UPDATE, indexToChange, 1, payload); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#addNewOperation(+1). -// ^^^^^^ reference com/airbnb/epoxy/UpdateOp#UPDATE. -// ^^^^^^^^^^^^^ reference local5 -// ^^^^^^^ reference local6 - } - } else { - addNewOperation(UPDATE, indexToChange, 1, payload); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#addNewOperation(+1). -// ^^^^^^ reference com/airbnb/epoxy/UpdateOp#UPDATE. -// ^^^^^^^^^^^^^ reference local5 -// ^^^^^^^ reference local6 - } - } - - void remove(int indexToRemove) { -// ^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#remove(). void remove(int indexToRemove) -// ^^^^^^^^^^^^^ definition local7 int indexToRemove - remove(indexToRemove, 1); -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#remove(+1). -// ^^^^^^^^^^^^^ reference local7 - } - - void remove(int startPosition, int itemCount) { -// ^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#remove(+1). void remove(int startPosition, int itemCount) -// ^^^^^^^^^^^^^ definition local8 int startPosition -// ^^^^^^^^^ definition local9 int itemCount - numRemovals += itemCount; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#numRemovals. -// ^^^^^^^^^ reference local9 - - boolean batchWithLast = false; -// ^^^^^^^^^^^^^ definition local10 boolean batchWithLast - if (isLastOp(REMOVE)) { -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#isLastOp(). -// ^^^^^^ reference com/airbnb/epoxy/UpdateOp#REMOVE. - if (lastOp.positionStart == startPosition) { -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. -// ^^^^^^^^^^^^^ reference local8 - // Remove additional items at the end of the batch range - batchWithLast = true; -// ^^^^^^^^^^^^^ reference local10 - } else if (lastOp.isAfter(startPosition) -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^^^^ reference com/airbnb/epoxy/UpdateOp#isAfter(). -// ^^^^^^^^^^^^^ reference local8 - && startPosition + itemCount >= lastOp.positionStart) { -// ^^^^^^^^^^^^^ reference local8 -// ^^^^^^^^^ reference local9 -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. - // Removes additional items at the start and (possibly) end of the batch - lastOp.positionStart = startPosition; -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#positionStart. -// ^^^^^^^^^^^^^ reference local8 - batchWithLast = true; -// ^^^^^^^^^^^^^ reference local10 - } - } - - if (batchWithLast) { -// ^^^^^^^^^^^^^ reference local10 - addItemsToLastOperation(itemCount, null); -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#addItemsToLastOperation(). -// ^^^^^^^^^ reference local9 - } else { - numRemovalBatches++; -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#numRemovalBatches. - addNewOperation(REMOVE, startPosition, itemCount); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#addNewOperation(). -// ^^^^^^ reference com/airbnb/epoxy/UpdateOp#REMOVE. -// ^^^^^^^^^^^^^ reference local8 -// ^^^^^^^^^ reference local9 - } - } - - private boolean isLastOp(@UpdateOp.Type int updateType) { -// ^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#isLastOp(). private boolean isLastOp(int updateType) -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^^^ reference com/airbnb/epoxy/UpdateOp#Type# -// ^^^^^^^^^^ definition local11 @Type int updateType - return lastOp != null && lastOp.type == updateType; -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^ reference com/airbnb/epoxy/UpdateOp#type. -// ^^^^^^^^^^ reference local11 - } - - private void addNewOperation(@Type int type, int position, int itemCount) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#addNewOperation(). private void addNewOperation(int type, int position, int itemCount) -// ^^^^ reference com/airbnb/epoxy/UpdateOp#Type# -// ^^^^ definition local12 @Type int type -// ^^^^^^^^ definition local13 int position -// ^^^^^^^^^ definition local14 int itemCount - addNewOperation(type, position, itemCount, null); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#addNewOperation(+1). -// ^^^^ reference local12 -// ^^^^^^^^ reference local13 -// ^^^^^^^^^ reference local14 - } - - private void addNewOperation(@Type int type, int position, int itemCount, -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#addNewOperation(+1). private void addNewOperation(int type, int position, int itemCount, EpoxyModel payload) -// ^^^^ reference com/airbnb/epoxy/UpdateOp#Type# -// ^^^^ definition local15 @Type int type -// ^^^^^^^^ definition local16 int position -// ^^^^^^^^^ definition local17 int itemCount - @Nullable EpoxyModel payload) { -// ^^^^^^^^ reference androidx/annotation/Nullable# -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition local18 @Nullable EpoxyModel payload - lastOp = UpdateOp.instance(type, position, itemCount, payload); -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#instance(). -// ^^^^ reference local15 -// ^^^^^^^^ reference local16 -// ^^^^^^^^^ reference local17 -// ^^^^^^^ reference local18 - opList.add(lastOp); -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#opList. -// ^^^ reference java/util/List#add(). -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. - } - - private void addItemsToLastOperation(int numItemsToAdd, EpoxyModel payload) { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#addItemsToLastOperation(). private void addItemsToLastOperation(int numItemsToAdd, EpoxyModel payload) -// ^^^^^^^^^^^^^ definition local19 int numItemsToAdd -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^ definition local20 EpoxyModel payload - lastOp.itemCount += numItemsToAdd; -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#itemCount. -// ^^^^^^^^^^^^^ reference local19 - lastOp.addPayload(payload); -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. -// ^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#addPayload(). -// ^^^^^^^ reference local20 - } - - void move(int from, int to) { -// ^^^^ definition com/airbnb/epoxy/UpdateOpHelper#move(). void move(int from, int to) -// ^^^^ definition local21 int from -// ^^ definition local22 int to - // We can't batch moves - lastOp = null; -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#lastOp. - UpdateOp op = UpdateOp.instance(MOVE, from, to, null); -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^ definition local23 UpdateOp op -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp# -// ^^^^^^^^ reference com/airbnb/epoxy/UpdateOp#instance(). -// ^^^^ reference com/airbnb/epoxy/UpdateOp#MOVE. -// ^^^^ reference local21 -// ^^ reference local22 - opList.add(op); -// ^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#opList. -// ^^^ reference java/util/List#add(). -// ^^ reference local23 - moves.add(op); -// ^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#moves. -// ^^^ reference java/util/List#add(). -// ^^ reference local23 - } - - int getNumRemovals() { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#getNumRemovals(). int getNumRemovals() - return numRemovals; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#numRemovals. - } - - boolean hasRemovals() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#hasRemovals(). boolean hasRemovals() - return numRemovals > 0; -// ^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#numRemovals. - } - - int getNumInsertions() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#getNumInsertions(). int getNumInsertions() - return numInsertions; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#numInsertions. - } - - boolean hasInsertions() { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#hasInsertions(). boolean hasInsertions() - return numInsertions > 0; -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#numInsertions. - } - - int getNumMoves() { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#getNumMoves(). int getNumMoves() - return moves.size(); -// ^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#moves. -// ^^^^ reference java/util/List#size(). - } - - int getNumInsertionBatches() { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#getNumInsertionBatches(). int getNumInsertionBatches() - return numInsertionBatches; -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#numInsertionBatches. - } - - int getNumRemovalBatches() { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/UpdateOpHelper#getNumRemovalBatches(). int getNumRemovalBatches() - return numRemovalBatches; -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/UpdateOpHelper#numRemovalBatches. - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ViewHolderState.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/ViewHolderState.java deleted file mode 100644 index c261d47f6..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ViewHolderState.java +++ /dev/null @@ -1,425 +0,0 @@ - -package com.airbnb.epoxy; - -import android.os.Parcel; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^ reference android/os/Parcel# -import android.os.Parcelable; -// ^^^^^^^ reference android/ -// ^^ reference android/os/ -// ^^^^^^^^^^ reference android/os/Parcelable# -import android.util.SparseArray; -// ^^^^^^^ reference android/ -// ^^^^ reference android/util/ -// ^^^^^^^^^^^ reference android/util/SparseArray# -import android.view.View; -// ^^^^^^^ reference android/ -// ^^^^ reference android/view/ -// ^^^^ reference android/view/View# - -import com.airbnb.epoxy.ViewHolderState.ViewState; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState# -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState# -import com.airbnb.viewmodeladapter.R; -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^^^^^^^^^^^^ reference com/airbnb/viewmodeladapter/ -// ^ reference com/airbnb/viewmodeladapter/R# - -import java.util.Collection; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^ reference java/util/Collection# - -import androidx.collection.LongSparseArray; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/collection/ -// ^^^^^^^^^^^^^^^ reference androidx/collection/LongSparseArray# - -/** - * Helper for {@link EpoxyAdapter} to store the state of Views in the adapter. This is useful for - * saving changes due to user input, such as text input or selection, when a view is scrolled off - * screen or if the adapter needs to be recreated. - *

- * This saved state is separate from the state represented by a {@link EpoxyModel}, which should - * represent the more permanent state of the data shown in the view. This class stores transient - * state that is added to the View after it is bound to a {@link EpoxyModel}. For example, a {@link - * EpoxyModel} may inflate and bind an EditText and then be responsible for styling it and attaching - * listeners. If the user then inputs text, scrolls the view offscreen and then scrolls back, this - * class will preserve the inputted text without the {@link EpoxyModel} needing to be aware of its - * existence. - *

- * This class relies on the adapter having stable ids, as the state of a view is mapped to the id of - * the {@link EpoxyModel}. - */ -@SuppressWarnings("WeakerAccess") -//^^^^^^^^^^^^^^^ reference java/lang/SuppressWarnings# -class ViewHolderState extends LongSparseArray implements Parcelable { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewHolderState# @SuppressWarnings("WeakerAccess") class ViewHolderState -// ^^^^^^^^^^^^^^^ reference androidx/collection/LongSparseArray# -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState# -// ^^^^^^^^^^ reference _root_/ - ViewHolderState() { -//^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#``(). ViewHolderState() - } - - private ViewHolderState(int size) { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#``(+1). private ViewHolderState(int size) -// ^^^^ definition local0 int size - super(size); -// ^^^^^ reference androidx/collection/LongSparseArray#``(+1). -// ^^^^ reference local0 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int describeContents() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#describeContents(). @Override public int describeContents() - return 0; - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void writeToParcel(Parcel dest, int flags) { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#writeToParcel(). @Override public void writeToParcel(unresolved_type dest, int flags) -// ^^^^^^ reference _root_/ -// ^^^^ definition local1 unresolved_type dest -// ^^^^^ definition local2 int flags - final int size = size(); -// ^^^^ definition local3 final int size -// ^^^^ reference androidx/collection/LongSparseArray#size(). - dest.writeInt(size); -// ^^^^ reference local1 -// ^^^^^^^^ reference writeInt# -// ^^^^ reference local3 - for (int i = 0; i < size; i++) { -// ^ definition local4 int i -// ^ reference local4 -// ^^^^ reference local3 -// ^ reference local4 - dest.writeLong(keyAt(i)); -// ^^^^ reference local1 -// ^^^^^^^^^ reference writeLong# -// ^^^^^ reference androidx/collection/LongSparseArray#keyAt(). -// ^ reference local4 - dest.writeParcelable(valueAt(i), 0); -// ^^^^ reference local1 -// ^^^^^^^^^^^^^^^ reference writeParcelable# -// ^^^^^^^ reference androidx/collection/LongSparseArray#valueAt(). -// ^ reference local4 - } - } - - public static final Creator CREATOR = new Creator() { -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState# -// ^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#CREATOR. public static final unresolved_type CREATOR - - public ViewHolderState[] newArray(int size) { - return new ViewHolderState[size]; - } - - public ViewHolderState createFromParcel(Parcel source) { - int size = source.readInt(); - ViewHolderState state = new ViewHolderState(size); - - for (int i = 0; i < size; i++) { - long key = source.readLong(); - ViewState value = source.readParcelable(ViewState.class.getClassLoader()); - state.put(key, value); - } - - return state; - } - }; - - public boolean hasStateForHolder(EpoxyViewHolder holder) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#hasStateForHolder(). public boolean hasStateForHolder(EpoxyViewHolder holder) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local5 EpoxyViewHolder holder - return get(holder.getItemId()) != null; -// ^^^ reference androidx/collection/LongSparseArray#get(). -// ^^^^^^ reference local5 -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getItemId# - } - - public void save(Collection holders) { -// ^^^^ definition com/airbnb/epoxy/ViewHolderState#save(). public void save(Collection holders) -// ^^^^^^^^^^ reference java/util/Collection# -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^ definition local6 Collection holders - for (EpoxyViewHolder holder : holders) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local7 EpoxyViewHolder holder -// ^^^^^^^ reference local6 - save(holder); -// ^^^^ reference com/airbnb/epoxy/ViewHolderState#save(+1). -// ^^^^^^ reference local7 - } - } - - /** Save the state of the view bound to the given holder. */ - public void save(EpoxyViewHolder holder) { -// ^^^^ definition com/airbnb/epoxy/ViewHolderState#save(+1). public void save(EpoxyViewHolder holder) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local8 EpoxyViewHolder holder - if (!holder.getModel().shouldSaveViewState()) { -// ^^^^^^ reference local8 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#shouldSaveViewState(). - return; - } - - // Reuse the previous sparse array if available. We shouldn't need to clear it since the - // exact same view type is being saved to it, which - // should have identical ids for all its views, and will just overwrite the previous state. - ViewState state = get(holder.getItemId()); -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState# -// ^^^^^ definition local9 ViewState state -// ^^^ reference androidx/collection/LongSparseArray#get(). -// ^^^^^^ reference local8 -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getItemId# - if (state == null) { -// ^^^^^ reference local9 - state = new ViewState(); -// ^^^^^ reference local9 -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState#``(). - } - - state.save(holder.itemView); -// ^^^^^ reference local9 -// ^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState#save(). -// ^^^^^^ reference local8 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView# - put(holder.getItemId(), state); -// ^^^ reference androidx/collection/LongSparseArray#put(). -// ^^^^^^ reference local8 -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getItemId# -// ^^^^^ reference local9 - } - - /** - * If a state was previously saved for this view holder via {@link #save} it will be restored - * here. - */ - public void restore(EpoxyViewHolder holder) { -// ^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#restore(). public void restore(EpoxyViewHolder holder) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^ definition local10 EpoxyViewHolder holder - if (!holder.getModel().shouldSaveViewState()) { -// ^^^^^^ reference local10 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#shouldSaveViewState(). - return; - } - - ViewState state = get(holder.getItemId()); -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState# -// ^^^^^ definition local11 ViewState state -// ^^^ reference androidx/collection/LongSparseArray#get(). -// ^^^^^^ reference local10 -// ^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getItemId# - if (state != null) { -// ^^^^^ reference local11 - state.restore(holder.itemView); -// ^^^^^ reference local11 -// ^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState#restore(). -// ^^^^^^ reference local10 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#itemView# - } else { - // The first time a model is bound it won't have previous state. We need to make sure - // the view is reset to its initial state to clear any changes from previously bound models - holder.restoreInitialViewState(); -// ^^^^^^ reference local10 -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#restoreInitialViewState(). - } - } - - /** - * A wrapper around a sparse array as a helper to save the state of a view. This also adds - * parcelable support. - */ - public static class ViewState extends SparseArray implements Parcelable { -// ^^^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#ViewState# public static class ViewState -// ^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^ reference _root_/ - - ViewState() { -// ^^^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#ViewState#``(). ViewState() - } - - private ViewState(int size, int[] keys, Parcelable[] values) { -// ^^^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#ViewState#``(+1). private ViewState(int size, int[] keys, unresolved_type[] values) -// ^^^^ definition local12 int size -// ^^^^ definition local13 int[] keys -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local14 unresolved_type[] values - super(size); -// ^^^^ reference local12 - for (int i = 0; i < size; ++i) { -// ^ definition local15 int i -// ^ reference local15 -// ^^^^ reference local12 -// ^ reference local15 - put(keys[i], values[i]); -// ^^^ reference androidx/collection/LongSparseArray#put(). -// ^^^^ reference local13 -// ^ reference local15 -// ^^^^^^ reference local14 -// ^ reference local15 - } - } - - public void save(View view) { -// ^^^^ definition com/airbnb/epoxy/ViewHolderState#ViewState#save(). public void save(unresolved_type view) -// ^^^^ reference _root_/ -// ^^^^ definition local16 unresolved_type view - int originalId = view.getId(); -// ^^^^^^^^^^ definition local17 int originalId -// ^^^^ reference local16 -// ^^^^^ reference getId# - setIdIfNoneExists(view); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState#setIdIfNoneExists(). -// ^^^^ reference local16 - - view.saveHierarchyState(this); -// ^^^^ reference local16 -// ^^^^^^^^^^^^^^^^^^ reference saveHierarchyState# - view.setId(originalId); -// ^^^^ reference local16 -// ^^^^^ reference setId# -// ^^^^^^^^^^ reference local17 - } - - public void restore(View view) { -// ^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#ViewState#restore(). public void restore(unresolved_type view) -// ^^^^ reference _root_/ -// ^^^^ definition local18 unresolved_type view - int originalId = view.getId(); -// ^^^^^^^^^^ definition local19 int originalId -// ^^^^ reference local18 -// ^^^^^ reference getId# - setIdIfNoneExists(view); -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState#setIdIfNoneExists(). -// ^^^^ reference local18 - - view.restoreHierarchyState(this); -// ^^^^ reference local18 -// ^^^^^^^^^^^^^^^^^^^^^ reference restoreHierarchyState# - view.setId(originalId); -// ^^^^ reference local18 -// ^^^^^ reference setId# -// ^^^^^^^^^^ reference local19 - } - - /** - * If a view hasn't had an id set we need to set a temporary one in order to save state, since a - * view won't save its state unless it has an id. The view's id is also the key into the sparse - * array for its saved state, so the temporary one we choose just needs to be consistent between - * saving and restoring state. - */ - private void setIdIfNoneExists(View view) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#ViewState#setIdIfNoneExists(). private void setIdIfNoneExists(unresolved_type view) -// ^^^^ reference _root_/ -// ^^^^ definition local20 unresolved_type view - if (view.getId() == View.NO_ID) { -// ^^^^ reference local20 -// ^^^^^ reference getId# -// ^^^^ reference _root_/ -// ^^^^^ reference NO_ID# - view.setId(R.id.view_model_state_saving_id); -// ^^^^ reference local20 -// ^^^^^ reference setId# -// ^ reference R/ -// ^^ reference R/id# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference R/id#view_model_state_saving_id# - } - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int describeContents() { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#ViewState#describeContents(). @Override public int describeContents() - return 0; - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void writeToParcel(Parcel parcel, int flags) { -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#ViewState#writeToParcel(). @Override public void writeToParcel(unresolved_type parcel, int flags) -// ^^^^^^ reference _root_/ -// ^^^^^^ definition local21 unresolved_type parcel -// ^^^^^ definition local22 int flags - int size = size(); -// ^^^^ definition local23 int size -// ^^^^ reference androidx/collection/LongSparseArray#size(). - int[] keys = new int[size]; -// ^^^^ definition local24 int[] keys -// ^^^^ reference local23 - Parcelable[] values = new Parcelable[size]; -// ^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local25 unresolved_type[] values -// ^^^^^^^^^^ reference _root_/ -// ^^^^ reference local23 - for (int i = 0; i < size; ++i) { -// ^ definition local26 int i -// ^ reference local26 -// ^^^^ reference local23 -// ^ reference local26 - keys[i] = keyAt(i); -// ^^^^ reference local24 -// ^ reference local26 -// ^^^^^ reference androidx/collection/LongSparseArray#keyAt(). -// ^ reference local26 - values[i] = valueAt(i); -// ^^^^^^ reference local25 -// ^ reference local26 -// ^^^^^^^ reference androidx/collection/LongSparseArray#valueAt(). -// ^ reference local26 - } - parcel.writeInt(size); -// ^^^^^^ reference local21 -// ^^^^^^^^ reference writeInt# -// ^^^^ reference local23 - parcel.writeIntArray(keys); -// ^^^^^^ reference local21 -// ^^^^^^^^^^^^^ reference writeIntArray# -// ^^^^ reference local24 - parcel.writeParcelableArray(values, flags); -// ^^^^^^ reference local21 -// ^^^^^^^^^^^^^^^^^^^^ reference writeParcelableArray# -// ^^^^^^ reference local25 -// ^^^^^ reference local22 - } - - public static final Creator CREATOR = -// ^^^^^^^ reference _root_/ -// ^^^^^^^^^ reference com/airbnb/epoxy/ViewHolderState#ViewState# -// ^^^^^^^ definition com/airbnb/epoxy/ViewHolderState#ViewState#CREATOR. public static final unresolved_type CREATOR - new Parcelable.ClassLoaderCreator() { - @Override - public ViewState createFromParcel(Parcel source, ClassLoader loader) { - int size = source.readInt(); - int[] keys = new int[size]; - source.readIntArray(keys); - Parcelable[] values = source.readParcelableArray(loader); - return new ViewState(size, keys, values); - } - - @Override - public ViewState createFromParcel(Parcel source) { - return createFromParcel(source, null); - } - - @Override - public ViewState[] newArray(int size) { - return new ViewState[size]; - } - }; - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ViewTypeManager.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/ViewTypeManager.java deleted file mode 100644 index 671950005..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/ViewTypeManager.java +++ /dev/null @@ -1,183 +0,0 @@ -package com.airbnb.epoxy; - -import java.util.HashMap; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^ reference java/util/HashMap# -import java.util.Map; -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^ reference java/util/Map# - -import androidx.annotation.Nullable; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^ reference androidx/annotation/Nullable# -import androidx.annotation.VisibleForTesting; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^^^^^^^^^^^^ reference androidx/annotation/VisibleForTesting# - -class ViewTypeManager { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewTypeManager# class ViewTypeManager -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewTypeManager#``(). ViewTypeManager() - private static final Map VIEW_TYPE_MAP = new HashMap<>(); -// ^^^ reference java/util/Map# -// ^^^^^ reference java/lang/Class# -// ^^^^^^^ reference java/lang/Integer# -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewTypeManager#VIEW_TYPE_MAP. private static final Map VIEW_TYPE_MAP -// ^^^^^^^ reference java/util/HashMap#``(+2). - /** - * The last model that had its view type looked up. This is stored so in most cases we can quickly - * look up what view type belongs to which model. - */ - @Nullable -// ^^^^^^^^ reference androidx/annotation/Nullable# - EpoxyModel lastModelForViewTypeLookup; -//^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewTypeManager#lastModelForViewTypeLookup. @Nullable EpoxyModel lastModelForViewTypeLookup - - /** - * The type map is static so that models of the same class share the same views across different - * adapters. This is useful for view recycling when the adapter instance changes, or when there - * are multiple adapters. For testing purposes though it is good to be able to clear the map so we - * don't carry over values across tests. - */ - @VisibleForTesting -// ^^^^^^^^^^^^^^^^^ reference androidx/annotation/VisibleForTesting# - void resetMapForTesting() { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewTypeManager#resetMapForTesting(). @VisibleForTesting void resetMapForTesting() - VIEW_TYPE_MAP.clear(); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#VIEW_TYPE_MAP. -// ^^^^^ reference java/util/Map#clear(). - } - - int getViewTypeAndRememberModel(EpoxyModel model) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewTypeManager#getViewTypeAndRememberModel(). int getViewTypeAndRememberModel(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local0 EpoxyModel model - lastModelForViewTypeLookup = model; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#lastModelForViewTypeLookup. -// ^^^^^ reference local0 - return getViewType(model); -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#getViewType(). -// ^^^^^ reference local0 - } - - static int getViewType(EpoxyModel model) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/ViewTypeManager#getViewType(). static int getViewType(EpoxyModel model) -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local1 EpoxyModel model - int defaultViewType = model.getViewType(); -// ^^^^^^^^^^^^^^^ definition local2 int defaultViewType -// ^^^^^ reference local1 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#getViewType(). - if (defaultViewType != 0) { -// ^^^^^^^^^^^^^^^ reference local2 - return defaultViewType; -// ^^^^^^^^^^^^^^^ reference local2 - } - - // If a model does not specify a view type then we generate a value to use for models of that - // class. - Class modelClass = model.getClass(); -// ^^^^^ reference java/lang/Class# -// ^^^^^^^^^^ definition local3 Class modelClass -// ^^^^^ reference local1 -// ^^^^^^^^ reference java/lang/Object#getClass(). - - Integer viewType = VIEW_TYPE_MAP.get(modelClass); -// ^^^^^^^ reference java/lang/Integer# -// ^^^^^^^^ definition local4 Integer viewType -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#VIEW_TYPE_MAP. -// ^^^ reference java/util/Map#get(). -// ^^^^^^^^^^ reference local3 - - if (viewType == null) { -// ^^^^^^^^ reference local4 - viewType = -VIEW_TYPE_MAP.size() - 1; -// ^^^^^^^^ reference local4 -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#VIEW_TYPE_MAP. -// ^^^^ reference java/util/Map#size(). - VIEW_TYPE_MAP.put(modelClass, viewType); -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#VIEW_TYPE_MAP. -// ^^^ reference java/util/Map#put(). -// ^^^^^^^^^^ reference local3 -// ^^^^^^^^ reference local4 - } - - return viewType; -// ^^^^^^^^ reference local4 - } - - /** - * Find the model that has the given view type so we can create a view for that model. In most - * cases this value is a layout resource and we could simply inflate it, but to support {@link - * EpoxyModelWithView} we can't assume the view type is a layout. In that case we need to lookup - * the model so we can ask it to create a new view for itself. - *

- * To make this efficient, we rely on the RecyclerView implementation detail that {@link - * BaseEpoxyAdapter#getItemViewType(int)} is called immediately before {@link - * BaseEpoxyAdapter#onCreateViewHolder(android.view.ViewGroup, int)} . We cache the last model - * that had its view type looked up, and unless that implementation changes we expect to have a - * very fast lookup for the correct model. - *

- * To be safe, we fallback to searching through all models for a view type match. This is slow and - * shouldn't be needed, but is a guard against recyclerview behavior changing. - */ - EpoxyModel getModelForViewType(BaseEpoxyAdapter adapter, int viewType) { -//^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ViewTypeManager#getModelForViewType(). EpoxyModel getModelForViewType(BaseEpoxyAdapter adapter, int viewType) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter# -// ^^^^^^^ definition local5 BaseEpoxyAdapter adapter -// ^^^^^^^^ definition local6 int viewType - if (lastModelForViewTypeLookup != null -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#lastModelForViewTypeLookup. - && getViewType(lastModelForViewTypeLookup) == viewType) { -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#getViewType(). -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#lastModelForViewTypeLookup. -// ^^^^^^^^ reference local6 - // We expect this to be a hit 100% of the time - return lastModelForViewTypeLookup; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#lastModelForViewTypeLookup. - } - - adapter.onExceptionSwallowed( -// ^^^^^^^ reference local5 -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#onExceptionSwallowed(). - new IllegalStateException("Last model did not match expected view type")); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). - - // To be extra safe in case RecyclerView implementation details change... - for (EpoxyModel model : adapter.getCurrentModels()) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^^^^^ definition local7 EpoxyModel model -// ^^^^^^^ reference local5 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyAdapter#getCurrentModels(). - if (getViewType(model) == viewType) { -// ^^^^^^^^^^^ reference com/airbnb/epoxy/ViewTypeManager#getViewType(). -// ^^^^^ reference local7 -// ^^^^^^^^ reference local6 - return model; -// ^^^^^ reference local7 - } - } - - // Check for the hidden model. - HiddenEpoxyModel hiddenEpoxyModel = new HiddenEpoxyModel(); -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HiddenEpoxyModel# -// ^^^^^^^^^^^^^^^^ definition local8 HiddenEpoxyModel hiddenEpoxyModel -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/HiddenEpoxyModel#``(). - if (viewType == hiddenEpoxyModel.getViewType()) { -// ^^^^^^^^ reference local6 -// ^^^^^^^^^^^^^^^^ reference local8 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#getViewType(). - return hiddenEpoxyModel; -// ^^^^^^^^^^^^^^^^ reference local8 - } - - throw new IllegalStateException("Could not find model for view type: " + viewType); -// ^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalStateException#``(+1). -// ^^^^^^^^ reference local6 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/VisibilityState.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/VisibilityState.java deleted file mode 100644 index 5557f5241..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/VisibilityState.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.airbnb.epoxy; - -import java.lang.annotation.Retention; -// ^^^^ reference java/ -// ^^^^ reference java/lang/ -// ^^^^^^^^^^ reference java/lang/annotation/ -// ^^^^^^^^^ reference java/lang/annotation/Retention# -import java.lang.annotation.RetentionPolicy; -// ^^^^ reference java/ -// ^^^^ reference java/lang/ -// ^^^^^^^^^^ reference java/lang/annotation/ -// ^^^^^^^^^^^^^^^ reference java/lang/annotation/RetentionPolicy# - -import androidx.annotation.IntDef; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^^ reference androidx/annotation/IntDef# - -public final class VisibilityState { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/VisibilityState# public final class VisibilityState -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/VisibilityState#``(). public VisibilityState() - - @Retention(RetentionPolicy.SOURCE) -// ^^^^^^^^^ reference java/lang/annotation/Retention# -// ^^^^^^^^^^^^^^^ reference java/lang/annotation/RetentionPolicy# -// ^^^^^^ reference java/lang/annotation/RetentionPolicy#SOURCE. - @IntDef({VISIBLE, -// ^^^^^^ reference androidx/annotation/IntDef# -// ^^^^^^^ reference com/airbnb/epoxy/VisibilityState#VISIBLE. - INVISIBLE, -// ^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState#INVISIBLE. - FOCUSED_VISIBLE, -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState#FOCUSED_VISIBLE. - UNFOCUSED_VISIBLE, -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState#UNFOCUSED_VISIBLE. - FULL_IMPRESSION_VISIBLE, -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState#FULL_IMPRESSION_VISIBLE. - PARTIAL_IMPRESSION_VISIBLE, -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState#PARTIAL_IMPRESSION_VISIBLE. - PARTIAL_IMPRESSION_INVISIBLE}) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/VisibilityState#PARTIAL_IMPRESSION_INVISIBLE. - public @interface Visibility { -// ^^^^^^^^^^ definition com/airbnb/epoxy/VisibilityState#Visibility# @Retention(RetentionPolicy.SOURCE) @IntDef({VISIBLE, INVISIBLE, FOCUSED_VISIBLE, UNFOCUSED_VISIBLE, FULL_IMPRESSION_VISIBLE, PARTIAL_IMPRESSION_VISIBLE, PARTIAL_IMPRESSION_INVISIBLE}) public @interface Visibility - } - - /** - * Event triggered when a Component enters the Visible Range. This happens when at least a pixel - * of the Component is visible. - */ - public static final int VISIBLE = 0; -// ^^^^^^^ definition com/airbnb/epoxy/VisibilityState#VISIBLE. public static final int VISIBLE - - /** - * Event triggered when a Component becomes invisible. This is the same with exiting the Visible - * Range, the Focused Range and the Full Impression Range. All the code that needs to be executed - * when a component leaves any of these ranges should be written in the handler for this event. - */ - public static final int INVISIBLE = 1; -// ^^^^^^^^^ definition com/airbnb/epoxy/VisibilityState#INVISIBLE. public static final int INVISIBLE - - /** - * Event triggered when a Component enters the Focused Range. This happens when either the - * Component occupies at least half of the viewport or, if the Component is smaller than half of - * the viewport, when the it is fully visible. - */ - public static final int FOCUSED_VISIBLE = 2; -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/VisibilityState#FOCUSED_VISIBLE. public static final int FOCUSED_VISIBLE - - /** - * Event triggered when a Component exits the Focused Range. The Focused Range is defined as at - * least half of the viewport or, if the Component is smaller than half of the viewport, when the - * it is fully visible. - */ - public static final int UNFOCUSED_VISIBLE = 3; -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/VisibilityState#UNFOCUSED_VISIBLE. public static final int UNFOCUSED_VISIBLE - - /** - * Event triggered when a Component enters the Full Impression Range. This happens, for instance - * in the case of a vertical RecyclerView, when both the top and bottom edges of the component - * become visible. - */ - public static final int FULL_IMPRESSION_VISIBLE = 4; -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/VisibilityState#FULL_IMPRESSION_VISIBLE. public static final int FULL_IMPRESSION_VISIBLE - - /** - * Event triggered when a Component enters the Partial Impression Range. This happens, for - * instance in the case of a vertical RecyclerView, when the percentage of the visible area is - * at least the specified threshold. The threshold can be set in - * {@link EpoxyVisibilityTracker#setPartialImpressionThresholdPercentage(int)}. - */ - public static final int PARTIAL_IMPRESSION_VISIBLE = 5; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/VisibilityState#PARTIAL_IMPRESSION_VISIBLE. public static final int PARTIAL_IMPRESSION_VISIBLE - - /** - * Event triggered when a Component exits the Partial Impression Range. This happens, for - * instance in the case of a vertical RecyclerView, when the percentage of the visible area is - * less than a specified threshold. The threshold can be set in - * {@link EpoxyVisibilityTracker#setPartialImpressionThresholdPercentage(int)}. - */ - public static final int PARTIAL_IMPRESSION_INVISIBLE = 6; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/VisibilityState#PARTIAL_IMPRESSION_INVISIBLE. public static final int PARTIAL_IMPRESSION_INVISIBLE -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener.java b/tests/snapshots/src/main/generated/com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener.java deleted file mode 100644 index c41b49b08..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.airbnb.epoxy; - -import android.widget.CompoundButton; -// ^^^^^^^ reference android/ -// ^^^^^^ reference android/widget/ -// ^^^^^^^^^^^^^^ reference android/widget/CompoundButton# -import android.widget.CompoundButton.OnCheckedChangeListener; -// ^^^^^^^ reference android/ -// ^^^^^^ reference android/widget/ -// ^^^^^^^^^^^^^^ reference android/widget/CompoundButton/ -// ^^^^^^^^^^^^^^^^^^^^^^^ reference android/widget/CompoundButton/OnCheckedChangeListener# - -import androidx.recyclerview.widget.RecyclerView; -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/ -// ^^^^^^ reference androidx/recyclerview/widget/ -// ^^^^^^^^^^^^ reference androidx/recyclerview/widget/RecyclerView# - -/** - * Used in the generated models to transform normal checked change listener to model - * checked change. - */ -public class WrappedEpoxyModelCheckedChangeListener, V> -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener# public class WrappedEpoxyModelCheckedChangeListener, V> -// ^ definition com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#[T] T extends EpoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel# -// ^ definition com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#[V] V - implements OnCheckedChangeListener { -// ^^^^^^^^^^^^^^^^^^^^^^^ reference _root_/ - - private final OnModelCheckedChangeListener originalCheckedChangeListener; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/OnModelCheckedChangeListener# -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#[T] -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#[V] -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#originalCheckedChangeListener. private final OnModelCheckedChangeListener originalCheckedChangeListener - - public WrappedEpoxyModelCheckedChangeListener( -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#``(). public WrappedEpoxyModelCheckedChangeListener(OnModelCheckedChangeListener checkedListener) - OnModelCheckedChangeListener checkedListener -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/OnModelCheckedChangeListener# -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#[T] -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#[V] -// ^^^^^^^^^^^^^^^ definition local0 OnModelCheckedChangeListener checkedListener - ) { - if (checkedListener == null) { -// ^^^^^^^^^^^^^^^ reference local0 - throw new IllegalArgumentException("Checked change listener cannot be null"); -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference java/lang/IllegalArgumentException#``(+1). - } - - this.originalCheckedChangeListener = checkedListener; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#originalCheckedChangeListener. -// ^^^^^^^^^^^^^^^ reference local0 - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public void onCheckedChanged(CompoundButton button, boolean isChecked) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#onCheckedChanged(). @Override public void onCheckedChanged(unresolved_type button, boolean isChecked) -// ^^^^^^^^^^^^^^ reference _root_/ -// ^^^^^^ definition local1 unresolved_type button -// ^^^^^^^^^ definition local2 boolean isChecked - EpoxyViewHolder epoxyHolder = ListenersUtils.getEpoxyHolderForChildView(button); -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder# -// ^^^^^^^^^^^ definition local3 EpoxyViewHolder epoxyHolder -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ListenersUtils# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ListenersUtils#getEpoxyHolderForChildView(). -// ^^^^^^ reference local1 - if (epoxyHolder == null) { -// ^^^^^^^^^^^ reference local3 - // Initial binding can trigger the checked changed listener when the checked value is set. - // The view is not attached at this point so the holder can't be looked up, and in any case - // it is generally better to not trigger a callback for the binding anyway, since it isn't - // a user action. - // - // https://github.com/airbnb/epoxy/issues/797 - return; - } - - final int adapterPosition = epoxyHolder.getAdapterPosition(); -// ^^^^^^^^^^^^^^^ definition local4 final int adapterPosition -// ^^^^^^^^^^^ reference local3 -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getAdapterPosition# - if (adapterPosition != RecyclerView.NO_POSITION) { -// ^^^^^^^^^^^^^^^ reference local4 -// ^^^^^^^^^^^^ reference _root_/ -// ^^^^^^^^^^^ reference NO_POSITION# - originalCheckedChangeListener -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#originalCheckedChangeListener. - .onChecked((T) epoxyHolder.getModel(), (V) epoxyHolder.objectToBind(), button, -// ^^^^^^^^^ reference com/airbnb/epoxy/OnModelCheckedChangeListener#onChecked(). -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#[T] -// ^^^^^^^^^^^ reference local3 -// ^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#getModel(). -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#[V] -// ^^^^^^^^^^^ reference local3 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyViewHolder#objectToBind(). -// ^^^^^^ reference local1 - isChecked, adapterPosition); -// ^^^^^^^^^ reference local2 -// ^^^^^^^^^^^^^^^ reference local4 - } - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public boolean equals(Object o) { -// ^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#equals(). @Override public boolean equals(Object o) -// ^^^^^^ reference java/lang/Object# -// ^ definition local5 Object o - if (this == o) { -// ^ reference local5 - return true; - } - if (!(o instanceof WrappedEpoxyModelCheckedChangeListener)) { -// ^ reference local5 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener# - return false; - } - - WrappedEpoxyModelCheckedChangeListener -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener# - that = (WrappedEpoxyModelCheckedChangeListener) o; -// ^^^^ definition local6 WrappedEpoxyModelCheckedChangeListener that -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener# -// ^ reference local5 - - return originalCheckedChangeListener.equals(that.originalCheckedChangeListener); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#originalCheckedChangeListener. -// ^^^^^^ reference java/lang/Object#equals(). -// ^^^^ reference local6 -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#originalCheckedChangeListener. - } - - @Override -// ^^^^^^^^ reference java/lang/Override# - public int hashCode() { -// ^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#hashCode(). @Override public int hashCode() - return originalCheckedChangeListener.hashCode(); -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelCheckedChangeListener#originalCheckedChangeListener. -// ^^^^^^^^ reference java/lang/Object#hashCode(). - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/WrappedEpoxyModelClickListener.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/WrappedEpoxyModelClickListener.kt deleted file mode 100644 index 6267b34cd..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/WrappedEpoxyModelClickListener.kt +++ /dev/null @@ -1,342 +0,0 @@ -package com.airbnb.epoxy -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ - -import android.view.View -import android.view.View.OnClickListener -import android.view.View.OnLongClickListener -import android.view.ViewGroup -import androidx.recyclerview.widget.RecyclerView -// ^^^^^^^^ reference androidx/ - -/** - * Used in the generated models to transform normal view click listeners to model click - * listeners. - */ -class WrappedEpoxyModelClickListener, V> : OnClickListener, OnLongClickListener { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener# public final class WrappedEpoxyModelClickListener -// ^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#[T] -// ^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#[V] - // Save the original click listener to call back to when clicked. - // This also lets us call back to the original hashCode and equals methods - private val originalClickListener: OnModelClickListener? -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalClickListener. private final val originalClickListener: [ERROR : OnModelClickListener]? -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalClickListener(). private final val originalClickListener: [ERROR : OnModelClickListener]? -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#[T] -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#[V] - private val originalLongClickListener: OnModelLongClickListener? -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalLongClickListener. private final val originalLongClickListener: [ERROR : OnModelLongClickListener]? -// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalLongClickListener(). private final val originalLongClickListener: [ERROR : OnModelLongClickListener]? -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#[T] -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#[V] - - constructor(clickListener: OnModelClickListener?) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#``(). public constructor WrappedEpoxyModelClickListener(clickListener: [ERROR : OnModelClickListener]?) -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#``().(clickListener) value-parameter clickListener: [ERROR : OnModelClickListener]? -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#[T] -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#[V] - requireNotNull(clickListener) { -// ^^^^^^^^^^^^^^ reference kotlin/PreconditionsKt#requireNotNull(+1). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#``().(clickListener) - "Click listener cannot be null" - } - - this.originalClickListener = clickListener -// ^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener# -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalClickListener. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalClickListener(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#``().(clickListener) - originalLongClickListener = null -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalLongClickListener. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalLongClickListener(). - } - - constructor(clickListener: OnModelLongClickListener?) { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#``(+1). public constructor WrappedEpoxyModelClickListener(clickListener: [ERROR : OnModelLongClickListener]?) -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#``(+1).(clickListener) value-parameter clickListener: [ERROR : OnModelLongClickListener]? -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#[T] -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#[V] - requireNotNull(clickListener) { -// ^^^^^^^^^^^^^^ reference kotlin/PreconditionsKt#requireNotNull(+1). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#``(+1).(clickListener) - "Click listener cannot be null" - } - - this.originalLongClickListener = clickListener -// ^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener# -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalLongClickListener. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalLongClickListener(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#``(+1).(clickListener) - originalClickListener = null -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalClickListener. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalClickListener(). - } - - override fun onClick(view: View) { -// ^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#onClick(). public open fun onClick(view: [ERROR : View]) -// ^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#onClick().(view) value-parameter view: [ERROR : View] - val modelInfo = getClickedModelInfo(view) ?: return -// ^^^^^^^^^ definition local0 val modelInfo: com.airbnb.epoxy.WrappedEpoxyModelClickListener.ClickedModelInfo -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getClickedModelInfo(). -// ^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#onClick().(view) - - @Suppress("UNCHECKED_CAST") -// ^^^^^^^^ reference kotlin/Suppress#``(). - originalClickListener?.onClick( -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalClickListener. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalClickListener(). - modelInfo.model as T, -// ^^^^^^^^^ reference local0 -// ^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#model. -// ^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#getModel(). -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#[T] - modelInfo.boundObject as V, -// ^^^^^^^^^ reference local0 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#boundObject. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#getBoundObject(). -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#[V] - view, -// ^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#onClick().(view) - modelInfo.adapterPosition -// ^^^^^^^^^ reference local0 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#adapterPosition. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#getAdapterPosition(). - ) ?: error("Original click listener is null") -// ^^^^^ reference kotlin/PreconditionsKt#error(). - } - - override fun onLongClick(view: View): Boolean { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#onLongClick(). public open fun onLongClick(view: [ERROR : View]): kotlin.Boolean -// ^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#onLongClick().(view) value-parameter view: [ERROR : View] -// ^^^^^^^ reference kotlin/Boolean# - val modelInfo = getClickedModelInfo(view) ?: return false -// ^^^^^^^^^ definition local1 val modelInfo: com.airbnb.epoxy.WrappedEpoxyModelClickListener.ClickedModelInfo -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getClickedModelInfo(). -// ^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#onLongClick().(view) - - @Suppress("UNCHECKED_CAST") -// ^^^^^^^^ reference kotlin/Suppress#``(). - return originalLongClickListener?.onLongClick( -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalLongClickListener. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalLongClickListener(). - modelInfo.model as T, -// ^^^^^^^^^ reference local1 -// ^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#model. -// ^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#getModel(). -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#[T] - modelInfo.boundObject as V, -// ^^^^^^^^^ reference local1 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#boundObject. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#getBoundObject(). -// ^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#[V] - view, -// ^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#onLongClick().(view) - modelInfo.adapterPosition -// ^^^^^^^^^ reference local1 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#adapterPosition. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#getAdapterPosition(). - ) ?: error("Original long click listener is null") -// ^^^^^ reference kotlin/PreconditionsKt#error(). - } - - private fun getClickedModelInfo(view: View): ClickedModelInfo? { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#getClickedModelInfo(). private final fun getClickedModelInfo(view: [ERROR : View]): com.airbnb.epoxy.WrappedEpoxyModelClickListener.ClickedModelInfo? -// ^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#getClickedModelInfo().(view) value-parameter view: [ERROR : View] -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo# - val epoxyHolder = ListenersUtils.getEpoxyHolderForChildView(view) -// ^^^^^^^^^^^ definition local2 val epoxyHolder: kotlin.Nothing -// ^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getClickedModelInfo().(view) - ?: error("Could not find RecyclerView holder for clicked view") -// ^^^^^ reference kotlin/PreconditionsKt#error(). - - val adapterPosition = epoxyHolder.adapterPosition -// ^^^^^^^^^^^^^^^ definition local3 val adapterPosition: [ERROR : Type for epoxyHolder.adapterPosition] -// ^^^^^^^^^^^ reference local2 - if (adapterPosition == RecyclerView.NO_POSITION) return null -// ^^^^^^^^^^^^^^^ reference local3 - - val boundObject = epoxyHolder.objectToBind() -// ^^^^^^^^^^^ definition local4 val boundObject: [ERROR : Type for epoxyHolder.objectToBind()] -// ^^^^^^^^^^^ reference local2 - - val holderToUse = if (boundObject is ModelGroupHolder) { -// ^^^^^^^^^^^ definition local5 val holderToUse: kotlin.Nothing -// ^^^^^^^^^^^ reference local4 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/ModelGroupHolder# - // For a model group the clicked view could belong to any of the nested models in the group. - // We check the viewholder of each model to see if the clicked view is in that hierarchy - // in order to figure out which model it belongs to. - // If it doesn't match any of the nested models then it could be set by the top level - // parent model. - boundObject.viewHolders -// ^^^^^^^^^^^ reference local4 - .firstOrNull { view in it.itemView.allViewsInHierarchy } -// ^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getClickedModelInfo().(view) - ?: epoxyHolder -// ^^^^^^^^^^^ reference local2 - } else { - epoxyHolder -// ^^^^^^^^^^^ reference local2 - } - - // We return the holder and position because since we may be returning a nested group - // holder the callee cannot use that to get the adapter position of the main model. - return ClickedModelInfo( -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#``(). - holderToUse.model, -// ^^^^^^^^^^^ reference local5 - adapterPosition, -// ^^^^^^^^^^^^^^^ reference local3 - holderToUse.objectToBind() -// ^^^^^^^^^^^ reference local5 - ) - } - - private class ClickedModelInfo( -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo# private final class ClickedModelInfo -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#``(). public constructor ClickedModelInfo(model: [ERROR : EpoxyModel<*>], adapterPosition: kotlin.Int, boundObject: kotlin.Any) - val model: EpoxyModel<*>, -// ^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#model. public final val model: [ERROR : EpoxyModel<*>] -// ^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#getModel(). public final val model: [ERROR : EpoxyModel<*>] -// ^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#``().(model) value-parameter model: [ERROR : EpoxyModel<*>] - val adapterPosition: Int, -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#adapterPosition. public final val adapterPosition: kotlin.Int -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#getAdapterPosition(). public final val adapterPosition: kotlin.Int -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#``().(adapterPosition) value-parameter adapterPosition: kotlin.Int -// ^^^ reference kotlin/Int# - val boundObject: Any -// ^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#boundObject. public final val boundObject: kotlin.Any -// ^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#getBoundObject(). public final val boundObject: kotlin.Any -// ^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#ClickedModelInfo#``().(boundObject) value-parameter boundObject: kotlin.Any -// ^^^ reference kotlin/Any# - ) - - /** - * Returns a sequence of this View plus any and all children, recursively. - */ - private val View.allViewsInHierarchy: Sequence -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#allViewsInHierarchy. private final val [ERROR : View].allViewsInHierarchy: kotlin.sequences.Sequence<[ERROR : View]> -// ^^^^^^^^ reference kotlin/sequences/Sequence# - get() { -// ^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#getAllViewsInHierarchy(). private final fun [ERROR : View].(): kotlin.sequences.Sequence<[ERROR : View]> - return if (this is ViewGroup) { -// ^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#allViewsInHierarchy. - children.flatMap { - sequenceOf(it) + if (it is ViewGroup) it.allViewsInHierarchy else emptySequence() - }.plus(this) -// ^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#allViewsInHierarchy. - } else { - sequenceOf(this) -// ^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#allViewsInHierarchy. - } - } - - /** Returns a [Sequence] over the child views in this view group. */ - internal val ViewGroup.children: Sequence -// ^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#children. internal final val [ERROR : ViewGroup].children: kotlin.sequences.Sequence<[ERROR : View]> -// ^^^^^^^^ reference kotlin/sequences/Sequence# - get() = object : Sequence { -// ^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#getChildren(). internal final fun [ERROR : ViewGroup].(): kotlin.sequences.Sequence<[ERROR : View]> -// ^^^^^^^^ reference kotlin/sequences/Sequence# - override fun iterator() = this@children.iterator() -// ^^^^^^^^ definition local6 public open fun iterator(): [ERROR : ] -// ^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#children. - } - - /** Returns a [MutableIterator] over the views in this view group. */ - internal operator fun ViewGroup.iterator() = object : MutableIterator { -// ^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#iterator(). internal final operator fun [ERROR : ViewGroup].iterator(): kotlin.collections.MutableIterator<[ERROR : View]> -// ^^^^^^^^^^^^^^^ reference kotlin/collections/MutableIterator# - private var index = 0 -// ^^^^^ definition local7 private final var index: kotlin.Int -// ^^^^^ definition local8 private final var index: kotlin.Int -// ^^^^^ definition local9 private final var index: kotlin.Int - override fun hasNext() = index < childCount -// ^^^^^^^ definition local10 public open fun hasNext(): [ERROR : Error function type] -// ^^^^^ reference local7 -// ^^^^^ reference local8 -// ^^^^^ reference local9 - override fun next() = getChildAt(index++) ?: throw IndexOutOfBoundsException() -// ^^^^ definition local11 public open fun next(): kotlin.Nothing -// ^^^^^ reference local7 -// ^^^^^ reference local8 -// ^^^^^ reference local9 -// ^^ reference kotlin/Int#inc(). - override fun remove() = removeViewAt(--index) -// ^^^^^^ definition local12 public open fun remove(): [ERROR : ] -// ^^ reference kotlin/Int#dec(). -// ^^^^^ reference local7 -// ^^^^^ reference local8 -// ^^^^^ reference local9 - } - - override fun equals(other: Any?): Boolean { -// ^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#equals(). public open fun equals(other: kotlin.Any?): kotlin.Boolean -// ^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#equals().(other) value-parameter other: kotlin.Any? -// ^^^ reference kotlin/Any# -// ^^^^^^^ reference kotlin/Boolean# - if (this === other) { -// ^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener# -// ^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#equals().(other) - return true - } - - if (other !is WrappedEpoxyModelClickListener<*, *>) { -// ^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#equals().(other) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener# - return false - } - - if (if (originalClickListener != null) { -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalClickListener. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalClickListener(). - originalClickListener != other.originalClickListener -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalClickListener. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalClickListener(). -// ^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#equals().(other) -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalClickListener. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalClickListener(). - } else { - other.originalClickListener != null -// ^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#equals().(other) -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalClickListener. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalClickListener(). - } - ) { - return false - } - return if (originalLongClickListener != null) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalLongClickListener. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalLongClickListener(). - originalLongClickListener == other.originalLongClickListener -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalLongClickListener. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalLongClickListener(). -// ^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#equals().(other) -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalLongClickListener. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalLongClickListener(). - } else { - other.originalLongClickListener == null -// ^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#equals().(other) -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalLongClickListener. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalLongClickListener(). - } - } - - override fun hashCode(): Int { -// ^^^^^^^^ definition com/airbnb/epoxy/WrappedEpoxyModelClickListener#hashCode(). public open fun hashCode(): kotlin.Int -// ^^^ reference kotlin/Int# - var result = originalClickListener?.hashCode() ?: 0 -// ^^^^^^ definition local13 var result: kotlin.Int -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalClickListener. -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalClickListener(). - result = 31 * result + (originalLongClickListener?.hashCode() ?: 0) -// ^^^^^^ reference local13 -// ^ reference kotlin/Int#times(+3). -// ^^^^^^ reference local13 -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#originalLongClickListener. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/WrappedEpoxyModelClickListener#getOriginalLongClickListener(). - return result -// ^^^^^^ reference local13 - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/EpoxyModelPreloader.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/EpoxyModelPreloader.kt deleted file mode 100644 index dfa8707c8..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/EpoxyModelPreloader.kt +++ /dev/null @@ -1,306 +0,0 @@ -package com.airbnb.epoxy.preload -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^ reference com/airbnb/epoxy/preload/ - -import android.view.View -import com.airbnb.epoxy.EpoxyModel -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ - -/** - * Describes how view content for an EpoxyModel should be preloaded. - * - * @param T The type of EpoxyModel that this preloader applies to - * @param U The type of view metadata to provide to the request builder. - * @param P The type of [PreloadRequestHolder] that will execute the preload request - */ -abstract class EpoxyModelPreloader, U : ViewMetadata?, P : PreloadRequestHolder>( -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader# public abstract class EpoxyModelPreloader -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#``(). public constructor EpoxyModelPreloader(modelType: java.lang.Class, preloadableViewIds: kotlin.collections.List) -// ^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#[T] -// ^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#[U] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# - - val modelType: Class, -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#modelType. public final val modelType: java.lang.Class -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#getModelType(). public final val modelType: java.lang.Class -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#``().(modelType) value-parameter modelType: java.lang.Class -// ^^^^^ reference java/lang/Class# -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#[T] - - /** - * A list of view ids, one for each view that should be preloaded. - * This should be left empty if the EpoxyModel's type uses the [Preloadable] interface. - */ - val preloadableViewIds: List -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#preloadableViewIds. public final val preloadableViewIds: kotlin.collections.List -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#getPreloadableViewIds(). public final val preloadableViewIds: kotlin.collections.List -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#``().(preloadableViewIds) value-parameter preloadableViewIds: kotlin.collections.List -// ^^^^ reference kotlin/collections/List# -// ^^^ reference kotlin/Int# -) { - - /** - * An optional signature to differentiate views within the same model. This is useful if your EpoxyModel can contain varying amounts of preloadable views, - * or preloadable views of varying sizes. - * - * By default the model's class, span size, and layout resource, are used to differentiate views. This signature allows additional differentiation. - * For example, if your EpoxyModel shows an preloadable view that varies between portrait or landscape, this orientation will affect the view dimensions. - * In this case you could return a boolean here to differentiate the two cases so that the preloaded data has the correct orientation. - * - * The returned object can be anything, but it must implement [Object.hashCode] - */ - open fun viewSignature(epoxyModel: T): Any? = null -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#viewSignature(). public open fun viewSignature(epoxyModel: T): kotlin.Any? -// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#viewSignature().(epoxyModel) value-parameter epoxyModel: T -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#[T] -// ^^^ reference kotlin/Any# - - /** - * Provide optional metadata about a view. This can be used in [EpoxyModelPreloader.buildRequest] - * - * A preload request works best if it exactly matches the actual request (in order to match cache keys exactly) - * Things such as request transformations, thumbnails, or crop type can affect the cache key. - * If your preloadable view is configurable you can capture those options via this metadata. - */ - abstract fun buildViewMetadata(view: View): U -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#buildViewMetadata(). public abstract fun buildViewMetadata(view: [ERROR : View]): U -// ^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#buildViewMetadata().(view) value-parameter view: [ERROR : View] -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#[U] - - /** - * Start a preload request with the given target. - * - * @param epoxyModel The EpoxyModel whose content is being preloaded. - * @param preloadTarget The target to ues to create and store the request. - * @param viewData Information about the view that will hold the preloaded content. - */ - abstract fun startPreload( -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#startPreload(). public abstract fun startPreload(epoxyModel: T, preloadTarget: P, viewData: com.airbnb.epoxy.preload.ViewData) - epoxyModel: T, -// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#startPreload().(epoxyModel) value-parameter epoxyModel: T -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#[T] - preloadTarget: P, -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#startPreload().(preloadTarget) value-parameter preloadTarget: P -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#[P] - viewData: ViewData -// ^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#startPreload().(viewData) value-parameter viewData: com.airbnb.epoxy.preload.ViewData -// ^^^^^^^^ reference com/airbnb/epoxy/preload/ViewData# -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#[U] - ) - - companion object { -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion# public companion object - - /** - * Helper to create a [EpoxyModelPreloader]. - * - * @param viewSignature see [EpoxyModelPreloader.viewSignature] - * @param preloadableViewIds see [EpoxyModelPreloader.preloadableViewIds] - * @param viewMetadata see [EpoxyModelPreloader.buildViewMetadata] - * @param doPreload see [EpoxyModelPreloader.startPreload] - */ - inline fun , P : PreloadRequestHolder> with( -// ^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with().[T] -// ^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with().[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# -// ^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(). public final inline fun with(preloadableViewIds: kotlin.collections.List = ..., noinline doPreload: (epoxyModel: T, preloadTarget: P, viewData: com.airbnb.epoxy.preload.ViewData) -> kotlin.Unit): com.airbnb.epoxy.preload.EpoxyModelPreloader - preloadableViewIds: List = emptyList(), -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with().(preloadableViewIds) value-parameter preloadableViewIds: kotlin.collections.List = ... -// ^^^^ reference kotlin/collections/List# -// ^^^ reference kotlin/Int# -// ^^^^^^^^^ reference kotlin/collections/CollectionsKt#emptyList(). - noinline doPreload: (epoxyModel: T, preloadTarget: P, viewData: ViewData) -> Unit -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with().(doPreload) value-parameter noinline doPreload: (epoxyModel: T, preloadTarget: P, viewData: com.airbnb.epoxy.preload.ViewData) -> kotlin.Unit -// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with().epoxyModel. val epoxyModel: T -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with().[T] -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with().preloadTarget. val preloadTarget: P -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with().[P] -// ^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with().viewData. val viewData: com.airbnb.epoxy.preload.ViewData -// ^^^^^^^^ reference com/airbnb/epoxy/preload/ViewData# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^^^^ reference kotlin/Unit# - ): EpoxyModelPreloader = -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with().[T] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with().[P] - with( -// ^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1). - preloadableViewIds, -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with().(preloadableViewIds) - viewMetadata = { ViewMetadata.getDefault(it) }, -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).(viewMetadata) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata#Companion# -// ^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata#Companion#getDefault(). -// ^^ reference local0 - viewSignature = { null }, -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).(viewSignature) - doPreload = doPreload -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).(doPreload) -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with().(doPreload) - ) - - /** - * Helper to create a [EpoxyModelPreloader]. - * - * @param viewSignature see [EpoxyModelPreloader.viewSignature] - * @param preloadableViewIds see [EpoxyModelPreloader.preloadableViewIds] - * @param viewMetadata see [EpoxyModelPreloader.buildViewMetadata] - * @param doPreload see [EpoxyModelPreloader.startPreload] - */ - inline fun , U : ViewMetadata?, P : PreloadRequestHolder> with( -// ^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).[T] -// ^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).[U] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# -// ^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1). public final inline fun with(preloadableViewIds: kotlin.collections.List = ..., noinline viewMetadata: ([ERROR : View]) -> U, noinline viewSignature: (T) -> kotlin.Any? = ..., noinline doPreload: (epoxyModel: T, preloadTarget: P, viewData: com.airbnb.epoxy.preload.ViewData) -> kotlin.Unit): com.airbnb.epoxy.preload.EpoxyModelPreloader - preloadableViewIds: List = emptyList(), -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).(preloadableViewIds) value-parameter preloadableViewIds: kotlin.collections.List = ... -// ^^^^ reference kotlin/collections/List# -// ^^^ reference kotlin/Int# -// ^^^^^^^^^ reference kotlin/collections/CollectionsKt#emptyList(). - noinline viewMetadata: (View) -> U, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).(viewMetadata) value-parameter noinline viewMetadata: ([ERROR : View]) -> U -// ^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).``. val : T -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).[U] - noinline viewSignature: (T) -> Any? = { _ -> null }, -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).(viewSignature) value-parameter noinline viewSignature: (T) -> kotlin.Any? = ... -// ^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).``. val : T -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).[T] -// ^^^ reference kotlin/Any# -// ^ definition local1 value-parameter : T - noinline doPreload: (epoxyModel: T, preloadTarget: P, viewData: ViewData) -> Unit -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).(doPreload) value-parameter noinline doPreload: (epoxyModel: T, preloadTarget: P, viewData: com.airbnb.epoxy.preload.ViewData) -> kotlin.Unit -// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).epoxyModel. val epoxyModel: T -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).[T] -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).preloadTarget. val preloadTarget: P -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).[P] -// ^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).viewData. val viewData: com.airbnb.epoxy.preload.ViewData -// ^^^^^^^^ reference com/airbnb/epoxy/preload/ViewData# -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).[U] -// ^^^^ reference kotlin/Unit# - ): EpoxyModelPreloader = -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).[T] -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).[U] -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).[P] - with( -// ^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2). - preloadableViewIds = preloadableViewIds, -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(preloadableViewIds) -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).(preloadableViewIds) - epoxyModelClass = T::class.java, -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(epoxyModelClass) -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).[T] -// ^^^^ reference kotlin/jvm/JvmClassMappingKt#java. - viewMetadata = viewMetadata, -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(viewMetadata) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).(viewMetadata) - viewSignature = viewSignature, -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(viewSignature) -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).(viewSignature) - doPreload = doPreload -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(doPreload) -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+1).(doPreload) - ) - - /** - * Helper to create a [EpoxyModelPreloader]. This is similar to the other helper methods but not inlined so it can be used with Java. - * - * @param epoxyModelClass The specific type of EpoxyModel that this preloader is for. - * @param viewSignature see [EpoxyModelPreloader.viewSignature] - * @param preloadableViewIds see [EpoxyModelPreloader.preloadableViewIds] - * @param viewMetadata see [EpoxyModelPreloader.buildViewMetadata] - * @param doPreload see [EpoxyModelPreloader.startPreload] - */ - fun , U : ViewMetadata?, P : PreloadRequestHolder> with( -// ^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[T] -// ^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[U] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# -// ^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2). public final fun with(preloadableViewIds: kotlin.collections.List = ..., epoxyModelClass: java.lang.Class, viewMetadata: ([ERROR : View]) -> U, viewSignature: (T) -> kotlin.Any? = ..., doPreload: (epoxyModel: T, preloadTarget: P, viewData: com.airbnb.epoxy.preload.ViewData) -> kotlin.Unit): com.airbnb.epoxy.preload.EpoxyModelPreloader - preloadableViewIds: List = emptyList(), -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(preloadableViewIds) value-parameter preloadableViewIds: kotlin.collections.List = ... -// ^^^^ reference kotlin/collections/List# -// ^^^ reference kotlin/Int# -// ^^^^^^^^^ reference kotlin/collections/CollectionsKt#emptyList(). - epoxyModelClass: Class, -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(epoxyModelClass) value-parameter epoxyModelClass: java.lang.Class -// ^^^^^ reference java/lang/Class# -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[T] - viewMetadata: (View) -> U, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(viewMetadata) value-parameter viewMetadata: ([ERROR : View]) -> U -// ^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).``. val : T -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[U] - viewSignature: (T) -> Any? = { _ -> null }, -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(viewSignature) value-parameter viewSignature: (T) -> kotlin.Any? = ... -// ^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).``. val : T -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[T] -// ^^^ reference kotlin/Any# -// ^ definition local2 value-parameter : T - doPreload: (epoxyModel: T, preloadTarget: P, viewData: ViewData) -> Unit -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(doPreload) value-parameter doPreload: (epoxyModel: T, preloadTarget: P, viewData: com.airbnb.epoxy.preload.ViewData) -> kotlin.Unit -// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).epoxyModel. val epoxyModel: T -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[T] -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).preloadTarget. val preloadTarget: P -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[P] -// ^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).viewData. val viewData: com.airbnb.epoxy.preload.ViewData -// ^^^^^^^^ reference com/airbnb/epoxy/preload/ViewData# -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[U] -// ^^^^ reference kotlin/Unit# - ): EpoxyModelPreloader = object : EpoxyModelPreloader( -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[T] -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[U] -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[P] -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#``(). -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[T] -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[U] -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[P] - modelType = epoxyModelClass, -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#``().(modelType) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(epoxyModelClass) - preloadableViewIds = preloadableViewIds -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#``().(preloadableViewIds) -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(preloadableViewIds) - ) { - - override fun buildViewMetadata(view: View) = viewMetadata(view) -// ^^^^^^^^^^^^^^^^^ definition local3 public open fun buildViewMetadata(view: [ERROR : View]): U -// ^^^^ definition local4 value-parameter view: [ERROR : View] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(viewMetadata) -// ^^^^ reference local4 - - override fun viewSignature(epoxyModel: T) = viewSignature(epoxyModel) -// ^^^^^^^^^^^^^ definition local5 public open fun viewSignature(epoxyModel: T): kotlin.Any? -// ^^^^^^^^^^ definition local6 value-parameter epoxyModel: T -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[T] -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(viewSignature) -// ^^^^^^^^^^ reference local6 - - override fun startPreload(epoxyModel: T, preloadTarget: P, viewData: ViewData) { -// ^^^^^^^^^^^^ definition local7 public open fun startPreload(epoxyModel: T, preloadTarget: P, viewData: com.airbnb.epoxy.preload.ViewData) -// ^^^^^^^^^^ definition local8 value-parameter epoxyModel: T -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[T] -// ^^^^^^^^^^^^^ definition local9 value-parameter preloadTarget: P -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[P] -// ^^^^^^^^ definition local10 value-parameter viewData: com.airbnb.epoxy.preload.ViewData -// ^^^^^^^^ reference com/airbnb/epoxy/preload/ViewData# -// ^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).[U] - doPreload(epoxyModel, preloadTarget, viewData) -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#Companion#with(+2).(doPreload) -// ^^^^^^^^^^ reference local8 -// ^^^^^^^^^^^^^ reference local9 -// ^^^^^^^^ reference local10 - } - } - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/EpoxyPreloader.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/EpoxyPreloader.kt deleted file mode 100644 index 3fc339557..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/EpoxyPreloader.kt +++ /dev/null @@ -1,741 +0,0 @@ -package com.airbnb.epoxy.preload -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^ reference com/airbnb/epoxy/preload/ - -import android.content.Context -import android.view.View -import android.widget.ImageView -import androidx.annotation.IdRes -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^^^^ reference androidx/annotation/IdRes# -import androidx.annotation.Px -// ^^^^^^^^ reference androidx/ -// ^^^^^^^^^^ reference androidx/annotation/ -// ^^ reference androidx/annotation/Px# -import androidx.recyclerview.widget.LinearLayoutManager -// ^^^^^^^^ reference androidx/ -import androidx.recyclerview.widget.RecyclerView -// ^^^^^^^^ reference androidx/ -import com.airbnb.epoxy.BaseEpoxyAdapter -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -import com.airbnb.epoxy.EpoxyAdapter -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -import com.airbnb.epoxy.EpoxyController -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -import com.airbnb.epoxy.EpoxyModel -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -import com.airbnb.epoxy.getModelForPositionInternal -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/InternalExposerKt#getModelForPositionInternal(). -import kotlin.math.max -// ^^^^^^ reference kotlin/ -// ^^^^ reference kotlin/math/ -import kotlin.math.min -// ^^^^^^ reference kotlin/ -// ^^^^ reference kotlin/math/ - -/** - * A scroll listener that prefetches view content. - * - * To use this, create implementations of [EpoxyModelPreloader] for each EpoxyModel class that you want to preload. - * Then, use the [EpoxyPreloader.with] methods to create an instance that preloads models of that type. - * Finally, add the resulting scroll listener to your RecyclerView. - * - * If you are using [com.airbnb.epoxy.EpoxyRecyclerView] then use [com.airbnb.epoxy.EpoxyRecyclerView.addPreloader] - * to setup the preloader as a listener. - * - * Otherwise there is a [RecyclerView.addEpoxyPreloader] extension for easy usage. - */ -class EpoxyPreloader

private constructor( -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader# public final class EpoxyPreloader

-// ^ definition com/airbnb/epoxy/preload/EpoxyPreloader#[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# -// ^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``(). private constructor EpoxyPreloader

(adapter: [ERROR : BaseEpoxyAdapter], preloadTargetFactory: () -> P, errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */, maxItemsToPreload: kotlin.Int, modelPreloaders: kotlin.collections.List>) - private val adapter: BaseEpoxyAdapter, -// ^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#adapter. private final val adapter: [ERROR : BaseEpoxyAdapter] -// ^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getAdapter(). private final val adapter: [ERROR : BaseEpoxyAdapter] -// ^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``().(adapter) value-parameter adapter: [ERROR : BaseEpoxyAdapter] - preloadTargetFactory: () -> P, -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``().(preloadTargetFactory) value-parameter preloadTargetFactory: () -> P -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] - errorHandler: PreloadErrorHandler, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``().(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# - private val maxItemsToPreload: Int, -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#maxItemsToPreload. private final val maxItemsToPreload: kotlin.Int -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getMaxItemsToPreload(). private final val maxItemsToPreload: kotlin.Int -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``().(maxItemsToPreload) value-parameter maxItemsToPreload: kotlin.Int -// ^^^ reference kotlin/Int# - modelPreloaders: List> -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``().(modelPreloaders) value-parameter modelPreloaders: kotlin.collections.List> -// ^^^^ reference kotlin/collections/List# -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] -) : RecyclerView.OnScrollListener() { - - private var lastVisibleRange: IntRange = IntRange.EMPTY -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#lastVisibleRange. private final var lastVisibleRange: kotlin.ranges.IntRange -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getLastVisibleRange(). private final var lastVisibleRange: kotlin.ranges.IntRange -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#setLastVisibleRange(). private final var lastVisibleRange: kotlin.ranges.IntRange -// ^^^^^^^^ reference kotlin/ranges/IntRange# -// ^^^^^^^^ reference kotlin/ranges/IntRange#Companion# -// ^^^^^ reference kotlin/ranges/IntRange#Companion#EMPTY. -// ^^^^^ reference kotlin/ranges/IntRange#Companion#getEMPTY(). - private var lastPreloadRange: IntProgression = IntRange.EMPTY -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#lastPreloadRange. private final var lastPreloadRange: kotlin.ranges.IntProgression -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getLastPreloadRange(). private final var lastPreloadRange: kotlin.ranges.IntProgression -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#setLastPreloadRange(). private final var lastPreloadRange: kotlin.ranges.IntProgression -// ^^^^^^^^^^^^^^ reference kotlin/ranges/IntProgression# -// ^^^^^^^^ reference kotlin/ranges/IntRange#Companion# -// ^^^^^ reference kotlin/ranges/IntRange#Companion#EMPTY. -// ^^^^^ reference kotlin/ranges/IntRange#Companion#getEMPTY(). - private var totalItemCount = -1 -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#totalItemCount. private final var totalItemCount: kotlin.Int -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getTotalItemCount(). private final var totalItemCount: kotlin.Int -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#setTotalItemCount(). private final var totalItemCount: kotlin.Int -// ^ reference kotlin/Int#unaryMinus(). - private var scrollState: Int = RecyclerView.SCROLL_STATE_IDLE -// ^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#scrollState. private final var scrollState: kotlin.Int -// ^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getScrollState(). private final var scrollState: kotlin.Int -// ^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#setScrollState(). private final var scrollState: kotlin.Int -// ^^^ reference kotlin/Int# - - private val modelPreloaders: Map>, EpoxyModelPreloader<*, *, out P>> = -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#modelPreloaders. private final val modelPreloaders: kotlin.collections.Map]>, com.airbnb.epoxy.preload.EpoxyModelPreloader<*, *, out P>> -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getModelPreloaders(). private final val modelPreloaders: kotlin.collections.Map]>, com.airbnb.epoxy.preload.EpoxyModelPreloader<*, *, out P>> -// ^^^ reference kotlin/collections/Map# -// ^^^^^ reference java/lang/Class# -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] - modelPreloaders.associateBy { it.modelType } -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#``().(modelPreloaders) -// ^^^^^^^^^^^ reference kotlin/collections/CollectionsKt#associateBy(+18). -// ^^ reference local0 -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#modelType. -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#getModelType(). - - private val requestHolderFactory = -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#requestHolderFactory. private final val requestHolderFactory: com.airbnb.epoxy.preload.PreloadTargetProvider

-// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getRequestHolderFactory(). private final val requestHolderFactory: com.airbnb.epoxy.preload.PreloadTargetProvider

- PreloadTargetProvider(maxItemsToPreload, preloadTargetFactory) -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#``(). -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#maxItemsToPreload. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getMaxItemsToPreload(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#``().(preloadTargetFactory) - - private val viewDataCache = PreloadableViewDataProvider(adapter, errorHandler) -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#viewDataCache. private final val viewDataCache: com.airbnb.epoxy.preload.PreloadableViewDataProvider -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#getViewDataCache(). private final val viewDataCache: com.airbnb.epoxy.preload.PreloadableViewDataProvider -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#``(). -// ^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getAdapter(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#``().(errorHandler) - - constructor( -// ^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``(+1). public constructor EpoxyPreloader

(epoxyController: [ERROR : EpoxyController], requestHolderFactory: () -> P, errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */, maxItemsToPreload: kotlin.Int, modelPreloaders: kotlin.collections.List>) - epoxyController: EpoxyController, -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``(+1).(epoxyController) value-parameter epoxyController: [ERROR : EpoxyController] - requestHolderFactory: () -> P, -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``(+1).(requestHolderFactory) value-parameter requestHolderFactory: () -> P -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] - errorHandler: PreloadErrorHandler, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``(+1).(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# - maxItemsToPreload: Int, -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``(+1).(maxItemsToPreload) value-parameter maxItemsToPreload: kotlin.Int -// ^^^ reference kotlin/Int# - modelPreloaders: List> -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``(+1).(modelPreloaders) value-parameter modelPreloaders: kotlin.collections.List> -// ^^^^ reference kotlin/collections/List# -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] - ) : this( - epoxyController.adapter, -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#``(+1).(epoxyController) - requestHolderFactory, -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#``(+1).(requestHolderFactory) - errorHandler, -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#``(+1).(errorHandler) - maxItemsToPreload, -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#``(+1).(maxItemsToPreload) - modelPreloaders -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#``(+1).(modelPreloaders) - ) - - constructor( -// ^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``(+2). public constructor EpoxyPreloader

(adapter: [ERROR : EpoxyAdapter], requestHolderFactory: () -> P, errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */, maxItemsToPreload: kotlin.Int, modelPreloaders: kotlin.collections.List>) - adapter: EpoxyAdapter, -// ^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``(+2).(adapter) value-parameter adapter: [ERROR : EpoxyAdapter] - requestHolderFactory: () -> P, -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``(+2).(requestHolderFactory) value-parameter requestHolderFactory: () -> P -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] - errorHandler: PreloadErrorHandler, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``(+2).(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# - maxItemsToPreload: Int, -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``(+2).(maxItemsToPreload) value-parameter maxItemsToPreload: kotlin.Int -// ^^^ reference kotlin/Int# - modelPreloaders: List> -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#``(+2).(modelPreloaders) value-parameter modelPreloaders: kotlin.collections.List> -// ^^^^ reference kotlin/collections/List# -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] - ) : this( - adapter as BaseEpoxyAdapter, -// ^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#``(+2).(adapter) - requestHolderFactory, -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#``(+2).(requestHolderFactory) - errorHandler, -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#``(+2).(errorHandler) - maxItemsToPreload, -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#``(+2).(maxItemsToPreload) - modelPreloaders -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#``(+2).(modelPreloaders) - ) - - init { - require(maxItemsToPreload > 0) { -// ^^^^^^^ reference kotlin/PreconditionsKt#require(+1). -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#maxItemsToPreload. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getMaxItemsToPreload(). -// ^ reference kotlin/Int#compareTo(+3). - "maxItemsToPreload must be greater than 0. Was $maxItemsToPreload" -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#maxItemsToPreload. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getMaxItemsToPreload(). - } - } - - override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#onScrollStateChanged(). public open fun onScrollStateChanged(recyclerView: [ERROR : RecyclerView], newState: kotlin.Int) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#onScrollStateChanged().(recyclerView) value-parameter recyclerView: [ERROR : RecyclerView] -// ^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#onScrollStateChanged().(newState) value-parameter newState: kotlin.Int -// ^^^ reference kotlin/Int# - scrollState = newState -// ^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#scrollState. -// ^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getScrollState(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setScrollState(). -// ^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#onScrollStateChanged().(newState) - } - - override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled(). public open fun onScrolled(recyclerView: [ERROR : RecyclerView], dx: kotlin.Int, dy: kotlin.Int) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(recyclerView) value-parameter recyclerView: [ERROR : RecyclerView] -// ^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(dx) value-parameter dx: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(dy) value-parameter dy: kotlin.Int -// ^^^ reference kotlin/Int# - if (dx == 0 && dy == 0) { -// ^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(dx) -// ^^ reference kotlin/Int#equals(). -// ^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(dy) -// ^^ reference kotlin/Int#equals(). - // Sometimes flings register a bunch of 0 dx/dy scroll events. To avoid redundant prefetching we just skip these - // Additionally, the first RecyclerView layout notifies a scroll of 0, since that can be an important time for - // performance (eg page load) we avoid prefetching at the same time. - return - } - - if (dx.isFling() || dy.isFling()) { -// ^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(dx) -// ^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#isFling(). -// ^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(dy) -// ^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#isFling(). - // We avoid preloading during flings for two reasons - // 1. Image requests are expensive and we don't want to drop frames on fling - // 2. We'll likely scroll past the preloading item anyway - return - } - - // Update item count before anything else because validations depend on it - totalItemCount = recyclerView.adapter?.itemCount ?: 0 -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#totalItemCount. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getTotalItemCount(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setTotalItemCount(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(recyclerView) - - val layoutManager = recyclerView.layoutManager as LinearLayoutManager -// ^^^^^^^^^^^^^ definition local1 val layoutManager: [ERROR : LinearLayoutManager] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#onScrolled().(recyclerView) - val firstVisiblePosition = layoutManager.findFirstVisibleItemPosition() -// ^^^^^^^^^^^^^^^^^^^^ definition local2 val firstVisiblePosition: [ERROR : ] -// ^^^^^^^^^^^^^ reference local1 - val lastVisiblePosition = layoutManager.findLastVisibleItemPosition() -// ^^^^^^^^^^^^^^^^^^^ definition local3 val lastVisiblePosition: [ERROR : ] -// ^^^^^^^^^^^^^ reference local1 - - if (firstVisiblePosition.isInvalid() || lastVisiblePosition.isInvalid()) { -// ^^^^^^^^^^^^^^^^^^^^ reference local2 -// ^^^^^^^^^^^^^^^^^^^ reference local3 - lastVisibleRange = IntRange.EMPTY -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastVisibleRange. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastVisibleRange(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastVisibleRange(). -// ^^^^^^^^ reference kotlin/ranges/IntRange#Companion# -// ^^^^^ reference kotlin/ranges/IntRange#Companion#EMPTY. -// ^^^^^ reference kotlin/ranges/IntRange#Companion#getEMPTY(). - lastPreloadRange = IntRange.EMPTY -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastPreloadRange. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastPreloadRange(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastPreloadRange(). -// ^^^^^^^^ reference kotlin/ranges/IntRange#Companion# -// ^^^^^ reference kotlin/ranges/IntRange#Companion#EMPTY. -// ^^^^^ reference kotlin/ranges/IntRange#Companion#getEMPTY(). - return - } - - val visibleRange = IntRange(firstVisiblePosition, lastVisiblePosition) -// ^^^^^^^^^^^^ definition local4 val visibleRange: kotlin.ranges.IntRange -// ^^^^^^^^ reference kotlin/ranges/IntRange#``(). -// ^^^^^^^^^^^^^^^^^^^^ reference local2 -// ^^^^^^^^^^^^^^^^^^^ reference local3 - if (visibleRange == lastVisibleRange) { -// ^^^^^^^^^^^^ reference local4 -// ^^ reference kotlin/ranges/IntRange#equals(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastVisibleRange. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastVisibleRange(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastVisibleRange(). - return - } - - val isIncreasing = -// ^^^^^^^^^^^^ definition local5 val isIncreasing: kotlin.Boolean - visibleRange.first > lastVisibleRange.first || visibleRange.last > lastVisibleRange.last -// ^^^^^^^^^^^^ reference local4 -// ^^^^^ reference kotlin/ranges/IntRange#first. -// ^^^^^ reference kotlin/ranges/IntRange#getFirst(). -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastVisibleRange. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastVisibleRange(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastVisibleRange(). -// ^^^^^ reference kotlin/ranges/IntRange#first. -// ^^^^^ reference kotlin/ranges/IntRange#getFirst(). -// ^^^^^^^^^^^^ reference local4 -// ^^^^ reference kotlin/ranges/IntRange#last. -// ^^^^ reference kotlin/ranges/IntRange#getLast(). -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastVisibleRange. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastVisibleRange(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastVisibleRange(). -// ^^^^ reference kotlin/ranges/IntRange#last. -// ^^^^ reference kotlin/ranges/IntRange#getLast(). - - val preloadRange = -// ^^^^^^^^^^^^ definition local6 val preloadRange: kotlin.ranges.IntProgression - calculatePreloadRange(firstVisiblePosition, lastVisiblePosition, isIncreasing) -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange(). -// ^^^^^^^^^^^^^^^^^^^^ reference local2 -// ^^^^^^^^^^^^^^^^^^^ reference local3 -// ^^^^^^^^^^^^ reference local5 - - // Start preload for any items that weren't already preloaded - preloadRange -// ^^^^^^^^^^^^ reference local6 - .subtract(lastPreloadRange) -// ^^^^^^^^ reference kotlin/collections/CollectionsKt#subtract(+9). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastPreloadRange. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastPreloadRange(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastPreloadRange(). - .forEach { preloadAdapterPosition(it) } -// ^^^^^^^ reference kotlin/collections/CollectionsKt#forEach(+10). -// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#preloadAdapterPosition(). -// ^^ reference local7 - - lastVisibleRange = visibleRange -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastVisibleRange. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastVisibleRange(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastVisibleRange(). -// ^^^^^^^^^^^^ reference local4 - lastPreloadRange = preloadRange -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#lastPreloadRange. -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getLastPreloadRange(). -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setLastPreloadRange(). -// ^^^^^^^^^^^^ reference local6 - } - - /** - * @receiver The number of pixels scrolled. - * @return True if this distance is large enough to be considered a fast fling. - */ - private fun Int.isFling() = Math.abs(this) > FLING_THRESHOLD_PX -// ^^^ reference kotlin/Int# -// ^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#isFling(). private final fun kotlin.Int.isFling(): kotlin.Boolean -// ^^^^ reference java/lang/Math# -// ^^^ reference java/lang/Math#abs(). -// ^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#isFling(). -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#FLING_THRESHOLD_PX. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#getFLING_THRESHOLD_PX(). - - private fun calculatePreloadRange( -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange(). private final fun calculatePreloadRange(firstVisiblePosition: kotlin.Int, lastVisiblePosition: kotlin.Int, isIncreasing: kotlin.Boolean): kotlin.ranges.IntProgression - firstVisiblePosition: Int, -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(firstVisiblePosition) value-parameter firstVisiblePosition: kotlin.Int -// ^^^ reference kotlin/Int# - lastVisiblePosition: Int, -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(lastVisiblePosition) value-parameter lastVisiblePosition: kotlin.Int -// ^^^ reference kotlin/Int# - isIncreasing: Boolean -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(isIncreasing) value-parameter isIncreasing: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - ): IntProgression { -// ^^^^^^^^^^^^^^ reference kotlin/ranges/IntProgression# - val from = if (isIncreasing) lastVisiblePosition + 1 else firstVisiblePosition - 1 -// ^^^^ definition local8 val from: kotlin.Int -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(isIncreasing) -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(lastVisiblePosition) -// ^ reference kotlin/Int#plus(+3). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(firstVisiblePosition) -// ^ reference kotlin/Int#minus(+3). - val to = from + if (isIncreasing) maxItemsToPreload - 1 else 1 - maxItemsToPreload -// ^^ definition local9 val to: kotlin.Int -// ^^^^ reference local8 -// ^ reference kotlin/Int#plus(+3). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(isIncreasing) -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#maxItemsToPreload. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getMaxItemsToPreload(). -// ^ reference kotlin/Int#minus(+3). -// ^ reference kotlin/Int#minus(+3). -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#maxItemsToPreload. -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getMaxItemsToPreload(). - - return IntProgression.fromClosedRange( -// ^^^^^^^^^^^^^^ reference kotlin/ranges/IntProgression#Companion# -// ^^^^^^^^^^^^^^^ reference kotlin/ranges/IntProgression#Companion#fromClosedRange(). - rangeStart = from.clampToAdapterRange(), -// ^^^^^^^^^^ reference kotlin/ranges/IntProgression#Companion#fromClosedRange().(rangeStart) -// ^^^^ reference local8 -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#clampToAdapterRange(). - rangeEnd = to.clampToAdapterRange(), -// ^^^^^^^^ reference kotlin/ranges/IntProgression#Companion#fromClosedRange().(rangeEnd) -// ^^ reference local9 -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#clampToAdapterRange(). - step = if (isIncreasing) 1 else -1 -// ^^^^ reference kotlin/ranges/IntProgression#Companion#fromClosedRange().(step) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#calculatePreloadRange().(isIncreasing) -// ^ reference kotlin/Int#unaryMinus(). - ) - } - - /** Check if an item index is valid. It may not be if the adapter is empty, or if adapter changes have been dispatched since the last layout pass. */ - private fun Int.isInvalid() = this == RecyclerView.NO_POSITION || this >= totalItemCount -// ^^^ reference kotlin/Int# -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#isInvalid(). private final fun kotlin.Int.isInvalid(): kotlin.Boolean -// ^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#isInvalid(). -// ^^ reference kotlin/Int#equals(). -// ^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#isInvalid(). -// ^^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#totalItemCount. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getTotalItemCount(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setTotalItemCount(). - - private fun Int.clampToAdapterRange() = min(totalItemCount - 1, max(this, 0)) -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#clampToAdapterRange(). private final fun kotlin.Int.clampToAdapterRange(): kotlin.Int -// ^^^ reference kotlin/math/MathKt#min(+2). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#totalItemCount. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getTotalItemCount(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#setTotalItemCount(). -// ^ reference kotlin/Int#minus(+3). -// ^^^ reference kotlin/math/MathKt#max(+2). -// ^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#clampToAdapterRange(). - - private fun preloadAdapterPosition(position: Int) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#preloadAdapterPosition(). private final fun preloadAdapterPosition(position: kotlin.Int) -// ^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#preloadAdapterPosition().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# - @Suppress("UNCHECKED_CAST") -// ^^^^^^^^ reference kotlin/Suppress#``(). - val epoxyModel = adapter.getModelForPositionInternal(position) as? EpoxyModel -// ^^^^^^^^^^ definition local10 val epoxyModel: kotlin.Nothing -// ^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getAdapter(). -// ^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#preloadAdapterPosition().(position) -// ^^^ reference kotlin/Any# - ?: return - - @Suppress("UNCHECKED_CAST") -// ^^^^^^^^ reference kotlin/Suppress#``(). - val preloader = -// ^^^^^^^^^ definition local11 val preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader<[ERROR : EpoxyModel<*>], com.airbnb.epoxy.preload.ViewMetadata?, P> - modelPreloaders[epoxyModel::class.java] as? EpoxyModelPreloader, ViewMetadata?, P> -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#modelPreloaders. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getModelPreloaders(). -// ^^^^^^^^^^ reference local10 -// ^^^^ reference kotlin/jvm/JvmClassMappingKt#java. -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#[P] - ?: return - - viewDataCache -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#viewDataCache. -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getViewDataCache(). - .dataForModel(preloader, epoxyModel, position) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel(). -// ^^^^^^^^^ reference local11 -// ^^^^^^^^^^ reference local10 -// ^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#preloadAdapterPosition().(position) - .forEach { viewData -> -// ^^^^^^^ reference kotlin/collections/CollectionsKt#forEach(+10). -// ^^^^^^^^ definition local12 value-parameter viewData: com.airbnb.epoxy.preload.ViewData - val preloadTarget = requestHolderFactory.next() -// ^^^^^^^^^^^^^ definition local13 val preloadTarget: P -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#requestHolderFactory. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getRequestHolderFactory(). -// ^^^^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#next(). - preloader.startPreload(epoxyModel, preloadTarget, viewData) -// ^^^^^^^^^ reference local11 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#startPreload(). -// ^^^^^^^^^^ reference local10 -// ^^^^^^^^^^^^^ reference local13 -// ^^^^^^^^ reference local12 - } - } - - /** - * Cancels all current preload requests in progress. - */ - fun cancelPreloadRequests() { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#cancelPreloadRequests(). public final fun cancelPreloadRequests() - requestHolderFactory.clearAll() -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#requestHolderFactory. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#getRequestHolderFactory(). -// ^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#clearAll(). - } - - companion object { -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion# public companion object - - /** - * - * Represents a threshold for fast scrolling. - * This is a bit arbitrary and was determined by looking at values while flinging vs slow scrolling. - * Ideally it would be based on DP, but this is simpler. - */ - private const val FLING_THRESHOLD_PX = 75 -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#FLING_THRESHOLD_PX. private const final val FLING_THRESHOLD_PX: kotlin.Int -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#getFLING_THRESHOLD_PX(). private const final val FLING_THRESHOLD_PX: kotlin.Int - - /** - * Helper to create a preload scroll listener. Add the result to your RecyclerView. - * for different models or content types. - * - * @param maxItemsToPreload How many items to prefetch ahead of the last bound item - * @param errorHandler Called when the preloader encounters an exception. By default this throws only - * if the app is not in a debuggle model - * @param modelPreloader Describes how view content for the EpoxyModel should be preloaded - * @param requestHolderFactory Should create and return a new [PreloadRequestHolder] each time it is invoked - */ - fun

with( -// ^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# -// ^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(). public final fun

with(epoxyController: [ERROR : EpoxyController], requestHolderFactory: () -> P, errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */, maxItemsToPreload: kotlin.Int, modelPreloader: com.airbnb.epoxy.preload.EpoxyModelPreloader], out com.airbnb.epoxy.preload.ViewMetadata?, out P>): com.airbnb.epoxy.preload.EpoxyPreloader

- epoxyController: EpoxyController, -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(epoxyController) value-parameter epoxyController: [ERROR : EpoxyController] - requestHolderFactory: () -> P, -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(requestHolderFactory) value-parameter requestHolderFactory: () -> P -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().[P] - errorHandler: PreloadErrorHandler, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# - maxItemsToPreload: Int, -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(maxItemsToPreload) value-parameter maxItemsToPreload: kotlin.Int -// ^^^ reference kotlin/Int# - modelPreloader: EpoxyModelPreloader, out ViewMetadata?, out P> -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(modelPreloader) value-parameter modelPreloader: com.airbnb.epoxy.preload.EpoxyModelPreloader], out com.airbnb.epoxy.preload.ViewMetadata?, out P> -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().[P] - ): EpoxyPreloader

= -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader# -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().[P] - with( - epoxyController, -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(epoxyController) - requestHolderFactory, -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(requestHolderFactory) - errorHandler, -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(errorHandler) - maxItemsToPreload, -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(maxItemsToPreload) - listOf(modelPreloader) -// ^^^^^^ reference kotlin/collections/CollectionsKt#listOf(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with().(modelPreloader) - ) - - fun

with( -// ^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# -// ^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1). public final fun

with(epoxyController: [ERROR : EpoxyController], requestHolderFactory: () -> P, errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */, maxItemsToPreload: kotlin.Int, modelPreloaders: kotlin.collections.List], out com.airbnb.epoxy.preload.ViewMetadata?, out P>>): com.airbnb.epoxy.preload.EpoxyPreloader

- epoxyController: EpoxyController, -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(epoxyController) value-parameter epoxyController: [ERROR : EpoxyController] - requestHolderFactory: () -> P, -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(requestHolderFactory) value-parameter requestHolderFactory: () -> P -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).[P] - errorHandler: PreloadErrorHandler, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# - maxItemsToPreload: Int, -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(maxItemsToPreload) value-parameter maxItemsToPreload: kotlin.Int -// ^^^ reference kotlin/Int# - modelPreloaders: List, out ViewMetadata?, out P>> -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(modelPreloaders) value-parameter modelPreloaders: kotlin.collections.List], out com.airbnb.epoxy.preload.ViewMetadata?, out P>> -// ^^^^ reference kotlin/collections/List# -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).[P] - ): EpoxyPreloader

{ -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader# -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).[P] - - return EpoxyPreloader( - epoxyController, -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(epoxyController) - requestHolderFactory, -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(requestHolderFactory) - errorHandler, -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(errorHandler) - maxItemsToPreload, -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(maxItemsToPreload) - modelPreloaders -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+1).(modelPreloaders) - ) - } - - /** Helper to create a preload scroll listener. Add the result to your RecyclerView. */ - fun

with( -// ^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# -// ^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2). public final fun

with(epoxyAdapter: [ERROR : EpoxyAdapter], requestHolderFactory: () -> P, errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */, maxItemsToPreload: kotlin.Int, modelPreloaders: kotlin.collections.List], out com.airbnb.epoxy.preload.ViewMetadata?, out P>>): com.airbnb.epoxy.preload.EpoxyPreloader

- epoxyAdapter: EpoxyAdapter, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(epoxyAdapter) value-parameter epoxyAdapter: [ERROR : EpoxyAdapter] - requestHolderFactory: () -> P, -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(requestHolderFactory) value-parameter requestHolderFactory: () -> P -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).[P] - errorHandler: PreloadErrorHandler, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# - maxItemsToPreload: Int, -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(maxItemsToPreload) value-parameter maxItemsToPreload: kotlin.Int -// ^^^ reference kotlin/Int# - modelPreloaders: List, out ViewMetadata?, out P>> -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(modelPreloaders) value-parameter modelPreloaders: kotlin.collections.List], out com.airbnb.epoxy.preload.ViewMetadata?, out P>> -// ^^^^ reference kotlin/collections/List# -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).[P] - ): EpoxyPreloader

{ -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader# -// ^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).[P] - - return EpoxyPreloader( - epoxyAdapter, -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(epoxyAdapter) - requestHolderFactory, -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(requestHolderFactory) - errorHandler, -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(errorHandler) - maxItemsToPreload, -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(maxItemsToPreload) - modelPreloaders -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloader#Companion#with(+2).(modelPreloaders) - ) - } - } -} - -class EpoxyPreloadException(errorMessage: String) : RuntimeException(errorMessage) -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloadException# public final class EpoxyPreloadException : kotlin.RuntimeException /* = java.lang.RuntimeException */ -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloadException#``(). public constructor EpoxyPreloadException(errorMessage: kotlin.String) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloadException#``().(errorMessage) value-parameter errorMessage: kotlin.String -// ^^^^^^ reference kotlin/String# -// ^^^^^^^^^^^^^^^^ reference kotlin/RuntimeException#``(+1). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloadException#``().(errorMessage) - -typealias PreloadErrorHandler = (Context, RuntimeException) -> Unit -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadErrorHandler# public typealias PreloadErrorHandler = ([ERROR : Context], kotlin.RuntimeException) -> kotlin.Unit -// ^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloaderKt#``. val : kotlin.RuntimeException -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/EpoxyPreloaderKt#``. val : kotlin.RuntimeException -// ^^^^^^^^^^^^^^^^ reference kotlin/RuntimeException# -// ^^^^ reference kotlin/Unit# - -/** - * Data about an image view to be preloaded. This data is used to construct a Glide image request. - * - * @param metadata Any custom, additional data that the [EpoxyModelPreloader] chooses to provide that may be necessary to create the image request. - */ -class ViewData( -// ^^^^^^^^ definition com/airbnb/epoxy/preload/ViewData# public final class ViewData -// ^^^^^^^^ definition com/airbnb/epoxy/preload/ViewData#``(). public constructor ViewData(viewId: kotlin.Int, width: kotlin.Int, height: kotlin.Int, metadata: U) -// ^ definition com/airbnb/epoxy/preload/ViewData#[U] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# - @IdRes val viewId: Int, -// ^^^^^ reference androidx/annotation/IdRes#``(). -// ^^^^^^ definition com/airbnb/epoxy/preload/ViewData#viewId. public final val viewId: kotlin.Int -// ^^^^^^ definition com/airbnb/epoxy/preload/ViewData#getViewId(). public final val viewId: kotlin.Int -// ^^^^^^ definition com/airbnb/epoxy/preload/ViewData#``().(viewId) value-parameter viewId: kotlin.Int -// ^^^ reference kotlin/Int# - @Px val width: Int, -// ^^ reference androidx/annotation/Px#``(). -// ^^^^^ definition com/airbnb/epoxy/preload/ViewData#width. public final val width: kotlin.Int -// ^^^^^ definition com/airbnb/epoxy/preload/ViewData#getWidth(). public final val width: kotlin.Int -// ^^^^^ definition com/airbnb/epoxy/preload/ViewData#``().(width) value-parameter width: kotlin.Int -// ^^^ reference kotlin/Int# - @Px val height: Int, -// ^^ reference androidx/annotation/Px#``(). -// ^^^^^^ definition com/airbnb/epoxy/preload/ViewData#height. public final val height: kotlin.Int -// ^^^^^^ definition com/airbnb/epoxy/preload/ViewData#getHeight(). public final val height: kotlin.Int -// ^^^^^^ definition com/airbnb/epoxy/preload/ViewData#``().(height) value-parameter height: kotlin.Int -// ^^^ reference kotlin/Int# - val metadata: U -// ^^^^^^^^ definition com/airbnb/epoxy/preload/ViewData#metadata. public final val metadata: U -// ^^^^^^^^ definition com/airbnb/epoxy/preload/ViewData#getMetadata(). public final val metadata: U -// ^^^^^^^^ definition com/airbnb/epoxy/preload/ViewData#``().(metadata) value-parameter metadata: U -// ^ reference com/airbnb/epoxy/preload/ViewData#[U] -) - -interface ViewMetadata { -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/ViewMetadata# public interface ViewMetadata - companion object { -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/ViewMetadata#Companion# public companion object - fun getDefault(view: View): ViewMetadata? { -// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/ViewMetadata#Companion#getDefault(). public final fun getDefault(view: [ERROR : View]): com.airbnb.epoxy.preload.ViewMetadata? -// ^^^^ definition com/airbnb/epoxy/preload/ViewMetadata#Companion#getDefault().(view) value-parameter view: [ERROR : View] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# - return when (view) { -// ^^^^ reference com/airbnb/epoxy/preload/ViewMetadata#Companion#getDefault().(view) - is ImageView -> ImageViewMetadata(view.scaleType) -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ImageViewMetadata#``(). -// ^^^^ reference com/airbnb/epoxy/preload/ViewMetadata#Companion#getDefault().(view) - else -> null - } - } - } -} - -/** - * Default implementation of [ViewMetadata] for an ImageView. - * This data can help the preload request know how to configure itself. - */ -open class ImageViewMetadata( -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/ImageViewMetadata# public open class ImageViewMetadata : com.airbnb.epoxy.preload.ViewMetadata -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/ImageViewMetadata#``(). public constructor ImageViewMetadata(scaleType: [ERROR : ImageView.ScaleType]) - val scaleType: ImageView.ScaleType -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/ImageViewMetadata#scaleType. public final val scaleType: [ERROR : ImageView.ScaleType] -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/ImageViewMetadata#getScaleType(). public final val scaleType: [ERROR : ImageView.ScaleType] -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/ImageViewMetadata#``().(scaleType) value-parameter scaleType: [ERROR : ImageView.ScaleType] -) : ViewMetadata -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/PreloadTargetProvider.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/PreloadTargetProvider.kt deleted file mode 100644 index 801ca35d4..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/PreloadTargetProvider.kt +++ /dev/null @@ -1,80 +0,0 @@ -package com.airbnb.epoxy.preload -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^ reference com/airbnb/epoxy/preload/ - -import java.util.ArrayDeque -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^^^^^ reference java/util/ArrayDeque# - -internal class PreloadTargetProvider

( -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadTargetProvider# internal final class PreloadTargetProvider

-// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadTargetProvider#``(). public constructor PreloadTargetProvider

(maxPreload: kotlin.Int, requestHolderFactory: () -> P) -// ^ definition com/airbnb/epoxy/preload/PreloadTargetProvider#[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# - maxPreload: Int, -// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadTargetProvider#``().(maxPreload) value-parameter maxPreload: kotlin.Int -// ^^^ reference kotlin/Int# - requestHolderFactory: () -> P -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadTargetProvider#``().(requestHolderFactory) value-parameter requestHolderFactory: () -> P -// ^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#[P] -) { - private val queue = ArrayDeque

((0 until maxPreload).map { requestHolderFactory() }) -// ^^^^^ definition com/airbnb/epoxy/preload/PreloadTargetProvider#queue. private final val queue: java.util.ArrayDeque

-// ^^^^^ definition com/airbnb/epoxy/preload/PreloadTargetProvider#getQueue(). private final val queue: java.util.ArrayDeque

-// ^^^^^^^^^^ reference java/util/ArrayDeque#``(+2). -// ^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#[P] -// ^^^^^ reference kotlin/ranges/RangesKt#until(+6). -// ^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#``().(maxPreload) -// ^^^ reference kotlin/collections/CollectionsKt#map(+9). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#``().(requestHolderFactory) - - internal fun next(): P { -// ^^^^ definition com/airbnb/epoxy/preload/PreloadTargetProvider#next(). internal final fun next(): P -// ^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#[P] - val result = queue.poll() -// ^^^^^^ definition local0 val result: P! -// ^^^^^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#queue. -// ^^^^^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#getQueue(). -// ^^^^ reference java/util/ArrayDeque#poll(). - queue.offer(result) -// ^^^^^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#queue. -// ^^^^^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#getQueue(). -// ^^^^^ reference java/util/ArrayDeque#offer(). -// ^^^^^^ reference local0 - result.clear() -// ^^^^^^ reference local0 -// ^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder#clear(). - return result -// ^^^^^^ reference local0 - } - - fun clearAll() { -// ^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadTargetProvider#clearAll(). public final fun clearAll() - queue.forEach { it.clear() } -// ^^^^^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#queue. -// ^^^^^ reference com/airbnb/epoxy/preload/PreloadTargetProvider#getQueue(). -// ^^^^^^^ reference kotlin/collections/CollectionsKt#forEach(+10). -// ^^ reference local1 -// ^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder#clear(). - } -} - -/** - * This is responsible for holding details for a preloading request. - * Your implementation can do anything it wants with the request, but it must - * cancel and clear itself when [clear] is called. - * - * It is also recommended that your implementation calls [clear] when your request finishes loading - * to avoid unnecessarily hanging onto the request result (assuming the result is also stored in - * cache). Otherwise this holder can be stored in a pool for later use and may leak the preloaded - * data. - */ -interface PreloadRequestHolder { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadRequestHolder# public interface PreloadRequestHolder - /** Clear any ongoing preload request. */ - fun clear() -// ^^^^^ definition com/airbnb/epoxy/preload/PreloadRequestHolder#clear(). public abstract fun clear() -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/Preloadable.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/Preloadable.kt deleted file mode 100644 index b4f41af3c..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/Preloadable.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.airbnb.epoxy.preload -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^ reference com/airbnb/epoxy/preload/ - -import android.view.View - -/** - * Declares Views that should be preloaded. This can either be implemented by a custom view or by an [EpoxyHolder]. - * - * The preloadable views can be recursive ie if [Preloadable.viewsToPreload] includes any views that are themselves Preloadable those nested - * views will instead by used. - */ -interface Preloadable { -// ^^^^^^^^^^^ definition com/airbnb/epoxy/preload/Preloadable# public interface Preloadable - val viewsToPreload: List -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/Preloadable#viewsToPreload. public abstract val viewsToPreload: kotlin.collections.List<[ERROR : View]> -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/Preloadable#getViewsToPreload(). public abstract val viewsToPreload: kotlin.collections.List<[ERROR : View]> -// ^^^^ reference kotlin/collections/List# -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/PreloadableViewDataProvider.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/PreloadableViewDataProvider.kt deleted file mode 100644 index a39c066d6..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/PreloadableViewDataProvider.kt +++ /dev/null @@ -1,397 +0,0 @@ -package com.airbnb.epoxy.preload -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^ reference com/airbnb/epoxy/preload/ - -import android.view.View -import androidx.core.view.ViewCompat -// ^^^^^^^^ reference androidx/ -import com.airbnb.epoxy.BaseEpoxyAdapter -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -import com.airbnb.epoxy.EpoxyModel -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -import com.airbnb.epoxy.boundViewHoldersInternal -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/InternalExposerKt#boundViewHoldersInternal(). -import com.airbnb.epoxy.objectToBindInternal -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/InternalExposerKt#objectToBindInternal(). -import com.airbnb.epoxy.viewTypeInternal -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/InternalExposerKt#viewTypeInternal(). - -/** - * In order to preload content we need to know the size of the view that they it be loaded into. - * This class provides the view size, as well as other view metadata that might be necessary to construct the preload request. - */ -internal class PreloadableViewDataProvider( -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider# internal final class PreloadableViewDataProvider -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#``(). public constructor PreloadableViewDataProvider(adapter: [ERROR : BaseEpoxyAdapter], errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */) - val adapter: BaseEpoxyAdapter, -// ^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#adapter. public final val adapter: [ERROR : BaseEpoxyAdapter] -// ^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#getAdapter(). public final val adapter: [ERROR : BaseEpoxyAdapter] -// ^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#``().(adapter) value-parameter adapter: [ERROR : BaseEpoxyAdapter] - val errorHandler: PreloadErrorHandler -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#errorHandler. public final val errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#getErrorHandler(). public final val errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#``().(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# -) { - - /** - * A given model class might have different sized preloadable views depending on configuration. - * We use this cache key to separate view configurations. - */ - private data class CacheKey( -// ^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey# private final data class CacheKey -// ^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#``(). public constructor CacheKey(epoxyModelClass: java.lang.Class]>, spanSize: kotlin.Int, viewType: kotlin.Int, signature: kotlin.Any?) - val epoxyModelClass: Class>, -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#epoxyModelClass. public final val epoxyModelClass: java.lang.Class]> -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#getEpoxyModelClass(). public final val epoxyModelClass: java.lang.Class]> -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#``().(epoxyModelClass) value-parameter epoxyModelClass: java.lang.Class]> -// ^^^^^ reference java/lang/Class# - val spanSize: Int, -// ^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#spanSize. public final val spanSize: kotlin.Int -// ^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#getSpanSize(). public final val spanSize: kotlin.Int -// ^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#``().(spanSize) value-parameter spanSize: kotlin.Int -// ^^^ reference kotlin/Int# - val viewType: Int, -// ^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#viewType. public final val viewType: kotlin.Int -// ^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#getViewType(). public final val viewType: kotlin.Int -// ^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#``().(viewType) value-parameter viewType: kotlin.Int -// ^^^ reference kotlin/Int# - /** An optional, custom signature provided by the model preloader. This allows the user to specify custom cache mixins */ - val signature: Any? -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#signature. public final val signature: kotlin.Any? -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#getSignature(). public final val signature: kotlin.Any? -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#``().(signature) value-parameter signature: kotlin.Any? -// ^^^ reference kotlin/Any# - ) - - private val cache = mutableMapOf>?>() -// ^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#cache. private final val cache: kotlin.collections.MutableMap>?> -// ^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#getCache(). private final val cache: kotlin.collections.MutableMap>?> -// ^^^^^^^^^^^^ reference kotlin/collections/MapsKt#mutableMapOf(). -// ^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey# -// ^^^^ reference kotlin/collections/List# -// ^^^^^^^^ reference com/airbnb/epoxy/preload/ViewData# - - /** @return A list containing the data necessary to load each view in the given model. */ - fun , U : ViewMetadata?, P : PreloadRequestHolder> dataForModel( -// ^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().[T] -// ^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().[U] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel(). public final fun dataForModel(preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader, epoxyModel: T, position: kotlin.Int): kotlin.collections.List> - preloader: EpoxyModelPreloader, -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().(preloader) value-parameter preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().[T] -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().[U] -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().[P] - epoxyModel: T, -// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().(epoxyModel) value-parameter epoxyModel: T -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().[T] - position: Int -// ^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# - ): List> { -// ^^^^ reference kotlin/collections/List# -// ^^^^^^^^ reference com/airbnb/epoxy/preload/ViewData# -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().[U] - val cacheKey = cacheKey(preloader, epoxyModel, position) -// ^^^^^^^^ definition local0 val cacheKey: com.airbnb.epoxy.preload.PreloadableViewDataProvider.CacheKey -// ^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey(). -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().(preloader) -// ^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().(epoxyModel) -// ^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().(position) - - @Suppress("UNCHECKED_CAST") -// ^^^^^^^^ reference kotlin/Suppress#``(). - return cache.getOrPut(cacheKey) { -// ^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#cache. -// ^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#getCache(). -// ^^^^^^^^ reference kotlin/collections/MapsKt#getOrPut(+1). -// ^^^^^^^^ reference local0 - // Look up view data based on currently bound views. This can be null if a matching view type is not found. - // In that case we save the null so we know to try the lookup again next time. - findViewData(preloader, epoxyModel, cacheKey) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData(). -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().(preloader) -// ^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().(epoxyModel) -// ^^^^^^^^ reference local0 - } as? List> ?: return emptyList() -// ^^^^ reference kotlin/collections/List# -// ^^^^^^^^ reference com/airbnb/epoxy/preload/ViewData# -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#dataForModel().[U] -// ^^^^^^^^^ reference kotlin/collections/CollectionsKt#emptyList(). - } - - private fun > cacheKey( -// ^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey().[T] -// ^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey(). private final fun cacheKey(preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader, epoxyModel: T, position: kotlin.Int): com.airbnb.epoxy.preload.PreloadableViewDataProvider.CacheKey - preloader: EpoxyModelPreloader, -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey().(preloader) value-parameter preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey().[T] - epoxyModel: T, -// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey().(epoxyModel) value-parameter epoxyModel: T -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey().[T] - position: Int -// ^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# - ): CacheKey { -// ^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey# - val modelSpanSize = if (adapter.isMultiSpan) { -// ^^^^^^^^^^^^^ definition local1 val modelSpanSize: kotlin.Int -// ^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#getAdapter(). - epoxyModel.spanSize(adapter.spanCount, position, adapter.itemCount) -// ^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey().(epoxyModel) -// ^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#getAdapter(). -// ^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey().(position) -// ^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#getAdapter(). - } else { - 1 - } - - return CacheKey( -// ^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#``(). - epoxyModel.javaClass, -// ^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey().(epoxyModel) - modelSpanSize, -// ^^^^^^^^^^^^^ reference local1 - epoxyModel.viewTypeInternal(), -// ^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey().(epoxyModel) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/InternalExposerKt#viewTypeInternal(). - preloader.viewSignature(epoxyModel) -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey().(preloader) -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#viewSignature(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey().(epoxyModel) - ) - } - - private fun , U : ViewMetadata?, P : PreloadRequestHolder> findViewData( -// ^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().[T] -// ^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().[U] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData(). private final fun findViewData(preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader, epoxyModel: T, cacheKey: com.airbnb.epoxy.preload.PreloadableViewDataProvider.CacheKey): kotlin.collections.List>? - preloader: EpoxyModelPreloader, -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().(preloader) value-parameter preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().[T] -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().[U] -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().[P] - epoxyModel: T, -// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().(epoxyModel) value-parameter epoxyModel: T -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().[T] - cacheKey: CacheKey -// ^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().(cacheKey) value-parameter cacheKey: com.airbnb.epoxy.preload.PreloadableViewDataProvider.CacheKey -// ^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey# - ): List>? { -// ^^^^ reference kotlin/collections/List# -// ^^^^^^^^ reference com/airbnb/epoxy/preload/ViewData# -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().[U] - // It is a bit tricky to get details on the view to be preloaded, since the view doesn't necessarily exist at the time of preload. - // This approach looks at currently bound views and tries to get one who's cache key is the same as what we need. - // This should mostly work, since RecyclerViews are generally the same type of views shown repeatedly. - // If a model is only shown sporadically we may never be able to get data about it with this approach, which we could address in the future. - - val holderMatch = adapter.boundViewHoldersInternal().find { -// ^^^^^^^^^^^ definition local2 val holderMatch: [ERROR : ] -// ^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#getAdapter(). - val boundModel = it.model -// ^^^^^^^^^^ definition local3 val boundModel: [ERROR : ] - if (boundModel::class == epoxyModel::class) { -// ^^^^^^^^^^ reference local3 -// ^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().(epoxyModel) - @Suppress("UNCHECKED_CAST") -// ^^^^^^^^ reference kotlin/Suppress#``(). - // We need the view sizes, but viewholders can be bound without actually being laid out on screen yet - ViewCompat.isAttachedToWindow(it.itemView) && - ViewCompat.isLaidOut(it.itemView) && - cacheKey(preloader, boundModel as T, it.adapterPosition) == cacheKey -// ^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#cacheKey(). -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().(preloader) -// ^^^^^^^^^^ reference local3 -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().[T] -// ^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#CacheKey#equals(). -// ^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().(cacheKey) - } else { - false - } - } - - val rootView = holderMatch?.itemView ?: return null -// ^^^^^^^^ definition local4 val rootView: kotlin.Nothing -// ^^^^^^^^^^^ reference local2 - - val boundObject = holderMatch.objectToBindInternal() // Allows usage of view holder models -// ^^^^^^^^^^^ definition local5 val boundObject: [ERROR : ] -// ^^^^^^^^^^^ reference local2 - - val preloadableViews: List = when { -// ^^^^^^^^^^^^^^^^ definition local6 val preloadableViews: kotlin.collections.List<[ERROR : View]> -// ^^^^ reference kotlin/collections/List# - preloader.preloadableViewIds.isNotEmpty() -> rootView.findViews( -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().(preloader) -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#preloadableViewIds. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#getPreloadableViewIds(). -// ^^^^^^^^^^ reference kotlin/collections/CollectionsKt#isNotEmpty(+9). -// ^^^^^^^^ reference local4 -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViews(). - preloader.preloadableViewIds, -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().(preloader) -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#preloadableViewIds. -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#getPreloadableViewIds(). - epoxyModel -// ^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().(epoxyModel) - ) - rootView is Preloadable -> rootView.viewsToPreload -// ^^^^^^^^ reference local4 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/preload/Preloadable# -// ^^^^^^^^ reference local4 - boundObject is Preloadable -> boundObject.viewsToPreload -// ^^^^^^^^^^^ reference local5 -// ^^^^^^^^^^^ reference com/airbnb/epoxy/preload/Preloadable# -// ^^^^^^^^^^^ reference local5 - else -> emptyList() -// ^^^^^^^^^ reference kotlin/collections/CollectionsKt#emptyList(). - } - - if (preloadableViews.isEmpty()) { -// ^^^^^^^^^^^^^^^^ reference local6 -// ^^^^^^^ reference kotlin/collections/List#isEmpty(). - errorHandler(rootView.context, EpoxyPreloadException("No preloadable views were found in ${epoxyModel.javaClass.simpleName}")) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#errorHandler. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#getErrorHandler(). -// ^^^^^^^^ reference local4 -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyPreloadException#``(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().(epoxyModel) - } - - return preloadableViews -// ^^^^^^^^^^^^^^^^ reference local6 - .flatMap { it.recursePreloadableViews() } -// ^^^^^^^ reference kotlin/collections/CollectionsKt#flatMap(+10). -// ^^ reference local7 - .mapNotNull { it.buildData(preloader, epoxyModel) } -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().(preloader) -// ^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViewData().(epoxyModel) - } - - /** Returns child views with the given view ids. */ - private fun > View.findViews( -// ^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViews().[T] -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViews(). private final fun [ERROR : View].findViews(viewIds: kotlin.collections.List, epoxyModel: T): kotlin.collections.List<[ERROR : View]> - viewIds: List, -// ^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViews().(viewIds) value-parameter viewIds: kotlin.collections.List -// ^^^^ reference kotlin/collections/List# -// ^^^ reference kotlin/Int# - epoxyModel: T -// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViews().(epoxyModel) value-parameter epoxyModel: T -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViews().[T] - ): List { -// ^^^^ reference kotlin/collections/List# - return viewIds.mapNotNull { id -> -// ^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViews().(viewIds) -// ^^^^^^^^^^ reference kotlin/collections/CollectionsKt#mapNotNull(+1). -// ^^ definition local8 value-parameter id: kotlin.Int - findViewById(id).apply { -// ^^ reference local8 - if (this == null) errorHandler(context, EpoxyPreloadException("View with id $id in ${epoxyModel.javaClass.simpleName} could not be found.")) -// ^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViews(). -// ^^ reference local8 -// ^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#findViews().(epoxyModel) - } - } - } - - /** If a View with the [Preloadable] interface is used we want to get all of the preloadable views contained in that Preloadable instead. */ - private fun T.recursePreloadableViews(): List { -// ^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#recursePreloadableViews().[T] -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#recursePreloadableViews().[T] -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#recursePreloadableViews(). private final fun T.recursePreloadableViews(): kotlin.collections.List<[ERROR : View]> -// ^^^^ reference kotlin/collections/List# - return if (this is Preloadable) { -// ^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#recursePreloadableViews(). -// ^^^^^^^^^^^ reference com/airbnb/epoxy/preload/Preloadable# - viewsToPreload.flatMap { it.recursePreloadableViews() } -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/Preloadable#viewsToPreload. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/Preloadable#getViewsToPreload(). -// ^^^^^^^ reference kotlin/collections/CollectionsKt#flatMap(+10). -// ^^ reference local9 - } else { - listOf(this) -// ^^^^^^ reference kotlin/collections/CollectionsKt#listOf(). -// ^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#recursePreloadableViews(). - } - } - - private fun , U : ViewMetadata?, P : PreloadRequestHolder> View.buildData( -// ^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData().[T] -// ^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData().[U] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData().[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData(). private final fun [ERROR : View].buildData(preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader, epoxyModel: T): com.airbnb.epoxy.preload.ViewData? - preloader: EpoxyModelPreloader, -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData().(preloader) value-parameter preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData().[T] -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData().[U] -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData().[P] - epoxyModel: T -// ^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData().(epoxyModel) value-parameter epoxyModel: T -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData().[T] - ): ViewData? { -// ^^^^^^^^ reference com/airbnb/epoxy/preload/ViewData# -// ^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData().[U] - - // Glide's internal size determiner takes view dimensions and subtracts padding to get target size. - // TODO: We could support size overrides by allowing the preloader to specify a size override callback - val width = width - paddingLeft - paddingRight -// ^^^^^ definition local10 val width: [ERROR : ] - val height = height - paddingTop - paddingBottom -// ^^^^^^ definition local11 val height: [ERROR : ] - - if (width <= 0 || height <= 0) { -// ^^^^^ reference local10 -// ^^^^^^ reference local11 - // If no placeholder or aspect ratio is used then the view might be empty before its content loads - errorHandler(context, EpoxyPreloadException("${this.javaClass.simpleName} in ${epoxyModel.javaClass.simpleName} has zero size. A size must be set to allow preloading.")) -// ^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData().(epoxyModel) - return null - } - - return ViewData( - id, - width, -// ^^^^^ reference local10 - height, -// ^^^^^^ reference local11 - preloader.buildViewMetadata(this) -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData().(preloader) -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader#buildViewMetadata(). -// ^^^^ reference com/airbnb/epoxy/preload/PreloadableViewDataProvider#buildData(). - ) - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/PreloaderExtensions.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/PreloaderExtensions.kt deleted file mode 100644 index 5979cac0c..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/preload/PreloaderExtensions.kt +++ /dev/null @@ -1,79 +0,0 @@ -package com.airbnb.epoxy.preload -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^ reference com/airbnb/epoxy/preload/ - -import androidx.recyclerview.widget.RecyclerView -// ^^^^^^^^ reference androidx/ -import com.airbnb.epoxy.EpoxyController -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -import com.airbnb.epoxy.EpoxyModel -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -import com.airbnb.epoxy.utils.isDebuggable -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^ reference com/airbnb/epoxy/utils/ -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/utils/utilsKt#isDebuggable. - -/** - * Helper to create and add an [EpoxyPreloader] to this RecyclerView. - * - * If you are using [com.airbnb.epoxy.EpoxyRecyclerView], prefer[com.airbnb.epoxy.EpoxyRecyclerView.addPreloader] - * instead. - * - * @param maxPreloadDistance How many items to prefetch ahead of the last bound item - * @param errorHandler Called when the preloader encounters an exception. By default this throws only - * if the app is not in a debuggle model - * @param preloader Describes how view content for the EpoxyModel should be preloaded - * @param requestHolderFactory Should create and return a new [PreloadRequestHolder] each time it is invoked - */ -fun , U : ViewMetadata?, P : PreloadRequestHolder> RecyclerView.addEpoxyPreloader( -// ^ definition com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().[T] -// ^ definition com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().[U] -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/ViewMetadata# -// ^ definition com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().[P]

-// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadRequestHolder# -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader(). public fun [ERROR : RecyclerView].addEpoxyPreloader(epoxyController: [ERROR : EpoxyController], maxPreloadDistance: kotlin.Int = ..., errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ = ..., preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader, requestHolderFactory: () -> P) - epoxyController: EpoxyController, -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().(epoxyController) value-parameter epoxyController: [ERROR : EpoxyController] - maxPreloadDistance: Int = 3, -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().(maxPreloadDistance) value-parameter maxPreloadDistance: kotlin.Int = ... -// ^^^ reference kotlin/Int# - errorHandler: PreloadErrorHandler = { context, err -> if (!context.isDebuggable) throw err }, -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().(errorHandler) value-parameter errorHandler: com.airbnb.epoxy.preload.PreloadErrorHandler /* = ([ERROR : Context], kotlin.RuntimeException /* = java.lang.RuntimeException */) -> kotlin.Unit */ = ... -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloadErrorHandler# -// ^^^^^^^ definition local0 value-parameter context: [ERROR : Context] -// ^^^ definition local1 value-parameter err: kotlin.RuntimeException /* = java.lang.RuntimeException */ -// ^^^^^^^ reference local0 -// ^^^ reference local1 - preloader: EpoxyModelPreloader, -// ^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().(preloader) value-parameter preloader: com.airbnb.epoxy.preload.EpoxyModelPreloader -// ^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/EpoxyModelPreloader# -// ^ reference com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().[T] -// ^ reference com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().[U] -// ^ reference com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().[P] - requestHolderFactory: () -> P -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().(requestHolderFactory) value-parameter requestHolderFactory: () -> P -// ^ reference com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().[P] -) { - EpoxyPreloader.with( - epoxyController, -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().(epoxyController) - requestHolderFactory, -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().(requestHolderFactory) - errorHandler, -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().(errorHandler) - maxPreloadDistance, -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().(maxPreloadDistance) - preloader -// ^^^^^^^^^ reference com/airbnb/epoxy/preload/PreloaderExtensionsKt#addEpoxyPreloader().(preloader) - ).let { - addOnScrollListener(it) - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/stickyheader/StickyHeaderCallbacks.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/stickyheader/StickyHeaderCallbacks.kt deleted file mode 100644 index 8ecd16e70..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/stickyheader/StickyHeaderCallbacks.kt +++ /dev/null @@ -1,55 +0,0 @@ -package com.airbnb.epoxy.stickyheader -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/ - -import android.view.View -import androidx.recyclerview.widget.RecyclerView -// ^^^^^^^^ reference androidx/ - -/** - * Adds sticky headers capabilities to any [RecyclerView.Adapter] - * combined with [StickyHeaderLinearLayoutManager]. - */ -interface StickyHeaderCallbacks { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderCallbacks# public interface StickyHeaderCallbacks - - /** - * Return true if the view at the specified [position] needs to be sticky - * else false. - */ - fun isStickyHeader(position: Int): Boolean -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderCallbacks#isStickyHeader(). public abstract fun isStickyHeader(position: kotlin.Int): kotlin.Boolean -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderCallbacks#isStickyHeader().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^ reference kotlin/Boolean# - - //region Optional callbacks - - /** - * Callback to adjusts any necessary properties of the [stickyHeader] view - * that is being used as a sticky, eg. elevation. - * Default behaviour is no-op. - * - * [teardownStickyHeaderView] will be called sometime after this method - * and before any other calls to this method go through. - */ - fun setupStickyHeaderView(stickyHeader: View) = Unit -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderCallbacks#setupStickyHeaderView(). public open fun setupStickyHeaderView(stickyHeader: [ERROR : View]) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderCallbacks#setupStickyHeaderView().(stickyHeader) value-parameter stickyHeader: [ERROR : View] -// ^^^^ reference kotlin/Unit# - - /** - * Callback to revert any properties changed in [setupStickyHeaderView]. - * Default behaviour is no-op. - * - * Called after [setupStickyHeaderView]. - */ - fun teardownStickyHeaderView(stickyHeader: View) = Unit -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderCallbacks#teardownStickyHeaderView(). public open fun teardownStickyHeaderView(stickyHeader: [ERROR : View]) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderCallbacks#teardownStickyHeaderView().(stickyHeader) value-parameter stickyHeader: [ERROR : View] -// ^^^^ reference kotlin/Unit# - - //endregion -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager.kt deleted file mode 100644 index dbb940f26..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager.kt +++ /dev/null @@ -1,1735 +0,0 @@ -package com.airbnb.epoxy.stickyheader -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/ - -import android.content.Context -import android.graphics.PointF -import android.os.Build -import android.os.Parcelable -import android.view.View -import android.view.ViewGroup -import android.view.ViewTreeObserver -import androidx.recyclerview.widget.LinearLayoutManager -// ^^^^^^^^ reference androidx/ -import androidx.recyclerview.widget.RecyclerView -// ^^^^^^^^ reference androidx/ -import com.airbnb.epoxy.BaseEpoxyAdapter -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -import kotlinx.android.parcel.Parcelize -// ^^^^^^^ reference kotlinx/ -// ^^^^^^^ reference kotlinx/android/ -// ^^^^^^ reference kotlinx/android/parcel/ -// ^^^^^^^^^ reference kotlinx/android/parcel/Parcelize# - -/** - * Adds sticky headers capabilities to your [RecyclerView.Adapter]. - * The adapter / controller must override [StickyHeaderCallbacks.isStickyHeader] to - * indicate which items are sticky. - * - * Example usage: - * ``` - * class StickyHeaderController() : EpoxyController() { - * override fun isStickyHeader(position: Int) { - * // Write your logic to tell which item is sticky. - * } - * } - * ``` - */ -class StickyHeaderLinearLayoutManager @JvmOverloads constructor( -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager# public final class StickyHeaderLinearLayoutManager -// ^^^^^^^^^^^^ reference kotlin/jvm/JvmOverloads#``(). -// ^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#``(). public constructor StickyHeaderLinearLayoutManager(context: [ERROR : Context], orientation: kotlin.Int = ..., reverseLayout: kotlin.Boolean = ...) - context: Context, -// ^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#``().(context) value-parameter context: [ERROR : Context] - orientation: Int = RecyclerView.VERTICAL, -// ^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#``().(orientation) value-parameter orientation: kotlin.Int = ... -// ^^^ reference kotlin/Int# - reverseLayout: Boolean = false -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#``().(reverseLayout) value-parameter reverseLayout: kotlin.Boolean = ... -// ^^^^^^^ reference kotlin/Boolean# -) : LinearLayoutManager(context, orientation, reverseLayout) { -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#``().(context) -// ^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#``().(orientation) -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#``().(reverseLayout) - - private var adapter: BaseEpoxyAdapter? = null -// ^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#adapter. private final var adapter: [ERROR : BaseEpoxyAdapter]? -// ^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getAdapter(). private final var adapter: [ERROR : BaseEpoxyAdapter]? -// ^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter(). private final fun setAdapter(newAdapter: [ERROR : RecyclerView.Adapter<*>]?) - - // Translation for header - private var translationX: Float = 0f -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationX. private final var translationX: kotlin.Float -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationX(). private final var translationX: kotlin.Float -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationX(). private final var translationX: kotlin.Float -// ^^^^^ reference kotlin/Float# - private var translationY: Float = 0f -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationY. private final var translationY: kotlin.Float -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationY(). private final var translationY: kotlin.Float -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationY(). private final var translationY: kotlin.Float -// ^^^^^ reference kotlin/Float# - - // Header positions for the currently displayed list and their observer. - private val headerPositions = mutableListOf() -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. private final val headerPositions: kotlin.collections.MutableList -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). private final val headerPositions: kotlin.collections.MutableList -// ^^^^^^^^^^^^^ reference kotlin/collections/CollectionsKt#mutableListOf(). -// ^^^ reference kotlin/Int# - private val headerPositionsObserver = HeaderPositionsAdapterDataObserver() -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositionsObserver. private final val headerPositionsObserver: com.airbnb.epoxy.stickyheader.StickyHeaderLinearLayoutManager.HeaderPositionsAdapterDataObserver -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositionsObserver(). private final val headerPositionsObserver: com.airbnb.epoxy.stickyheader.StickyHeaderLinearLayoutManager.HeaderPositionsAdapterDataObserver -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#``(). - - // Sticky header's ViewHolder and dirty state. - private var stickyHeader: View? = null -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. private final var stickyHeader: [ERROR : View]? -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). private final var stickyHeader: [ERROR : View]? -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). private final var stickyHeader: [ERROR : View]? - private var stickyHeaderPosition = RecyclerView.NO_POSITION -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeaderPosition. private final var stickyHeaderPosition: [ERROR : ] -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeaderPosition(). private final var stickyHeaderPosition: [ERROR : ] -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeaderPosition(). private final var stickyHeaderPosition: [ERROR : ] - - // Save / Restore scroll state - private var scrollPosition = RecyclerView.NO_POSITION -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollPosition. private final var scrollPosition: [ERROR : ] -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getScrollPosition(). private final var scrollPosition: [ERROR : ] -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollPosition(). private final var scrollPosition: [ERROR : ] - private var scrollOffset = 0 -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollOffset. private final var scrollOffset: kotlin.Int -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getScrollOffset(). private final var scrollOffset: kotlin.Int -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollOffset(). private final var scrollOffset: kotlin.Int - - override fun onAttachedToWindow(recyclerView: RecyclerView) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onAttachedToWindow(). public open fun onAttachedToWindow(recyclerView: [ERROR : RecyclerView]) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onAttachedToWindow().(recyclerView) value-parameter recyclerView: [ERROR : RecyclerView] - super.onAttachedToWindow(recyclerView) -// ^^^^^ reference kotlin/Any# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onAttachedToWindow().(recyclerView) - setAdapter(recyclerView.adapter) -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onAttachedToWindow().(recyclerView) - } - - override fun onAdapterChanged(oldAdapter: RecyclerView.Adapter<*>?, newAdapter: RecyclerView.Adapter<*>?) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onAdapterChanged(). public open fun onAdapterChanged(oldAdapter: [ERROR : RecyclerView.Adapter<*>]?, newAdapter: [ERROR : RecyclerView.Adapter<*>]?) -// ^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onAdapterChanged().(oldAdapter) value-parameter oldAdapter: [ERROR : RecyclerView.Adapter<*>]? -// ^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onAdapterChanged().(newAdapter) value-parameter newAdapter: [ERROR : RecyclerView.Adapter<*>]? - super.onAdapterChanged(oldAdapter, newAdapter) -// ^^^^^ reference kotlin/Any# -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onAdapterChanged().(oldAdapter) -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onAdapterChanged().(newAdapter) - setAdapter(newAdapter) -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onAdapterChanged().(newAdapter) - } - - @Suppress("UNCHECKED_CAST") -// ^^^^^^^^ reference kotlin/Suppress#``(). - private fun setAdapter(newAdapter: RecyclerView.Adapter<*>?) { -// ^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter(). private final fun setAdapter(newAdapter: [ERROR : RecyclerView.Adapter<*>]?) -// ^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter().(newAdapter) value-parameter newAdapter: [ERROR : RecyclerView.Adapter<*>]? - adapter?.unregisterAdapterDataObserver(headerPositionsObserver) -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getAdapter(). -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter(). -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositionsObserver. -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositionsObserver(). - if (newAdapter is BaseEpoxyAdapter) { -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter().(newAdapter) - adapter = newAdapter -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getAdapter(). -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter().(newAdapter) - adapter?.registerAdapterDataObserver(headerPositionsObserver) -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getAdapter(). -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter(). -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositionsObserver. -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositionsObserver(). - headerPositionsObserver.onChanged() -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositionsObserver. -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositionsObserver(). -// ^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onChanged(). - } else { - adapter = null -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getAdapter(). -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter(). - headerPositions.clear() -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^^ reference kotlin/collections/MutableList#clear(). - } - } - - override fun onSaveInstanceState(): Parcelable { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onSaveInstanceState(). public open fun onSaveInstanceState(): [ERROR : Parcelable] - return SavedState( -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#``(). - superState = super.onSaveInstanceState(), -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#``().(superState) -// ^^^^^ reference kotlin/Any# - scrollPosition = scrollPosition, -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#``().(scrollPosition) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollPosition. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getScrollPosition(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollPosition(). - scrollOffset = scrollOffset -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#``().(scrollOffset) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollOffset. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getScrollOffset(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollOffset(). - ) - } - - override fun onRestoreInstanceState(state: Parcelable?) { -// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onRestoreInstanceState(). public open fun onRestoreInstanceState(state: [ERROR : Parcelable]?) -// ^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onRestoreInstanceState().(state) value-parameter state: [ERROR : Parcelable]? - (state as? SavedState)?.let { -// ^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onRestoreInstanceState().(state) -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState# -// ^^^ reference kotlin/StandardKt#let(). - scrollPosition = it.scrollPosition -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollPosition. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getScrollPosition(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollPosition(). -// ^^ reference local0 -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#scrollPosition. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#getScrollPosition(). - scrollOffset = it.scrollOffset -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollOffset. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getScrollOffset(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollOffset(). -// ^^ reference local0 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#scrollOffset. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#getScrollOffset(). - super.onRestoreInstanceState(it.superState) -// ^^^^^ reference kotlin/Any# -// ^^ reference local0 -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#superState. -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#getSuperState(). - } - } - - override fun scrollVerticallyBy(dy: Int, recycler: RecyclerView.Recycler, state: RecyclerView.State?): Int { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollVerticallyBy(). public open fun scrollVerticallyBy(dy: kotlin.Int, recycler: [ERROR : RecyclerView.Recycler], state: [ERROR : RecyclerView.State]?): kotlin.Int -// ^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollVerticallyBy().(dy) value-parameter dy: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollVerticallyBy().(recycler) value-parameter recycler: [ERROR : RecyclerView.Recycler] -// ^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollVerticallyBy().(state) value-parameter state: [ERROR : RecyclerView.State]? -// ^^^ reference kotlin/Int# - val scrolled = restoreView { super.scrollVerticallyBy(dy, recycler, state) } -// ^^^^^^^^ definition local1 val scrolled: kotlin.Unit -// ^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView(). -// ^^^^^ reference kotlin/Any# -// ^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollVerticallyBy().(dy) -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollVerticallyBy().(recycler) -// ^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollVerticallyBy().(state) - if (scrolled != 0) { -// ^^^^^^^^ reference local1 -// ^^ reference kotlin/Unit#equals(). - updateStickyHeader(recycler, false) -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#updateStickyHeader(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollVerticallyBy().(recycler) - } - return scrolled -// ^^^^^^^^ reference local1 - } - - override fun scrollHorizontallyBy(dx: Int, recycler: RecyclerView.Recycler, state: RecyclerView.State?): Int { -// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollHorizontallyBy(). public open fun scrollHorizontallyBy(dx: kotlin.Int, recycler: [ERROR : RecyclerView.Recycler], state: [ERROR : RecyclerView.State]?): kotlin.Int -// ^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollHorizontallyBy().(dx) value-parameter dx: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollHorizontallyBy().(recycler) value-parameter recycler: [ERROR : RecyclerView.Recycler] -// ^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollHorizontallyBy().(state) value-parameter state: [ERROR : RecyclerView.State]? -// ^^^ reference kotlin/Int# - val scrolled = restoreView { super.scrollHorizontallyBy(dx, recycler, state) } -// ^^^^^^^^ definition local2 val scrolled: kotlin.Unit -// ^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView(). -// ^^^^^ reference kotlin/Any# -// ^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollHorizontallyBy().(dx) -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollHorizontallyBy().(recycler) -// ^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollHorizontallyBy().(state) - if (scrolled != 0) { -// ^^^^^^^^ reference local2 -// ^^ reference kotlin/Unit#equals(). - updateStickyHeader(recycler, false) -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#updateStickyHeader(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollHorizontallyBy().(recycler) - } - return scrolled -// ^^^^^^^^ reference local2 - } - - override fun onLayoutChildren(recycler: RecyclerView.Recycler, state: RecyclerView.State) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onLayoutChildren(). public open fun onLayoutChildren(recycler: [ERROR : RecyclerView.Recycler], state: [ERROR : RecyclerView.State]) -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onLayoutChildren().(recycler) value-parameter recycler: [ERROR : RecyclerView.Recycler] -// ^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onLayoutChildren().(state) value-parameter state: [ERROR : RecyclerView.State] - restoreView { super.onLayoutChildren(recycler, state) } -// ^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView(). -// ^^^^^ reference kotlin/Any# -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onLayoutChildren().(recycler) -// ^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onLayoutChildren().(state) - if (!state.isPreLayout) { -// ^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onLayoutChildren().(state) - updateStickyHeader(recycler, true) -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#updateStickyHeader(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onLayoutChildren().(recycler) - } - } - - override fun scrollToPosition(position: Int) = scrollToPositionWithOffset(position, INVALID_OFFSET) -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPosition(). public open fun scrollToPosition(position: kotlin.Int) -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPosition().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPosition().(position) - - override fun scrollToPositionWithOffset(position: Int, offset: Int) = scrollToPositionWithOffset(position, offset, true) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(). public open fun scrollToPositionWithOffset(position: kotlin.Int, offset: kotlin.Int) -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset().(offset) value-parameter offset: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset().(position) -// ^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset().(offset) - - private fun scrollToPositionWithOffset(position: Int, offset: Int, adjustForStickyHeader: Boolean) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1). private final fun scrollToPositionWithOffset(position: kotlin.Int, offset: kotlin.Int, adjustForStickyHeader: kotlin.Boolean) -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(offset) value-parameter offset: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(adjustForStickyHeader) value-parameter adjustForStickyHeader: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - // Reset pending scroll. - setScrollState(RecyclerView.NO_POSITION, INVALID_OFFSET) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollState(). - - // Adjusting is disabled. - if (!adjustForStickyHeader) { -// ^ reference kotlin/Boolean#not(). -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(adjustForStickyHeader) - super.scrollToPositionWithOffset(position, offset) -// ^^^^^ reference kotlin/Any# -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(position) -// ^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(offset) - return - } - - // There is no header above or the position is a header. - val headerIndex = findHeaderIndexOrBefore(position) -// ^^^^^^^^^^^ definition local3 val headerIndex: kotlin.Int -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrBefore(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(position) - if (headerIndex == -1 || findHeaderIndex(position) != -1) { -// ^^^^^^^^^^^ reference local3 -// ^^ reference kotlin/Int#equals(). -// ^ reference kotlin/Int#unaryMinus(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndex(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(position) -// ^^ reference kotlin/Int#equals(). -// ^ reference kotlin/Int#unaryMinus(). - super.scrollToPositionWithOffset(position, offset) -// ^^^^^ reference kotlin/Any# -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(position) -// ^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(offset) - return - } - - // The position is right below a header, scroll to the header. - if (findHeaderIndex(position - 1) != -1) { -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndex(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(position) -// ^ reference kotlin/Int#minus(+3). -// ^^ reference kotlin/Int#equals(). -// ^ reference kotlin/Int#unaryMinus(). - super.scrollToPositionWithOffset(position - 1, offset) -// ^^^^^ reference kotlin/Any# -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(position) -// ^ reference kotlin/Int#minus(+3). -// ^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(offset) - return - } - - // Current sticky header is the same as at the position. Adjust the scroll offset and reset pending scroll. - if (stickyHeader != null && headerIndex == findHeaderIndex(stickyHeaderPosition)) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). -// ^^^^^^^^^^^ reference local3 -// ^^ reference kotlin/Int#equals(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndex(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeaderPosition. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeaderPosition(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeaderPosition(). - val adjustedOffset = (if (offset != INVALID_OFFSET) offset else 0) + stickyHeader!!.height -// ^^^^^^^^^^^^^^ definition local4 val adjustedOffset: [ERROR : Type for (if (offset != INVALID_OFFSET) offset else 0) + stickyHeader!!.height] -// ^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(offset) -// ^^ reference kotlin/Int#equals(). -// ^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(offset) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). - super.scrollToPositionWithOffset(position, adjustedOffset) -// ^^^^^ reference kotlin/Any# -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(position) -// ^^^^^^^^^^^^^^ reference local4 - return - } - - // Remember this position and offset and scroll to it to trigger creating the sticky header. - setScrollState(position, offset) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollState(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(position) -// ^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(offset) - super.scrollToPositionWithOffset(position, offset) -// ^^^^^ reference kotlin/Any# -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(position) -// ^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(+1).(offset) - } - - //region Computation - // Mainly [RecyclerView] functionality by removing sticky header from calculations - - override fun computeVerticalScrollExtent(state: RecyclerView.State): Int = restoreView { super.computeVerticalScrollExtent(state) } -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeVerticalScrollExtent(). public open fun computeVerticalScrollExtent(state: [ERROR : RecyclerView.State]): kotlin.Int -// ^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeVerticalScrollExtent().(state) value-parameter state: [ERROR : RecyclerView.State] -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView(). -// ^^^^^ reference kotlin/Any# -// ^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeVerticalScrollExtent().(state) - - override fun computeVerticalScrollOffset(state: RecyclerView.State): Int = restoreView { super.computeVerticalScrollOffset(state) } -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeVerticalScrollOffset(). public open fun computeVerticalScrollOffset(state: [ERROR : RecyclerView.State]): kotlin.Int -// ^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeVerticalScrollOffset().(state) value-parameter state: [ERROR : RecyclerView.State] -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView(). -// ^^^^^ reference kotlin/Any# -// ^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeVerticalScrollOffset().(state) - - override fun computeVerticalScrollRange(state: RecyclerView.State): Int = restoreView { super.computeVerticalScrollRange(state) } -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeVerticalScrollRange(). public open fun computeVerticalScrollRange(state: [ERROR : RecyclerView.State]): kotlin.Int -// ^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeVerticalScrollRange().(state) value-parameter state: [ERROR : RecyclerView.State] -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView(). -// ^^^^^ reference kotlin/Any# -// ^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeVerticalScrollRange().(state) - - override fun computeHorizontalScrollExtent(state: RecyclerView.State): Int = restoreView { super.computeHorizontalScrollExtent(state) } -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeHorizontalScrollExtent(). public open fun computeHorizontalScrollExtent(state: [ERROR : RecyclerView.State]): kotlin.Int -// ^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeHorizontalScrollExtent().(state) value-parameter state: [ERROR : RecyclerView.State] -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView(). -// ^^^^^ reference kotlin/Any# -// ^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeHorizontalScrollExtent().(state) - - override fun computeHorizontalScrollOffset(state: RecyclerView.State): Int = restoreView { super.computeHorizontalScrollOffset(state) } -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeHorizontalScrollOffset(). public open fun computeHorizontalScrollOffset(state: [ERROR : RecyclerView.State]): kotlin.Int -// ^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeHorizontalScrollOffset().(state) value-parameter state: [ERROR : RecyclerView.State] -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView(). -// ^^^^^ reference kotlin/Any# -// ^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeHorizontalScrollOffset().(state) - - override fun computeHorizontalScrollRange(state: RecyclerView.State): Int = restoreView { super.computeHorizontalScrollRange(state) } -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeHorizontalScrollRange(). public open fun computeHorizontalScrollRange(state: [ERROR : RecyclerView.State]): kotlin.Int -// ^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeHorizontalScrollRange().(state) value-parameter state: [ERROR : RecyclerView.State] -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView(). -// ^^^^^ reference kotlin/Any# -// ^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeHorizontalScrollRange().(state) - - override fun computeScrollVectorForPosition(targetPosition: Int): PointF? = restoreView { super.computeScrollVectorForPosition(targetPosition) } -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeScrollVectorForPosition(). public open fun computeScrollVectorForPosition(targetPosition: kotlin.Int): [ERROR : PointF]? -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeScrollVectorForPosition().(targetPosition) value-parameter targetPosition: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView(). -// ^^^^^ reference kotlin/Any# -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#computeScrollVectorForPosition().(targetPosition) - - override fun onFocusSearchFailed( -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onFocusSearchFailed(). public open fun onFocusSearchFailed(focused: [ERROR : View], focusDirection: kotlin.Int, recycler: [ERROR : RecyclerView.Recycler], state: [ERROR : RecyclerView.State]): [ERROR : View]? - focused: View, -// ^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onFocusSearchFailed().(focused) value-parameter focused: [ERROR : View] - focusDirection: Int, -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onFocusSearchFailed().(focusDirection) value-parameter focusDirection: kotlin.Int -// ^^^ reference kotlin/Int# - recycler: RecyclerView.Recycler, -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onFocusSearchFailed().(recycler) value-parameter recycler: [ERROR : RecyclerView.Recycler] - state: RecyclerView.State -// ^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onFocusSearchFailed().(state) value-parameter state: [ERROR : RecyclerView.State] - ): View? = restoreView { super.onFocusSearchFailed(focused, focusDirection, recycler, state) } -// ^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView(). -// ^^^^^ reference kotlin/Any# -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onFocusSearchFailed().(focused) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onFocusSearchFailed().(focusDirection) -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onFocusSearchFailed().(recycler) -// ^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#onFocusSearchFailed().(state) - - /** - * Perform the [operation] without the sticky header view by - * detaching the view -> performing operation -> detaching the view. - */ - private fun restoreView(operation: () -> T): T { -// ^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView().[T] -// ^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView(). private final fun restoreView(operation: () -> T): T -// ^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView().(operation) value-parameter operation: () -> T -// ^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView().[T] -// ^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView().[T] - stickyHeader?.let(this::detachView) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager# - val result = operation() -// ^^^^^^ definition local5 val result: T -// ^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#restoreView().(operation) - stickyHeader?.let(this::attachView) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager# - return result -// ^^^^^^ reference local5 - } - - //endregion - - /** - * Offsets the vertical location of the sticky header relative to the its default position. - */ - fun setStickyHeaderTranslationY(translationY: Float) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeaderTranslationY(). public final fun setStickyHeaderTranslationY(translationY: kotlin.Float) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeaderTranslationY().(translationY) value-parameter translationY: kotlin.Float -// ^^^^^ reference kotlin/Float# - this.translationY = translationY -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationY. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationY(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationY(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeaderTranslationY().(translationY) - requestLayout() - } - - /** - * Offsets the horizontal location of the sticky header relative to the its default position. - */ - fun setStickyHeaderTranslationX(translationX: Float) { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeaderTranslationX(). public final fun setStickyHeaderTranslationX(translationX: kotlin.Float) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeaderTranslationX().(translationX) value-parameter translationX: kotlin.Float -// ^^^^^ reference kotlin/Float# - this.translationX = translationX -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationX. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationX(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationX(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeaderTranslationX().(translationX) - requestLayout() - } - - /** - * Returns true if `view` is the current sticky header. - */ - fun isStickyHeader(view: View): Boolean = view === stickyHeader -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isStickyHeader(). public final fun isStickyHeader(view: [ERROR : View]): kotlin.Boolean -// ^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isStickyHeader().(view) value-parameter view: [ERROR : View] -// ^^^^^^^ reference kotlin/Boolean# -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isStickyHeader().(view) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). - - /** - * Updates the sticky header state (creation, binding, display), to be called whenever there's a layout or scroll - */ - private fun updateStickyHeader(recycler: RecyclerView.Recycler, layout: Boolean) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#updateStickyHeader(). private final fun updateStickyHeader(recycler: [ERROR : RecyclerView.Recycler], layout: kotlin.Boolean) -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#updateStickyHeader().(recycler) value-parameter recycler: [ERROR : RecyclerView.Recycler] -// ^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#updateStickyHeader().(layout) value-parameter layout: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - val headerCount = headerPositions.size -// ^^^^^^^^^^^ definition local6 val headerCount: kotlin.Int -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^ reference kotlin/collections/MutableList#size. -// ^^^^ reference kotlin/collections/MutableList#getSize(). - val childCount = childCount -// ^^^^^^^^^^ definition local7 val childCount: [ERROR : Type for childCount] - if (headerCount > 0 && childCount > 0) { -// ^^^^^^^^^^^ reference local6 -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^ reference local7 - // Find first valid child. - var anchorView: View? = null -// ^^^^^^^^^^ definition local8 var anchorView: [ERROR : View]? - var anchorIndex = -1 -// ^^^^^^^^^^^ definition local9 var anchorIndex: kotlin.Int -// ^ reference kotlin/Int#unaryMinus(). - var anchorPos = -1 -// ^^^^^^^^^ definition local10 var anchorPos: kotlin.Int -// ^ reference kotlin/Int#unaryMinus(). - for (i in 0 until childCount) { -// ^ definition local11 val i: kotlin.Int -// ^^^^^ reference kotlin/ranges/RangesKt#until(+6). -// ^^^^^^^^^^ reference local7 - val child = getChildAt(i) -// ^^^^^ definition local12 val child: [ERROR : Type for getChildAt(i)] -// ^ reference local11 - val params = child!!.layoutParams as RecyclerView.LayoutParams -// ^^^^^^ definition local13 val params: [ERROR : RecyclerView.LayoutParams] -// ^^^^^ reference local12 - if (isViewValidAnchor(child, params)) { -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewValidAnchor(). -// ^^^^^ reference local12 -// ^^^^^^ reference local13 - anchorView = child -// ^^^^^^^^^^ reference local8 -// ^^^^^ reference local12 - anchorIndex = i -// ^^^^^^^^^^^ reference local9 -// ^ reference local11 - anchorPos = params.viewAdapterPosition -// ^^^^^^^^^ reference local10 -// ^^^^^^ reference local13 - break - } - } - if (anchorView != null && anchorPos != -1) { -// ^^^^^^^^^^ reference local8 -// ^^^^^^^^^ reference local10 -// ^^ reference kotlin/Int#equals(). -// ^ reference kotlin/Int#unaryMinus(). - val headerIndex = findHeaderIndexOrBefore(anchorPos) -// ^^^^^^^^^^^ definition local14 val headerIndex: kotlin.Int -// ^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrBefore(). -// ^^^^^^^^^ reference local10 - val headerPos = if (headerIndex != -1) headerPositions[headerIndex] else -1 -// ^^^^^^^^^ definition local15 val headerPos: kotlin.Int -// ^^^^^^^^^^^ reference local14 -// ^^ reference kotlin/Int#equals(). -// ^ reference kotlin/Int#unaryMinus(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^^^^^^^^ reference local14 -// ^ reference kotlin/Int#unaryMinus(). - val nextHeaderPos = if (headerCount > headerIndex + 1) headerPositions[headerIndex + 1] else -1 -// ^^^^^^^^^^^^^ definition local16 val nextHeaderPos: kotlin.Int -// ^^^^^^^^^^^ reference local6 -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^ reference local14 -// ^ reference kotlin/Int#plus(+3). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^^^^^^^^ reference local14 -// ^ reference kotlin/Int#plus(+3). -// ^ reference kotlin/Int#unaryMinus(). - - // Show sticky header if: - // - There's one to show; - // - It's on the edge or it's not the anchor view; - // - Isn't followed by another sticky header; - if (headerPos != -1 && -// ^^^^^^^^^ reference local15 -// ^^ reference kotlin/Int#equals(). -// ^ reference kotlin/Int#unaryMinus(). - (headerPos != anchorPos || isViewOnBoundary(anchorView)) && -// ^^^^^^^^^ reference local15 -// ^^ reference kotlin/Int#equals(). -// ^^^^^^^^^ reference local10 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewOnBoundary(). -// ^^^^^^^^^^ reference local8 - nextHeaderPos != headerPos + 1 -// ^^^^^^^^^^^^^ reference local16 -// ^^ reference kotlin/Int#equals(). -// ^^^^^^^^^ reference local15 -// ^ reference kotlin/Int#plus(+3). - ) { - // 1. Ensure existing sticky header, if any, is of correct type. - if (stickyHeader != null && getItemViewType(stickyHeader!!) != adapter?.getItemViewType(headerPos)) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getAdapter(). -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter(). -// ^^^^^^^^^ reference local15 - // A sticky header was shown before but is not of the correct type. Scrap it. - scrapStickyHeader(recycler) -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrapStickyHeader(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#updateStickyHeader().(recycler) - } - - // 2. Ensure sticky header is created, if absent, or bound, if being laid out or the position changed. - if (stickyHeader == null) createStickyHeader(recycler, headerPos) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). -// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#createStickyHeader(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#updateStickyHeader().(recycler) -// ^^^^^^^^^ reference local15 - // 3. Bind the sticky header - if (layout || getPosition(stickyHeader!!) != headerPos) bindStickyHeader(recycler, stickyHeader!!, headerPos) -// ^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#updateStickyHeader().(layout) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). -// ^^^^^^^^^ reference local15 -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#updateStickyHeader().(recycler) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). -// ^^^^^^^^^ reference local15 - - // 4. Draw the sticky header using translation values which depend on orientation, direction and - // position of the next header view. - stickyHeader?.let { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). - val nextHeaderView: View? = if (nextHeaderPos != -1) { -// ^^^^^^^^^^^^^^ definition local17 val nextHeaderView: [ERROR : View]? -// ^^^^^^^^^^^^^ reference local16 -// ^^ reference kotlin/Int#equals(). -// ^ reference kotlin/Int#unaryMinus(). - val nextHeaderView = getChildAt(anchorIndex + (nextHeaderPos - anchorPos)) -// ^^^^^^^^^^^^^^ definition local18 val nextHeaderView: [ERROR : Type for getChildAt(anchorIndex + (nextHeaderPos - anchorPos))] -// ^^^^^^^^^^^ reference local9 -// ^ reference kotlin/Int#plus(+3). -// ^^^^^^^^^^^^^ reference local16 -// ^ reference kotlin/Int#minus(+3). -// ^^^^^^^^^ reference local10 - // The header view itself is added to the RecyclerView. Discard it if it comes up. - if (nextHeaderView === stickyHeader) null else nextHeaderView -// ^^^^^^^^^^^^^^ reference local18 -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). -// ^^^^^^^^^^^^^^ reference local18 - } else null - it.translationX = getX(it, nextHeaderView) -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getX(). -// ^^^^^^^^^^^^^^ reference local17 - it.translationY = getY(it, nextHeaderView) -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getY(). -// ^^^^^^^^^^^^^^ reference local17 - } - return - } - } - } - - if (stickyHeader != null) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). - scrapStickyHeader(recycler) -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrapStickyHeader(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#updateStickyHeader().(recycler) - } - } - - /** - * Creates [RecyclerView.ViewHolder] for [position], including measure / layout, and assigns it to - * [stickyHeader]. - */ - private fun createStickyHeader(recycler: RecyclerView.Recycler, position: Int) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#createStickyHeader(). private final fun createStickyHeader(recycler: [ERROR : RecyclerView.Recycler], position: kotlin.Int) -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#createStickyHeader().(recycler) value-parameter recycler: [ERROR : RecyclerView.Recycler] -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#createStickyHeader().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# - val stickyHeader = recycler.getViewForPosition(position) -// ^^^^^^^^^^^^ definition local19 val stickyHeader: [ERROR : ] -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#createStickyHeader().(recycler) -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#createStickyHeader().(position) - - // Setup sticky header if the adapter requires it. - adapter?.setupStickyHeaderView(stickyHeader) -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getAdapter(). -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter(). -// ^^^^^^^^^^^^ reference local19 - - // Add sticky header as a child view, to be detached / reattached whenever LinearLayoutManager#fill() is called, - // which happens on layout and scroll (see overrides). - addView(stickyHeader) -// ^^^^^^^^^^^^ reference local19 - measureAndLayout(stickyHeader) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#measureAndLayout(). -// ^^^^^^^^^^^^ reference local19 - - // Ignore sticky header, as it's fully managed by this LayoutManager. - ignoreView(stickyHeader) -// ^^^^^^^^^^^^ reference local19 - - this.stickyHeader = stickyHeader -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). -// ^^^^^^^^^^^^ reference local19 - this.stickyHeaderPosition = position -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager# -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeaderPosition. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeaderPosition(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeaderPosition(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#createStickyHeader().(position) - } - - /** - * Binds the [stickyHeader] for the given [position]. - */ - private fun bindStickyHeader(recycler: RecyclerView.Recycler, stickyHeader: View, position: Int) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader(). private final fun bindStickyHeader(recycler: [ERROR : RecyclerView.Recycler], stickyHeader: [ERROR : View], position: kotlin.Int) -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader().(recycler) value-parameter recycler: [ERROR : RecyclerView.Recycler] -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader().(stickyHeader) value-parameter stickyHeader: [ERROR : View] -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# - // Bind the sticky header. - recycler.bindViewToPosition(stickyHeader, position) -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader().(recycler) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader().(stickyHeader) -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader().(position) - stickyHeaderPosition = position -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeaderPosition. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeaderPosition(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeaderPosition(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader().(position) - measureAndLayout(stickyHeader) -// ^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#measureAndLayout(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader().(stickyHeader) - - // If we have a pending scroll wait until the end of layout and scroll again. - if (scrollPosition != RecyclerView.NO_POSITION) { -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollPosition. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getScrollPosition(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollPosition(). - stickyHeader.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader().(stickyHeader) - override fun onGlobalLayout() { -// ^^^^^^^^^^^^^^ definition local20 public open fun onGlobalLayout() - if (Build.VERSION.SDK_INT < 16) stickyHeader.viewTreeObserver.removeGlobalOnLayoutListener(this) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader().(stickyHeader) -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader().``# - else stickyHeader.viewTreeObserver.removeOnGlobalLayoutListener(this) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader().(stickyHeader) -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#bindStickyHeader().``# - if (scrollPosition != RecyclerView.NO_POSITION) { -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollPosition. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getScrollPosition(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollPosition(). - scrollToPositionWithOffset(scrollPosition, scrollOffset) -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollToPositionWithOffset(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollPosition. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getScrollPosition(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollPosition(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollOffset. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getScrollOffset(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollOffset(). - setScrollState(RecyclerView.NO_POSITION, INVALID_OFFSET) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollState(). - } - } - }) - } - } - - /** - * Measures and lays out [stickyHeader]. - */ - private fun measureAndLayout(stickyHeader: View) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#measureAndLayout(). private final fun measureAndLayout(stickyHeader: [ERROR : View]) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#measureAndLayout().(stickyHeader) value-parameter stickyHeader: [ERROR : View] - measureChildWithMargins(stickyHeader, 0, 0) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#measureAndLayout().(stickyHeader) - when (orientation) { - VERTICAL -> stickyHeader.layout(paddingLeft, 0, width - paddingRight, stickyHeader.measuredHeight) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#measureAndLayout().(stickyHeader) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#measureAndLayout().(stickyHeader) - else -> stickyHeader.layout(0, paddingTop, stickyHeader.measuredWidth, height - paddingBottom) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#measureAndLayout().(stickyHeader) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#measureAndLayout().(stickyHeader) - } - } - - /** - * Returns [stickyHeader] to the [RecyclerView]'s [RecyclerView.RecycledViewPool], assigning it - * to `null`. - * - * @param recycler If passed, the sticky header will be returned to the recycled view pool. - */ - private fun scrapStickyHeader(recycler: RecyclerView.Recycler?) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrapStickyHeader(). private final fun scrapStickyHeader(recycler: [ERROR : RecyclerView.Recycler]?) -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrapStickyHeader().(recycler) value-parameter recycler: [ERROR : RecyclerView.Recycler]? - val stickyHeader = stickyHeader ?: return -// ^^^^^^^^^^^^ definition local21 val stickyHeader: kotlin.Nothing -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). - this.stickyHeader = null -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager# -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). - this.stickyHeaderPosition = RecyclerView.NO_POSITION -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager# -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeaderPosition. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeaderPosition(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeaderPosition(). - - // Revert translation values. - stickyHeader.translationX = 0f -// ^^^^^^^^^^^^ reference local21 - stickyHeader.translationY = 0f -// ^^^^^^^^^^^^ reference local21 - - // Teardown holder if the adapter requires it. - adapter?.teardownStickyHeaderView(stickyHeader) -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getAdapter(). -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter(). -// ^^^^^^^^^^^^ reference local21 - - // Stop ignoring sticky header so that it can be recycled. - stopIgnoringView(stickyHeader) -// ^^^^^^^^^^^^ reference local21 - - // Remove and recycle sticky header. - removeView(stickyHeader) -// ^^^^^^^^^^^^ reference local21 - recycler?.recycleView(stickyHeader) -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrapStickyHeader().(recycler) -// ^^^^^^^^^^^^ reference local21 - } - - /** - * Returns true when `view` is a valid anchor, ie. the first view to be valid and visible. - */ - private fun isViewValidAnchor(view: View, params: RecyclerView.LayoutParams): Boolean { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewValidAnchor(). private final fun isViewValidAnchor(view: [ERROR : View], params: [ERROR : RecyclerView.LayoutParams]): kotlin.Boolean -// ^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewValidAnchor().(view) value-parameter view: [ERROR : View] -// ^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewValidAnchor().(params) value-parameter params: [ERROR : RecyclerView.LayoutParams] -// ^^^^^^^ reference kotlin/Boolean# - return when { - !params.isItemRemoved && !params.isViewInvalid -> when (orientation) { -// ^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewValidAnchor().(params) -// ^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewValidAnchor().(params) - VERTICAL -> when { - reverseLayout -> view.top + view.translationY <= height + translationY -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewValidAnchor().(view) -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewValidAnchor().(view) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationY. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationY(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationY(). - else -> view.bottom - view.translationY >= translationY -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewValidAnchor().(view) -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewValidAnchor().(view) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationY. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationY(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationY(). - } - else -> when { - reverseLayout -> view.left + view.translationX <= width + translationX -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewValidAnchor().(view) -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewValidAnchor().(view) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationX. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationX(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationX(). - else -> view.right - view.translationX >= translationX -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewValidAnchor().(view) -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewValidAnchor().(view) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationX. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationX(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationX(). - } - } - else -> false - } - } - - /** - * Returns true when the `view` is at the edge of the parent [RecyclerView]. - */ - private fun isViewOnBoundary(view: View): Boolean { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewOnBoundary(). private final fun isViewOnBoundary(view: [ERROR : View]): kotlin.Boolean -// ^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewOnBoundary().(view) value-parameter view: [ERROR : View] -// ^^^^^^^ reference kotlin/Boolean# - return when (orientation) { - VERTICAL -> when { - reverseLayout -> view.bottom - view.translationY > height + translationY -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewOnBoundary().(view) -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewOnBoundary().(view) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationY. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationY(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationY(). - else -> view.top + view.translationY < translationY -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewOnBoundary().(view) -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewOnBoundary().(view) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationY. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationY(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationY(). - } - else -> when { - reverseLayout -> view.right - view.translationX > width + translationX -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewOnBoundary().(view) -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewOnBoundary().(view) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationX. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationX(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationX(). - else -> view.left + view.translationX < translationX -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewOnBoundary().(view) -// ^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#isViewOnBoundary().(view) -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationX. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationX(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationX(). - } - } - } - - /** - * Returns the position in the Y axis to position the header appropriately, depending on orientation, direction and - * [android.R.attr.clipToPadding]. - */ - private fun getY(headerView: View, nextHeaderView: View?): Float { -// ^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getY(). private final fun getY(headerView: [ERROR : View], nextHeaderView: [ERROR : View]?): kotlin.Float -// ^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getY().(headerView) value-parameter headerView: [ERROR : View] -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getY().(nextHeaderView) value-parameter nextHeaderView: [ERROR : View]? -// ^^^^^ reference kotlin/Float# - when (orientation) { - VERTICAL -> { - var y = translationY -// ^ definition local22 var y: kotlin.Float -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationY. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationY(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationY(). - if (reverseLayout) { - y += (height - headerView.height).toFloat() -// ^ reference local22 -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getY().(headerView) - } - if (nextHeaderView != null) { -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getY().(nextHeaderView) - val bottomMargin = (nextHeaderView.layoutParams as? ViewGroup.MarginLayoutParams)?.bottomMargin ?: 0 -// ^^^^^^^^^^^^ definition local23 val bottomMargin: kotlin.Int -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getY().(nextHeaderView) - val topMargin = (nextHeaderView.layoutParams as? ViewGroup.MarginLayoutParams)?.topMargin ?: 0 -// ^^^^^^^^^ definition local24 val topMargin: kotlin.Int -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getY().(nextHeaderView) - y = when { -// ^ reference local22 - reverseLayout -> (nextHeaderView.bottom + bottomMargin).toFloat().coerceAtLeast(y) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getY().(nextHeaderView) -// ^^^^^^^^^^^^ reference local23 -// ^ reference local22 - else -> (nextHeaderView.top - topMargin - headerView.height).toFloat().coerceAtMost(y) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getY().(nextHeaderView) -// ^^^^^^^^^ reference local24 -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getY().(headerView) -// ^ reference local22 - } - } - return y -// ^ reference local22 - } - else -> return translationY -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationY. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationY(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationY(). - } - } - - /** - * Returns the position in the X axis to position the header appropriately, depending on orientation, direction and - * [android.R.attr.clipToPadding]. - */ - private fun getX(headerView: View, nextHeaderView: View?): Float { -// ^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getX(). private final fun getX(headerView: [ERROR : View], nextHeaderView: [ERROR : View]?): kotlin.Float -// ^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getX().(headerView) value-parameter headerView: [ERROR : View] -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getX().(nextHeaderView) value-parameter nextHeaderView: [ERROR : View]? -// ^^^^^ reference kotlin/Float# - when (orientation) { - HORIZONTAL -> { - var x = translationX -// ^ definition local25 var x: kotlin.Float -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationX. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationX(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationX(). - if (reverseLayout) { - x += (width - headerView.width).toFloat() -// ^ reference local25 -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getX().(headerView) - } - if (nextHeaderView != null) { -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getX().(nextHeaderView) - val leftMargin = (nextHeaderView.layoutParams as? ViewGroup.MarginLayoutParams)?.leftMargin ?: 0 -// ^^^^^^^^^^ definition local26 val leftMargin: kotlin.Int -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getX().(nextHeaderView) - val rightMargin = (nextHeaderView.layoutParams as? ViewGroup.MarginLayoutParams)?.rightMargin ?: 0 -// ^^^^^^^^^^^ definition local27 val rightMargin: kotlin.Int -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getX().(nextHeaderView) - x = when { -// ^ reference local25 - reverseLayout -> (nextHeaderView.right + rightMargin).toFloat().coerceAtLeast(x) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getX().(nextHeaderView) -// ^^^^^^^^^^^ reference local27 -// ^ reference local25 - else -> (nextHeaderView.left - leftMargin - headerView.width).toFloat().coerceAtMost(x) -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getX().(nextHeaderView) -// ^^^^^^^^^^ reference local26 -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getX().(headerView) -// ^ reference local25 - } - } - return x -// ^ reference local25 - } - else -> return translationX -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#translationX. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getTranslationX(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setTranslationX(). - } - } - - /** - * Finds the header index of `position` in `headerPositions`. - */ - private fun findHeaderIndex(position: Int): Int { -// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndex(). private final fun findHeaderIndex(position: kotlin.Int): kotlin.Int -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndex().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^ reference kotlin/Int# - var low = 0 -// ^^^ definition local28 var low: kotlin.Int - var high = headerPositions.size - 1 -// ^^^^ definition local29 var high: kotlin.Int -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^ reference kotlin/collections/MutableList#size. -// ^^^^ reference kotlin/collections/MutableList#getSize(). -// ^ reference kotlin/Int#minus(+3). - while (low <= high) { -// ^^^ reference local28 -// ^^ reference kotlin/Int#compareTo(+3). -// ^^^^ reference local29 - val middle = (low + high) / 2 -// ^^^^^^ definition local30 val middle: kotlin.Int -// ^^^ reference local28 -// ^ reference kotlin/Int#plus(+3). -// ^^^^ reference local29 -// ^ reference kotlin/Int#div(+3). - when { - headerPositions[middle] > position -> high = middle - 1 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^^^ reference local30 -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndex().(position) -// ^^^^ reference local29 -// ^^^^^^ reference local30 -// ^ reference kotlin/Int#minus(+3). - headerPositions[middle] < position -> low = middle + 1 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^^^ reference local30 -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndex().(position) -// ^^^ reference local28 -// ^^^^^^ reference local30 -// ^ reference kotlin/Int#plus(+3). - else -> return middle -// ^^^^^^ reference local30 - } - } - return -1 -// ^ reference kotlin/Int#unaryMinus(). - } - - /** - * Finds the header index of `position` or the one before it in `headerPositions`. - */ - private fun findHeaderIndexOrBefore(position: Int): Int { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrBefore(). private final fun findHeaderIndexOrBefore(position: kotlin.Int): kotlin.Int -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrBefore().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^ reference kotlin/Int# - var low = 0 -// ^^^ definition local31 var low: kotlin.Int - var high = headerPositions.size - 1 -// ^^^^ definition local32 var high: kotlin.Int -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^ reference kotlin/collections/MutableList#size. -// ^^^^ reference kotlin/collections/MutableList#getSize(). -// ^ reference kotlin/Int#minus(+3). - while (low <= high) { -// ^^^ reference local31 -// ^^ reference kotlin/Int#compareTo(+3). -// ^^^^ reference local32 - val middle = (low + high) / 2 -// ^^^^^^ definition local33 val middle: kotlin.Int -// ^^^ reference local31 -// ^ reference kotlin/Int#plus(+3). -// ^^^^ reference local32 -// ^ reference kotlin/Int#div(+3). - when { - headerPositions[middle] > position -> high = middle - 1 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^^^ reference local33 -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrBefore().(position) -// ^^^^ reference local32 -// ^^^^^^ reference local33 -// ^ reference kotlin/Int#minus(+3). - middle < headerPositions.size - 1 && headerPositions[middle + 1] <= position -> low = middle + 1 -// ^^^^^^ reference local33 -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^ reference kotlin/collections/MutableList#size. -// ^^^^ reference kotlin/collections/MutableList#getSize(). -// ^ reference kotlin/Int#minus(+3). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^^^ reference local33 -// ^ reference kotlin/Int#plus(+3). -// ^^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrBefore().(position) -// ^^^ reference local31 -// ^^^^^^ reference local33 -// ^ reference kotlin/Int#plus(+3). - else -> return middle -// ^^^^^^ reference local33 - } - } - return -1 -// ^ reference kotlin/Int#unaryMinus(). - } - - /** - * Finds the header index of `position` or the one next to it in `headerPositions`. - */ - private fun findHeaderIndexOrNext(position: Int): Int { -// ^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrNext(). private final fun findHeaderIndexOrNext(position: kotlin.Int): kotlin.Int -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrNext().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^ reference kotlin/Int# - var low = 0 -// ^^^ definition local34 var low: kotlin.Int - var high = headerPositions.size - 1 -// ^^^^ definition local35 var high: kotlin.Int -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^ reference kotlin/collections/MutableList#size. -// ^^^^ reference kotlin/collections/MutableList#getSize(). -// ^ reference kotlin/Int#minus(+3). - while (low <= high) { -// ^^^ reference local34 -// ^^ reference kotlin/Int#compareTo(+3). -// ^^^^ reference local35 - val middle = (low + high) / 2 -// ^^^^^^ definition local36 val middle: kotlin.Int -// ^^^ reference local34 -// ^ reference kotlin/Int#plus(+3). -// ^^^^ reference local35 -// ^ reference kotlin/Int#div(+3). - when { - middle > 0 && headerPositions[middle - 1] >= position -> high = middle - 1 -// ^^^^^^ reference local36 -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^^^ reference local36 -// ^ reference kotlin/Int#minus(+3). -// ^^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrNext().(position) -// ^^^^ reference local35 -// ^^^^^^ reference local36 -// ^ reference kotlin/Int#minus(+3). - headerPositions[middle] < position -> low = middle + 1 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^^^ reference local36 -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrNext().(position) -// ^^^ reference local34 -// ^^^^^^ reference local36 -// ^ reference kotlin/Int#plus(+3). - else -> return middle -// ^^^^^^ reference local36 - } - } - return -1 -// ^ reference kotlin/Int#unaryMinus(). - } - - private fun setScrollState(position: Int, offset: Int) { -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollState(). private final fun setScrollState(position: kotlin.Int, offset: kotlin.Int) -// ^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollState().(position) value-parameter position: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollState().(offset) value-parameter offset: kotlin.Int -// ^^^ reference kotlin/Int# - scrollPosition = position -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollPosition. -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getScrollPosition(). -// ^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollPosition(). -// ^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollState().(position) - scrollOffset = offset -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrollOffset. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getScrollOffset(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollOffset(). -// ^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setScrollState().(offset) - } - - /** - * Save / restore existing [RecyclerView] state and - * scrolling position and offset. - */ - @Parcelize -// ^^^^^^^^^ reference kotlinx/android/parcel/Parcelize#``(). - data class SavedState( -// ^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState# public final data class SavedState -// ^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#``(). public constructor SavedState(superState: [ERROR : Parcelable]?, scrollPosition: kotlin.Int, scrollOffset: kotlin.Int) - val superState: Parcelable?, -// ^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#superState. public final val superState: [ERROR : Parcelable]? -// ^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#getSuperState(). public final val superState: [ERROR : Parcelable]? -// ^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#``().(superState) value-parameter superState: [ERROR : Parcelable]? - val scrollPosition: Int, -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#scrollPosition. public final val scrollPosition: kotlin.Int -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#getScrollPosition(). public final val scrollPosition: kotlin.Int -// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#``().(scrollPosition) value-parameter scrollPosition: kotlin.Int -// ^^^ reference kotlin/Int# - val scrollOffset: Int -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#scrollOffset. public final val scrollOffset: kotlin.Int -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#getScrollOffset(). public final val scrollOffset: kotlin.Int -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#SavedState#``().(scrollOffset) value-parameter scrollOffset: kotlin.Int -// ^^^ reference kotlin/Int# - ) : Parcelable - - /** - * Handles header positions while adapter changes occur. - * - * This is used in detriment of [RecyclerView.LayoutManager]'s callbacks to control when they're received. - */ - private inner class HeaderPositionsAdapterDataObserver : RecyclerView.AdapterDataObserver() { -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver# private final inner class HeaderPositionsAdapterDataObserver -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#``(). public constructor HeaderPositionsAdapterDataObserver() - override fun onChanged() { -// ^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onChanged(). public open fun onChanged() - // There's no hint at what changed, so go through the adapter. - headerPositions.clear() -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^^ reference kotlin/collections/MutableList#clear(). - val itemCount = adapter?.itemCount ?: 0 -// ^^^^^^^^^ definition local37 val itemCount: kotlin.Int -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getAdapter(). -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter(). - for (i in 0 until itemCount) { -// ^ definition local38 val i: kotlin.Int -// ^^^^^ reference kotlin/ranges/RangesKt#until(+6). -// ^^^^^^^^^ reference local37 - val isSticky = adapter?.isStickyHeader(i) ?: false -// ^^^^^^^^ definition local39 val isSticky: kotlin.Boolean -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getAdapter(). -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter(). -// ^ reference local38 - if (isSticky) { -// ^^^^^^^^ reference local39 - headerPositions.add(i) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^ reference kotlin/collections/MutableList#add(). -// ^ reference local38 - } - } - - // Remove sticky header immediately if the entry it represents has been removed. A layout will follow. - if (stickyHeader != null && !headerPositions.contains(stickyHeaderPosition)) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). -// ^ reference kotlin/Boolean#not(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^^^^^ reference kotlin/collections/MutableList#contains(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeaderPosition. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeaderPosition(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeaderPosition(). - scrapStickyHeader(null) -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrapStickyHeader(). - } - } - - override fun onItemRangeInserted(positionStart: Int, itemCount: Int) { -// ^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeInserted(). public open fun onItemRangeInserted(positionStart: kotlin.Int, itemCount: kotlin.Int) -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeInserted().(positionStart) value-parameter positionStart: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeInserted().(itemCount) value-parameter itemCount: kotlin.Int -// ^^^ reference kotlin/Int# - // Shift headers below down. - val headerCount = headerPositions.size -// ^^^^^^^^^^^ definition local40 val headerCount: kotlin.Int -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^ reference kotlin/collections/MutableList#size. -// ^^^^ reference kotlin/collections/MutableList#getSize(). - if (headerCount > 0) { -// ^^^^^^^^^^^ reference local40 -// ^ reference kotlin/Int#compareTo(+3). - var i = findHeaderIndexOrNext(positionStart) -// ^ definition local41 var i: kotlin.Int -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrNext(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeInserted().(positionStart) - while (i != -1 && i < headerCount) { -// ^ reference local41 -// ^^ reference kotlin/Int#equals(). -// ^ reference kotlin/Int#unaryMinus(). -// ^ reference local41 -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^ reference local40 - headerPositions[i] = headerPositions[i] + itemCount -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^ reference local41 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^ reference local41 -// ^ reference kotlin/Int#plus(+3). -// ^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeInserted().(itemCount) - i++ -// ^ reference local41 -// ^^ reference kotlin/Int#inc(). - } - } - - // Add new headers. - for (i in positionStart until positionStart + itemCount) { -// ^ definition local42 val i: kotlin.Int -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeInserted().(positionStart) -// ^^^^^ reference kotlin/ranges/RangesKt#until(+6). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeInserted().(positionStart) -// ^ reference kotlin/Int#plus(+3). -// ^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeInserted().(itemCount) - val isSticky = adapter?.isStickyHeader(i) ?: false -// ^^^^^^^^ definition local43 val isSticky: kotlin.Boolean -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#adapter. -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getAdapter(). -// ^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setAdapter(). -// ^ reference local42 - if (isSticky) { -// ^^^^^^^^ reference local43 - val headerIndex = findHeaderIndexOrNext(i) -// ^^^^^^^^^^^ definition local44 val headerIndex: kotlin.Int -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrNext(). -// ^ reference local42 - if (headerIndex != -1) { -// ^^^^^^^^^^^ reference local44 -// ^^ reference kotlin/Int#equals(). -// ^ reference kotlin/Int#unaryMinus(). - headerPositions.add(headerIndex, i) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^ reference kotlin/collections/MutableList#add(+1). -// ^^^^^^^^^^^ reference local44 -// ^ reference local42 - } else { - headerPositions.add(i) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^ reference kotlin/collections/MutableList#add(). -// ^ reference local42 - } - } - } - } - - override fun onItemRangeRemoved(positionStart: Int, itemCount: Int) { -// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeRemoved(). public open fun onItemRangeRemoved(positionStart: kotlin.Int, itemCount: kotlin.Int) -// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeRemoved().(positionStart) value-parameter positionStart: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeRemoved().(itemCount) value-parameter itemCount: kotlin.Int -// ^^^ reference kotlin/Int# - var headerCount = headerPositions.size -// ^^^^^^^^^^^ definition local45 var headerCount: kotlin.Int -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^ reference kotlin/collections/MutableList#size. -// ^^^^ reference kotlin/collections/MutableList#getSize(). - if (headerCount > 0) { -// ^^^^^^^^^^^ reference local45 -// ^ reference kotlin/Int#compareTo(+3). - // Remove headers. - for (i in positionStart + itemCount - 1 downTo positionStart) { -// ^ definition local46 val i: kotlin.Int -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeRemoved().(positionStart) -// ^ reference kotlin/Int#plus(+3). -// ^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeRemoved().(itemCount) -// ^ reference kotlin/Int#minus(+3). -// ^^^^^^ reference kotlin/ranges/RangesKt#downTo(+6). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeRemoved().(positionStart) - val index = findHeaderIndex(i) -// ^^^^^ definition local47 val index: kotlin.Int -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndex(). -// ^ reference local46 - if (index != -1) { -// ^^^^^ reference local47 -// ^^ reference kotlin/Int#equals(). -// ^ reference kotlin/Int#unaryMinus(). - headerPositions.removeAt(index) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^^^^^ reference kotlin/collections/MutableList#removeAt(). -// ^^^^^ reference local47 - headerCount-- -// ^^^^^^^^^^^ reference local45 -// ^^ reference kotlin/Int#dec(). - } - } - - // Remove sticky header immediately if the entry it represents has been removed. A layout will follow. - if (stickyHeader != null && !headerPositions.contains(stickyHeaderPosition)) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeader. -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeader(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeader(). -// ^ reference kotlin/Boolean#not(). -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^^^^^ reference kotlin/collections/MutableList#contains(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#stickyHeaderPosition. -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getStickyHeaderPosition(). -// ^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#setStickyHeaderPosition(). - scrapStickyHeader(null) -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#scrapStickyHeader(). - } - - // Shift headers below up. - var i = findHeaderIndexOrNext(positionStart + itemCount) -// ^ definition local48 var i: kotlin.Int -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrNext(). -// ^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeRemoved().(positionStart) -// ^ reference kotlin/Int#plus(+3). -// ^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeRemoved().(itemCount) - while (i != -1 && i < headerCount) { -// ^ reference local48 -// ^^ reference kotlin/Int#equals(). -// ^ reference kotlin/Int#unaryMinus(). -// ^ reference local48 -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^ reference local45 - headerPositions[i] = headerPositions[i] - itemCount -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^ reference local48 -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^ reference local48 -// ^ reference kotlin/Int#minus(+3). -// ^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeRemoved().(itemCount) - i++ -// ^ reference local48 -// ^^ reference kotlin/Int#inc(). - } - } - } - - override fun onItemRangeMoved(fromPosition: Int, toPosition: Int, itemCount: Int) { -// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved(). public open fun onItemRangeMoved(fromPosition: kotlin.Int, toPosition: kotlin.Int, itemCount: kotlin.Int) -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(fromPosition) value-parameter fromPosition: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(toPosition) value-parameter toPosition: kotlin.Int -// ^^^ reference kotlin/Int# -// ^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(itemCount) value-parameter itemCount: kotlin.Int -// ^^^ reference kotlin/Int# - // Shift moved headers by toPosition - fromPosition. - // Shift headers in-between by -itemCount (reverse if upwards). - val headerCount = headerPositions.size -// ^^^^^^^^^^^ definition local49 val headerCount: kotlin.Int -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^ reference kotlin/collections/MutableList#size. -// ^^^^ reference kotlin/collections/MutableList#getSize(). - if (headerCount > 0) { -// ^^^^^^^^^^^ reference local49 -// ^ reference kotlin/Int#compareTo(+3). - if (fromPosition < toPosition) { -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(fromPosition) -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(toPosition) - var i = findHeaderIndexOrNext(fromPosition) -// ^ definition local50 var i: kotlin.Int -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrNext(). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(fromPosition) - while (i != -1 && i < headerCount) { -// ^ reference local50 -// ^^ reference kotlin/Int#equals(). -// ^ reference kotlin/Int#unaryMinus(). -// ^ reference local50 -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^ reference local49 - val headerPos = headerPositions[i] -// ^^^^^^^^^ definition local51 val headerPos: kotlin.Int -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^ reference local50 - if (headerPos >= fromPosition && headerPos < fromPosition + itemCount) { -// ^^^^^^^^^ reference local51 -// ^^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(fromPosition) -// ^^^^^^^^^ reference local51 -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(fromPosition) -// ^ reference kotlin/Int#plus(+3). -// ^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(itemCount) - headerPositions[i] = headerPos - (toPosition - fromPosition) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^ reference local50 -// ^^^^^^^^^ reference local51 -// ^ reference kotlin/Int#minus(+3). -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(toPosition) -// ^ reference kotlin/Int#minus(+3). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(fromPosition) - sortHeaderAtIndex(i) -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#sortHeaderAtIndex(). -// ^ reference local50 - } else if (headerPos >= fromPosition + itemCount && headerPos <= toPosition) { -// ^^^^^^^^^ reference local51 -// ^^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(fromPosition) -// ^ reference kotlin/Int#plus(+3). -// ^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(itemCount) -// ^^^^^^^^^ reference local51 -// ^^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(toPosition) - headerPositions[i] = headerPos - itemCount -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^ reference local50 -// ^^^^^^^^^ reference local51 -// ^ reference kotlin/Int#minus(+3). -// ^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(itemCount) - sortHeaderAtIndex(i) -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#sortHeaderAtIndex(). -// ^ reference local50 - } else { - break - } - i++ -// ^ reference local50 -// ^^ reference kotlin/Int#inc(). - } - } else { - var i = findHeaderIndexOrNext(toPosition) -// ^ definition local52 var i: kotlin.Int -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrNext(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(toPosition) - loop@ while (i != -1 && i < headerCount) { -// ^ reference local52 -// ^^ reference kotlin/Int#equals(). -// ^ reference kotlin/Int#unaryMinus(). -// ^ reference local52 -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^ reference local49 - val headerPos = headerPositions[i] -// ^^^^^^^^^ definition local53 val headerPos: kotlin.Int -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^ reference local52 - when { - headerPos >= fromPosition && headerPos < fromPosition + itemCount -> { -// ^^^^^^^^^ reference local53 -// ^^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(fromPosition) -// ^^^^^^^^^ reference local53 -// ^ reference kotlin/Int#compareTo(+3). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(fromPosition) -// ^ reference kotlin/Int#plus(+3). -// ^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(itemCount) - headerPositions[i] = headerPos + (toPosition - fromPosition) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^ reference local52 -// ^^^^^^^^^ reference local53 -// ^ reference kotlin/Int#plus(+3). -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(toPosition) -// ^ reference kotlin/Int#minus(+3). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(fromPosition) - sortHeaderAtIndex(i) -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#sortHeaderAtIndex(). -// ^ reference local52 - } - headerPos in toPosition..fromPosition -> { -// ^^^^^^^^^ reference local53 -// ^^ reference kotlin/ranges/IntRange#contains(). -// ^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(toPosition) -// ^^ reference kotlin/Int#rangeTo(+1). -// ^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(fromPosition) - headerPositions[i] = headerPos + itemCount -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^ reference local52 -// ^^^^^^^^^ reference local53 -// ^ reference kotlin/Int#plus(+3). -// ^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#onItemRangeMoved().(itemCount) - sortHeaderAtIndex(i) -// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#sortHeaderAtIndex(). -// ^ reference local52 - } - else -> break@loop - } - i++ -// ^ reference local52 -// ^^ reference kotlin/Int#inc(). - } - } - } - } - - private fun sortHeaderAtIndex(index: Int) { -// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#sortHeaderAtIndex(). private final fun sortHeaderAtIndex(index: kotlin.Int) -// ^^^^^ definition com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#sortHeaderAtIndex().(index) value-parameter index: kotlin.Int -// ^^^ reference kotlin/Int# - val headerPos = headerPositions.removeAt(index) -// ^^^^^^^^^ definition local54 val headerPos: kotlin.Int -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^^^^^^ reference kotlin/collections/MutableList#removeAt(). -// ^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#HeaderPositionsAdapterDataObserver#sortHeaderAtIndex().(index) - val headerIndex = findHeaderIndexOrNext(headerPos) -// ^^^^^^^^^^^ definition local55 val headerIndex: kotlin.Int -// ^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#findHeaderIndexOrNext(). -// ^^^^^^^^^ reference local54 - if (headerIndex != -1) { -// ^^^^^^^^^^^ reference local55 -// ^^ reference kotlin/Int#equals(). -// ^ reference kotlin/Int#unaryMinus(). - headerPositions.add(headerIndex, headerPos) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^ reference kotlin/collections/MutableList#add(+1). -// ^^^^^^^^^^^ reference local55 -// ^^^^^^^^^ reference local54 - } else { - headerPositions.add(headerPos) -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#headerPositions. -// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/stickyheader/StickyHeaderLinearLayoutManager#getHeaderPositions(). -// ^^^ reference kotlin/collections/MutableList#add(). -// ^^^^^^^^^ reference local54 - } - } - } -} diff --git a/tests/snapshots/src/main/generated/com/airbnb/epoxy/utils/utils.kt b/tests/snapshots/src/main/generated/com/airbnb/epoxy/utils/utils.kt deleted file mode 100644 index 950c2db54..000000000 --- a/tests/snapshots/src/main/generated/com/airbnb/epoxy/utils/utils.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.airbnb.epoxy.utils -// ^^^ reference com/ -// ^^^^^^ reference com/airbnb/ -// ^^^^^ reference com/airbnb/epoxy/ -// ^^^^^ reference com/airbnb/epoxy/utils/ - -import android.content.Context -import android.content.pm.ApplicationInfo - -@PublishedApi -//^^^^^^^^^^^ reference kotlin/PublishedApi#``(). -internal val Context.isDebuggable: Boolean -// ^^^^^^^^^^^^ definition com/airbnb/epoxy/utils/utilsKt#isDebuggable. internal val [ERROR : Context].isDebuggable: kotlin.Boolean -// ^^^^^^^ reference kotlin/Boolean# - get() = (applicationInfo.flags and ApplicationInfo.FLAG_DEBUGGABLE) != 0 -// ^^^ definition com/airbnb/epoxy/utils/utilsKt#getIsDebuggable(). internal fun [ERROR : Context].(): kotlin.Boolean diff --git a/tests/snapshots/src/main/generated/minimized/Issue396.scala b/tests/snapshots/src/main/generated/minimized/Issue396.scala index 8174727d4..10127ff01 100644 --- a/tests/snapshots/src/main/generated/minimized/Issue396.scala +++ b/tests/snapshots/src/main/generated/minimized/Issue396.scala @@ -3,16 +3,8 @@ package minimized case class Issue396(a: Int) // ^^^^^^^^ definition minimized/Issue396# case class Issue396(a: Int) -// ^^^^^^^^ synthetic_definition minimized/Issue396#copy(). def copy(a: Int): Issue396 -// ^^^^^^^^ synthetic_definition minimized/Issue396#productElement(). def productElement(x$1: Int): Any -// ^^^^^^^^ definition minimized/Issue396. object Issue396 -// ^^^^^^^^ synthetic_definition minimized/Issue396.apply(). def apply(a: Int): Issue396 -// ^^^^^^^^ synthetic_definition minimized/Issue396#productElementName(). def productElementName(x$1: Int): String // definition minimized/Issue396#``(). def this(a: Int) // ^ definition minimized/Issue396#a. val a: Int -// ^ definition minimized/Issue396.apply().(a) a: Int -// ^ definition minimized/Issue396#``().(a) a: Int -// ^ definition minimized/Issue396#copy().(a) default a: Int // ^^^ reference scala/Int# object Issue396App { // ^^^^^^^^^^^ definition minimized/Issue396App. object Issue396App diff --git a/tests/snapshots/src/main/generated/minimized/Issue397.scala b/tests/snapshots/src/main/generated/minimized/Issue397.scala index c68f3774b..9e2a523fd 100644 --- a/tests/snapshots/src/main/generated/minimized/Issue397.scala +++ b/tests/snapshots/src/main/generated/minimized/Issue397.scala @@ -6,7 +6,6 @@ class Issue397 { // definition minimized/Issue397#``(). def this() var blah = Set("abc") // ^^^^ definition minimized/Issue397#blah(). var blah: Set[String] -// ^^^^ definition minimized/Issue397#`blah_=`(). var blah_=(x$1: Set[String]): Unit // ^^^ reference scala/Predef.Set. // reference scala/collection/IterableFactory#apply(). blah = Set.empty[String] diff --git a/tests/snapshots/src/main/generated/minimized/MinimizedScalaSignatures.scala b/tests/snapshots/src/main/generated/minimized/MinimizedScalaSignatures.scala index 200bdc7d6..194427d00 100644 --- a/tests/snapshots/src/main/generated/minimized/MinimizedScalaSignatures.scala +++ b/tests/snapshots/src/main/generated/minimized/MinimizedScalaSignatures.scala @@ -6,20 +6,28 @@ package minimized case class MinimizedCaseClass(value: String) { // ^^^^^^^^^^^^^^^^^^ definition minimized/MinimizedCaseClass# case class MinimizedCaseClass(value: String) -// ^^^^^^^^^^^^^^^^^^ synthetic_definition minimized/MinimizedCaseClass.apply(). def apply(value: String): MinimizedCaseClass -// ^^^^^^^^^^^^^^^^^^ synthetic_definition minimized/MinimizedCaseClass#productElement(). def productElement(x$1: Int): Any -// ^^^^^^^^^^^^^^^^^^ definition minimized/MinimizedCaseClass. object MinimizedCaseClass -// ^^^^^^^^^^^^^^^^^^ synthetic_definition minimized/MinimizedCaseClass#productElementName(). def productElementName(x$1: Int): String -// ^^^^^^^^^^^^^^^^^^ synthetic_definition minimized/MinimizedCaseClass#copy(). def copy(value: String): MinimizedCaseClass // definition minimized/MinimizedCaseClass#``(). def this(value: String) // ^^^^^ definition minimized/MinimizedCaseClass#value. val value: String -// ^^^^^ definition minimized/MinimizedCaseClass#copy().(value) default value: String -// ^^^^^ definition minimized/MinimizedCaseClass#``().(value) value: String -// ^^^^^ definition minimized/MinimizedCaseClass.apply().(value) value: String // ^^^^^^ reference scala/Predef.String# - def this() = this("value") + def this() = this(value = "value") // ^^^^ definition minimized/MinimizedCaseClass#``(+1). def this() // reference minimized/MinimizedCaseClass#``(). +// ^^^^^ reference minimized/MinimizedCaseClass#``().(value) +} +object MinimizedCaseClass { +// ^^^^^^^^^^^^^^^^^^ definition minimized/MinimizedCaseClass. object MinimizedCaseClass + def main(): Unit = { +// ^^^^ definition minimized/MinimizedCaseClass.main(). def main(): Unit +// ^^^^ reference scala/Unit# + println(MinimizedCaseClass.apply(value = "value1").copy(value = "value2").value) +// ^^^^^^^ reference scala/Predef.println(+1). +// ^^^^^^^^^^^^^^^^^^ reference minimized/MinimizedCaseClass. +// ^^^^^ reference minimized/MinimizedCaseClass.apply(). +// ^^^^^ reference minimized/MinimizedCaseClass.apply().(value) +// ^^^^ reference minimized/MinimizedCaseClass#copy(). +// ^^^^^ reference minimized/MinimizedCaseClass#copy().(value) +// ^^^^^ reference minimized/MinimizedCaseClass#value. + } } trait MinimizedTrait[T] extends AutoCloseable { diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/Issue396.scala b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/Issue396.scala new file mode 100644 index 000000000..315ed5600 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/Issue396.scala @@ -0,0 +1,61 @@ +package minimized +// ^^^^^^^^^ definition semanticdb maven . . minimized/ + +case class Issue396(a: Int) +// ^^^^^^^^ definition semanticdb maven . . minimized/Issue396# +// documentation ```scala\ncase class Issue396(a: Int)\n``` +// ________ synthetic_definition semanticdb maven . . minimized/Issue396#copy(). +// documentation ```scala\ndef copy(a: Int): Issue396\n``` +// relationship is_definition semanticdb maven . . minimized/Issue396# +// ________ synthetic_definition semanticdb maven . . minimized/Issue396#productElement(). +// documentation ```scala\ndef productElement(x$1: Int): Any\n``` +// relationship is_definition semanticdb maven . . minimized/Issue396# +// relationship is_reference is_implementation semanticdb maven . . scala/Product#productElement(). +// ________ synthetic_definition semanticdb maven . . minimized/Issue396. +// documentation ```scala\nobject Issue396\n``` +// relationship is_definition semanticdb maven . . minimized/Issue396# +// ________ synthetic_definition semanticdb maven . . minimized/Issue396.apply(). +// documentation ```scala\ndef apply(a: Int): Issue396\n``` +// relationship is_definition semanticdb maven . . minimized/Issue396# +// relationship is_reference is_implementation semanticdb maven . . scala/Function1#apply(). +// ________ synthetic_definition semanticdb maven . . minimized/Issue396#productElementName(). +// documentation ```scala\ndef productElementName(x$1: Int): String\n``` +// relationship is_definition semanticdb maven . . minimized/Issue396# +// relationship is_reference is_implementation semanticdb maven . . scala/Product#productElementName(). +// ^ definition semanticdb maven . . minimized/Issue396#``(). +// documentation ```scala\ndef this(a: Int)\n``` +// ^ definition semanticdb maven . . minimized/Issue396#a. +// documentation ```scala\nval a: Int\n``` +// _ synthetic_definition semanticdb maven . . minimized/Issue396.apply().(a) +// documentation ```scala\na: Int \n``` +// relationship is_reference is_definition semanticdb maven . . minimized/Issue396#a. +// _ synthetic_definition semanticdb maven . . minimized/Issue396#``().(a) +// documentation ```scala\na: Int \n``` +// relationship is_reference is_definition semanticdb maven . . minimized/Issue396#a. +// _ synthetic_definition semanticdb maven . . minimized/Issue396#copy().(a) +// documentation ```scala\ndefault a: Int \n``` +// relationship is_reference is_definition semanticdb maven . . minimized/Issue396#a. +// ^^^ reference semanticdb maven . . scala/Int# +object Issue396App { +// ^^^^^^^^^^^ definition semanticdb maven . . minimized/Issue396App. +// documentation ```scala\nobject Issue396App\n``` + println(Issue396) +//^^^^^^^ reference semanticdb maven . . scala/Predef.println(+1). +// ^^^^^^^^ reference semanticdb maven . . minimized/Issue396. + Issue396.apply(a = 42).copy(a = 41) +//^^^^^^^^ reference semanticdb maven . . minimized/Issue396. +// ^^^^^ reference semanticdb maven . . minimized/Issue396.apply(). +// ^ reference semanticdb maven . . minimized/Issue396.apply().(a) +// ^^^^ reference semanticdb maven . . minimized/Issue396#copy(). +// ^ reference semanticdb maven . . minimized/Issue396#copy().(a) + Issue396.apply(a = 42).productElement(0) +//^^^^^^^^ reference semanticdb maven . . minimized/Issue396. +// ^^^^^ reference semanticdb maven . . minimized/Issue396.apply(). +// ^ reference semanticdb maven . . minimized/Issue396.apply().(a) +// ^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Issue396#productElement(). + Issue396.apply(a = 42).productElementName(0) +//^^^^^^^^ reference semanticdb maven . . minimized/Issue396. +// ^^^^^ reference semanticdb maven . . minimized/Issue396.apply(). +// ^ reference semanticdb maven . . minimized/Issue396.apply().(a) +// ^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Issue396#productElementName(). +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/Issue397.scala b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/Issue397.scala new file mode 100644 index 000000000..8285a9e5e --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/Issue397.scala @@ -0,0 +1,22 @@ +package minimized +// ^^^^^^^^^ definition semanticdb maven . . minimized/ + +class Issue397 { +// ^^^^^^^^ definition semanticdb maven . . minimized/Issue397# +// documentation ```scala\nclass Issue397\n``` +// ^ definition semanticdb maven . . minimized/Issue397#``(). +// documentation ```scala\ndef this()\n``` + var blah = Set("abc") +// ^^^^ definition semanticdb maven . . minimized/Issue397#blah(). +// documentation ```scala\nvar blah: Set[String]\n``` +// ____ synthetic_definition semanticdb maven . . minimized/Issue397#`blah_=`(). +// documentation ```scala\nvar blah_=(x$1: Set[String]): Unit\n``` +// relationship is_definition semanticdb maven . . minimized/Issue397#blah(). +// ^^^ reference semanticdb maven . . scala/Predef.Set. +// ^ reference semanticdb maven . . scala/collection/IterableFactory#apply(). + blah = Set.empty[String] +//^^^^ reference semanticdb maven . . minimized/Issue397#`blah_=`(). +// ^^^ reference semanticdb maven . . scala/Predef.Set. +// ^^^^^ reference semanticdb maven . . scala/collection/immutable/Set.empty(). +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/Issue413.scala b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/Issue413.scala new file mode 100644 index 000000000..7ed2d66a9 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/Issue413.scala @@ -0,0 +1,24 @@ +package minimized +// ^^^^^^^^^ definition semanticdb maven . . minimized/ + +trait Issue413 { +// ^^^^^^^^ definition semanticdb maven . . minimized/Issue413# +// documentation ```scala\ntrait Issue413\n``` + val b: Int +// ^ definition semanticdb maven . . minimized/Issue413#b. +// documentation ```scala\nval b: Int\n``` +// ^^^ reference semanticdb maven . . scala/Int# +} + +class Issue413Subclass extends Issue413 { +// ^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Issue413Subclass# +// documentation ```scala\nclass Issue413Subclass\n``` +// ^ definition semanticdb maven . . minimized/Issue413Subclass#``(). +// documentation ```scala\ndef this()\n``` +// ^^^^^^^^ reference semanticdb maven . . minimized/Issue413# +// ^ reference semanticdb maven jdk 11 java/lang/Object#``(). + override val b = 10 +// ^ definition semanticdb maven . . minimized/Issue413Subclass#b. +// documentation ```scala\nval b: Int\n``` +// relationship is_reference is_implementation semanticdb maven . . minimized/Issue413#b. +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/Issue414.scala b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/Issue414.scala new file mode 100644 index 000000000..ce7a7b610 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/Issue414.scala @@ -0,0 +1,37 @@ +package minimized +// ^^^^^^^^^ definition semanticdb maven . . minimized/ + +object Issue414 { +// ^^^^^^^^ definition semanticdb maven . . minimized/Issue414. +// documentation ```scala\nobject Issue414\n``` + trait A { +// ^ definition semanticdb maven . . minimized/Issue414.A# +// documentation ```scala\ntrait A\n``` + def b(): Unit +// ^ definition semanticdb maven . . minimized/Issue414.A#b(). +// documentation ```scala\ndef b(): Unit\n``` +// ^^^^ reference semanticdb maven . . scala/Unit# + } + val a: A = +// ^ definition semanticdb maven . . minimized/Issue414.a. +// documentation ```scala\nval a: A\n``` +// ^ reference semanticdb maven . . minimized/Issue414.A# + new A { +// ^ definition local 0 +// documentation ```scala\nfinal class $anon\n``` +// ^ reference semanticdb maven . . minimized/Issue414.A# +// ^ reference semanticdb maven jdk 11 java/lang/Object#``(). + override def b(): Unit = { +// ^ definition local 1 +// documentation ```scala\ndef b(): Unit\n``` +// relationship is_reference is_implementation semanticdb maven . . minimized/Issue414.A#b(). +// ^^^^ reference semanticdb maven . . scala/Unit# + print("Hello") +// ^^^^^ reference semanticdb maven . . scala/Predef.print(). + } + } + println(a.b()) +//^^^^^^^ reference semanticdb maven . . scala/Predef.println(+1). +// ^ reference semanticdb maven . . minimized/Issue414.a. +// ^ reference semanticdb maven . . minimized/Issue414.A#b(). +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/MinimizedScalaMain.scala b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/MinimizedScalaMain.scala new file mode 100644 index 000000000..aaf1ae260 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/MinimizedScalaMain.scala @@ -0,0 +1,81 @@ +package minimized +// ^^^^^^^^^ definition semanticdb maven . . minimized/ + +// format: off +object MinimizedScalaMain { +// ^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaMain. +// documentation ```scala\nobject MinimizedScalaMain\n``` + def main(args: Array[String]): Unit = { +// ^^^^ definition semanticdb maven . . minimized/MinimizedScalaMain.main(). +// documentation ```scala\ndef main(args: Array[String]): Unit\n``` +// ^^^^ definition semanticdb maven . . minimized/MinimizedScalaMain.main().(args) +// documentation ```scala\nargs: Array[String] \n``` +// ^^^^^ reference semanticdb maven . . scala/Array# +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# +// ^^^^ reference semanticdb maven . . scala/Unit# + TypeVariables.app(new TypeVariables.CT()); +// ^^^^^^^^^^^^^ reference semanticdb maven . . minimized/TypeVariables# +// ^^^ reference semanticdb maven . . minimized/TypeVariables#app(). +// ^^^^^^^^^^^^^ reference semanticdb maven . . minimized/TypeVariables# +// ^^ reference semanticdb maven . . minimized/TypeVariables#CT# +// ^ reference semanticdb maven . . minimized/TypeVariables#CT#``(). + System.out.println( +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/System# +// ^^^ reference semanticdb maven jdk 11 java/lang/System#out. +// ^^^^^^^ reference semanticdb maven jdk 11 java/io/PrintStream#println(+8). + Methods.app(42, "42") + +// ^^^^^^^ reference semanticdb maven . . minimized/Methods# +// ^^^ reference semanticdb maven . . minimized/Methods#app(). +// ^ reference semanticdb maven jdk 11 java/lang/String#`+`(). + Enums.app() + +// ^^^^^ reference semanticdb maven . . minimized/Enums# +// ^^^ reference semanticdb maven . . minimized/Enums#app(). +// ^ reference semanticdb maven jdk 11 java/lang/String#`+`(). + Docstrings.app() + +// ^^^^^^^^^^ reference semanticdb maven . . minimized/Docstrings# +// ^^^ reference semanticdb maven . . minimized/Docstrings#app(). +// ^ reference semanticdb maven jdk 11 java/lang/String#`+`(). + InnerClasses.app() + +// ^^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses# +// ^^^ reference semanticdb maven . . minimized/InnerClasses#app(). +// ^ reference semanticdb maven jdk 11 java/lang/String#`+`(). + ForComprehensions.app(42) + +// ^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/ForComprehensions# +// ^^^ reference semanticdb maven . . minimized/ForComprehensions#app(). +// ^ reference semanticdb maven jdk 11 java/lang/String#`+`(). + AnonymousClasses.app(42) + +// ^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/AnonymousClasses# +// ^^^ reference semanticdb maven . . minimized/AnonymousClasses#app(). +// ^ reference semanticdb maven jdk 11 java/lang/String#`+`(). + Primitives.app() + +// ^^^^^^^^^^ reference semanticdb maven . . minimized/Primitives# +// ^^^ reference semanticdb maven . . minimized/Primitives#app(). +// ^ reference semanticdb maven jdk 11 java/lang/String#`+`(). + new ParameterizedTypes[Integer, String]() +// ^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/ParameterizedTypes# +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/Integer# +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# +// ^ reference semanticdb maven . . minimized/ParameterizedTypes#``(). + .app(42, "42") + +// ^^^ reference semanticdb maven . . minimized/ParameterizedTypes#app(). +// ^ reference semanticdb maven . . scala/Predef.int2Integer(). +// ^ reference semanticdb maven jdk 11 java/lang/String#`+`(). + RawTypes.x.toString + +// ^^^^^^^^ reference semanticdb maven . . minimized/RawTypes# +// ^ reference semanticdb maven . . minimized/RawTypes#x. +// ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Object#toString(). +// ^ reference semanticdb maven jdk 11 java/lang/String#`+`(). + ClassOf.app() + +// ^^^^^^^ reference semanticdb maven . . minimized/ClassOf# +// ^^^ reference semanticdb maven . . minimized/ClassOf#app(). +// ^ reference semanticdb maven jdk 11 java/lang/String#`+`(). + SubClasses.app() + +// ^^^^^^^^^^ reference semanticdb maven . . minimized/SubClasses# +// ^^^ reference semanticdb maven . . minimized/SubClasses#app(). +// ^ reference semanticdb maven jdk 11 java/lang/String#`+`(). + Fields.app() +// ^^^^^^ reference semanticdb maven . . minimized/Fields# +// ^^^ reference semanticdb maven . . minimized/Fields#app(). + ) + } +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/MinimizedScalaSignatures.scala b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/MinimizedScalaSignatures.scala new file mode 100644 index 000000000..c60a606ec --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/MinimizedScalaSignatures.scala @@ -0,0 +1,275 @@ +package minimized +// ^^^^^^^^^ definition semanticdb maven . . minimized/ + +// format: off + + +case class MinimizedCaseClass(value: String) { +// ^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedCaseClass# +// documentation ```scala\ncase class MinimizedCaseClass(value: String)\n``` +// __________________ synthetic_definition semanticdb maven . . minimized/MinimizedCaseClass#productElement(). +// documentation ```scala\ndef productElement(x$1: Int): Any\n``` +// relationship is_definition semanticdb maven . . minimized/MinimizedCaseClass# +// relationship is_reference is_implementation semanticdb maven . . scala/Product#productElement(). +// __________________ synthetic_definition semanticdb maven . . minimized/MinimizedCaseClass#productElementName(). +// documentation ```scala\ndef productElementName(x$1: Int): String\n``` +// relationship is_definition semanticdb maven . . minimized/MinimizedCaseClass# +// relationship is_reference is_implementation semanticdb maven . . scala/Product#productElementName(). +// __________________ synthetic_definition semanticdb maven . . minimized/MinimizedCaseClass#copy(). +// documentation ```scala\ndef copy(value: String): MinimizedCaseClass\n``` +// relationship is_definition semanticdb maven . . minimized/MinimizedCaseClass# +// ^ definition semanticdb maven . . minimized/MinimizedCaseClass#``(). +// documentation ```scala\ndef this(value: String)\n``` +// ^^^^^ definition semanticdb maven . . minimized/MinimizedCaseClass#value. +// documentation ```scala\nval value: String\n``` +// _____ synthetic_definition semanticdb maven . . minimized/MinimizedCaseClass#copy().(value) +// documentation ```scala\ndefault value: String \n``` +// relationship is_reference is_definition semanticdb maven . . minimized/MinimizedCaseClass#value. +// _____ synthetic_definition semanticdb maven . . minimized/MinimizedCaseClass#``().(value) +// documentation ```scala\nvalue: String \n``` +// relationship is_reference is_definition semanticdb maven . . minimized/MinimizedCaseClass#value. +// _____ synthetic_definition semanticdb maven . . minimized/MinimizedCaseClass.apply().(value) +// documentation ```scala\nvalue: String \n``` +// relationship is_reference is_definition semanticdb maven . . minimized/MinimizedCaseClass#value. +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# + def this() = this(value = "value") +// ^^^^ definition semanticdb maven . . minimized/MinimizedCaseClass#``(+1). +// documentation ```scala\ndef this()\n``` +// ^ reference semanticdb maven . . minimized/MinimizedCaseClass#``(). +// ^^^^^ reference semanticdb maven . . minimized/MinimizedCaseClass#``().(value) +} +object MinimizedCaseClass { +// ^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedCaseClass. +// documentation ```scala\nobject MinimizedCaseClass\n``` +// __________________ synthetic_definition semanticdb maven . . minimized/MinimizedCaseClass.apply(). +// documentation ```scala\ndef apply(value: String): MinimizedCaseClass\n``` +// relationship is_definition semanticdb maven . . minimized/MinimizedCaseClass. + def main(): Unit = { +// ^^^^ definition semanticdb maven . . minimized/MinimizedCaseClass.main(). +// documentation ```scala\ndef main(): Unit\n``` +// ^^^^ reference semanticdb maven . . scala/Unit# + println(MinimizedCaseClass.apply(value = "value1").copy(value = "value2").value) +// ^^^^^^^ reference semanticdb maven . . scala/Predef.println(+1). +// ^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/MinimizedCaseClass. +// ^^^^^ reference semanticdb maven . . minimized/MinimizedCaseClass.apply(). +// ^^^^^ reference semanticdb maven . . minimized/MinimizedCaseClass.apply().(value) +// ^^^^ reference semanticdb maven . . minimized/MinimizedCaseClass#copy(). +// ^^^^^ reference semanticdb maven . . minimized/MinimizedCaseClass#copy().(value) +// ^^^^^ reference semanticdb maven . . minimized/MinimizedCaseClass#value. + } +} + +trait MinimizedTrait[T] extends AutoCloseable { +// ^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedTrait# +// documentation ```scala\ntrait MinimizedTrait[T]\n``` +// ^ definition semanticdb maven . . minimized/MinimizedTrait#[T] +// documentation ```scala\nT\n``` +// ^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/AutoCloseable# + def add(e: T): T +// ^^^ definition semanticdb maven . . minimized/MinimizedTrait#add(). +// documentation ```scala\ndef add(e: T): T\n``` +// ^ definition semanticdb maven . . minimized/MinimizedTrait#add().(e) +// documentation ```scala\ne: T \n``` +// ^ reference semanticdb maven . . minimized/MinimizedTrait#[T] +// ^ reference semanticdb maven . . minimized/MinimizedTrait#[T] + final def +(e: T): T = add(e) +// ^ definition semanticdb maven . . minimized/MinimizedTrait#`+`(). +// documentation ```scala\nfinal def +(e: T): T\n``` +// ^ definition semanticdb maven . . minimized/MinimizedTrait#`+`().(e) +// documentation ```scala\ne: T \n``` +// ^ reference semanticdb maven . . minimized/MinimizedTrait#[T] +// ^ reference semanticdb maven . . minimized/MinimizedTrait#[T] +// ^^^ reference semanticdb maven . . minimized/MinimizedTrait#add(). +// ^ reference semanticdb maven . . minimized/MinimizedTrait#`+`().(e) +} + +class MinimizedScalaSignatures extends AutoCloseable with java.io.Serializable { +// ^^^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures# +// documentation ```scala\nclass MinimizedScalaSignatures\n``` +// ^ definition semanticdb maven . . minimized/MinimizedScalaSignatures#``(). +// documentation ```scala\ndef this()\n``` +// ^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/AutoCloseable# +// ^ reference semanticdb maven jdk 11 java/lang/Object#``(). +// ^^^^ reference semanticdb maven . . java/ +// ^^ reference semanticdb maven . . java/io/ +// ^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/io/Serializable# + def close(): Unit = () +// ^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures#close(). +// documentation ```scala\ndef close(): Unit\n``` +// relationship is_reference is_implementation semanticdb maven jdk 11 java/lang/AutoCloseable#close(). +// ^^^^ reference semanticdb maven . . scala/Unit# +} + +object MinimizedScalaSignatures extends MinimizedScalaSignatures with Comparable[Int] { +// ^^^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures. +// documentation ```scala\nobject MinimizedScalaSignatures\n``` +// ^^^^^^^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/MinimizedScalaSignatures# +// ^ reference semanticdb maven . . minimized/MinimizedScalaSignatures#``(). +// ^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Comparable# +// ^^^ reference semanticdb maven . . scala/Int# + @inline def annotation(x: Int): Int = x + 1 +// ^^^^^^ reference semanticdb maven . . scala/inline# +// ^ reference semanticdb maven . . scala/inline#``(). +// ^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.annotation(). +// documentation ```scala\n@inline\ndef annotation(x: Int): Int\n``` +// ^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.annotation().(x) +// documentation ```scala\nx: Int \n``` +// ^^^ reference semanticdb maven . . scala/Int# +// ^^^ reference semanticdb maven . . scala/Int# +// ^ reference semanticdb maven . . minimized/MinimizedScalaSignatures.annotation().(x) +// ^ reference semanticdb maven . . scala/Int#`+`(+4). + @deprecated("2020-07-27") def annotationMessage(x: Int): Int = x + 1 +// ^^^^^^^^^^ reference semanticdb maven . . scala/deprecated# +// ^ reference semanticdb maven . . scala/deprecated#``(). +// ^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.annotationMessage(). +// documentation ```scala\n@deprecated\ndef annotationMessage(x: Int): Int\n``` +// ^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.annotationMessage().(x) +// documentation ```scala\nx: Int \n``` +// ^^^ reference semanticdb maven . . scala/Int# +// ^^^ reference semanticdb maven . . scala/Int# +// ^ reference semanticdb maven . . minimized/MinimizedScalaSignatures.annotationMessage().(x) +// ^ reference semanticdb maven . . scala/Int#`+`(+4). + def compareTo(x: Int): Int = ??? +// ^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.compareTo(). +// documentation ```scala\ndef compareTo(x: Int): Int\n``` +// relationship is_reference is_implementation semanticdb maven jdk 11 java/lang/Comparable#compareTo(). +// ^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.compareTo().(x) +// documentation ```scala\nx: Int \n``` +// ^^^ reference semanticdb maven . . scala/Int# +// ^^^ reference semanticdb maven . . scala/Int# +// ^^^ reference semanticdb maven . . scala/Predef.`???`(). + def identity[T](e: T): T = e +// ^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.identity(). +// documentation ```scala\ndef identity(e: T): T\n``` +// ^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.identity().[T] +// documentation ```scala\nT\n``` +// ^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.identity().(e) +// documentation ```scala\ne: T \n``` +// ^ reference semanticdb maven . . minimized/MinimizedScalaSignatures.identity().[T] +// ^ reference semanticdb maven . . minimized/MinimizedScalaSignatures.identity().[T] +// ^ reference semanticdb maven . . minimized/MinimizedScalaSignatures.identity().(e) + def tuple(): (Int, String) = null +// ^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.tuple(). +// documentation ```scala\ndef tuple(): (Int, String)\n``` +// ^^^ reference semanticdb maven . . scala/Int# +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# + def function0(): () => String = null +// ^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.function0(). +// documentation ```scala\ndef function0(): String=> String\n``` +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# + def function1(): Int => String = null +// ^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.function1(). +// documentation ```scala\ndef function1(): (Int) => String\n``` +// ^^^ reference semanticdb maven . . scala/Int# +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# + def function2(): (Int, String) => Unit = null +// ^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.function2(). +// documentation ```scala\ndef function2(): (Int, String) => Unit\n``` +// ^^^ reference semanticdb maven . . scala/Int# +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# +// ^^^^ reference semanticdb maven . . scala/Unit# + def typeParameter(): Map[Int, String] = null +// ^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.typeParameter(). +// documentation ```scala\ndef typeParameter(): Map[Int, String]\n``` +// ^^^ reference semanticdb maven . . scala/Predef.Map# +// ^^^ reference semanticdb maven . . scala/Int# +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# + def termParameter(a: Int, b: String): String = null +// ^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.termParameter(). +// documentation ```scala\ndef termParameter(a: Int, b: String): String\n``` +// ^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.termParameter().(a) +// documentation ```scala\na: Int \n``` +// ^^^ reference semanticdb maven . . scala/Int# +// ^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.termParameter().(b) +// documentation ```scala\nb: String \n``` +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# + def singletonType(e: String): e.type = e +// ^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.singletonType(). +// documentation ```scala\ndef singletonType(e: String): e.type\n``` +// ^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.singletonType().(e) +// documentation ```scala\ne: String \n``` +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# +// ^ reference semanticdb maven . . minimized/MinimizedScalaSignatures.singletonType().(e) +// ^ reference semanticdb maven . . minimized/MinimizedScalaSignatures.singletonType().(e) + def thisType(): this.type = this +// ^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.thisType(). +// documentation ```scala\ndef thisType(): this.type\n``` + def constantInt(): 1 = 1 +// ^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.constantInt(). +// documentation ```scala\ndef constantInt(): 1\n``` + def constantString(): "string" = "string" +// ^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.constantString(). +// documentation ```scala\ndef constantString(): "string"\n``` + def constantBoolean(): true = true +// ^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.constantBoolean(). +// documentation ```scala\ndef constantBoolean(): true\n``` + def constantFloat(): 1.2f = 1.2f +// ^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.constantFloat(). +// documentation ```scala\ndef constantFloat(): 1.2f\n``` + def constantChar(): 'a' = 'a' +// ^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.constantChar(). +// documentation ```scala\ndef constantChar(): 'a'\n``` + def structuralType(): { val x: Int; def foo(a: Int): String } = null +// ^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.structuralType(). +// documentation ```scala\ndef structuralType(): { val x: Int; def foo(a: Int): String }\n``` +// ^ definition local 1 +// documentation ```scala\nval x: Int\n``` +// ^^^ reference semanticdb maven . . scala/Int# +// ^^^ definition local 2 +// documentation ```scala\ndef foo(a: Int): String\n``` +// ^ definition local 3 +// documentation ```scala\na: Int \n``` +// ^^^ reference semanticdb maven . . scala/Int# +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# + def byNameType(a: => Int): Unit = () +// ^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.byNameType(). +// documentation ```scala\ndef byNameType(a: => Int): Unit\n``` +// ^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.byNameType().(a) +// documentation ```scala\na: => Int \n``` +// ^^^ reference semanticdb maven . . scala/Int# +// ^^^^ reference semanticdb maven . . scala/Unit# + def repeatedType(a: Int*): Unit = () +// ^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.repeatedType(). +// documentation ```scala\ndef repeatedType(a: Int*): Unit\n``` +// ^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.repeatedType().(a) +// documentation ```scala\na: Int* \n``` +// ^^^ reference semanticdb maven . . scala/Int# +// ^^^^ reference semanticdb maven . . scala/Unit# + + type TypeAlias = Int +// ^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.TypeAlias# +// documentation ```scala\ntype TypeAlias >: Int <: Int\n``` +// ^^^ reference semanticdb maven . . scala/Int# + type ParameterizedTypeAlias[A] = () => A +// ^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.ParameterizedTypeAlias# +// documentation ```scala\ntype ParameterizedTypeAlias >: A=> A <: A=> A\n``` +// ^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.ParameterizedTypeAlias#[A] +// documentation ```scala\nA\n``` +// ^ reference semanticdb maven . . minimized/MinimizedScalaSignatures.ParameterizedTypeAlias#[A] + type ParameterizedTypeAlias2[A, B] = A => B +// ^^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.ParameterizedTypeAlias2# +// documentation ```scala\ntype ParameterizedTypeAlias2 >: (A) => B <: (A) => B\n``` +// ^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.ParameterizedTypeAlias2#[A] +// documentation ```scala\nA\n``` +// ^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.ParameterizedTypeAlias2#[B] +// documentation ```scala\nB\n``` +// ^ reference semanticdb maven . . minimized/MinimizedScalaSignatures.ParameterizedTypeAlias2#[A] +// ^ reference semanticdb maven . . minimized/MinimizedScalaSignatures.ParameterizedTypeAlias2#[B] + type TypeBound +// ^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.TypeBound# +// documentation ```scala\ntype TypeBound\n``` + type TypeUpperBound <: String +// ^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.TypeUpperBound# +// documentation ```scala\ntype TypeUpperBound <: String\n``` +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# + type TypeLowerBound >: CharSequence +// ^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.TypeLowerBound# +// documentation ```scala\ntype TypeLowerBound >: CharSequence\n``` +// ^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/CharSequence# + type TypeLowerUpperBound >: String <: CharSequence +// ^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSignatures.TypeLowerUpperBound# +// documentation ```scala\ntype TypeLowerUpperBound >: String <: CharSequence\n``` +// ^^^^^^ reference semanticdb maven . . scala/Predef.String# +// ^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/CharSequence# +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/MinimizedScalaSynthetic.scala b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/MinimizedScalaSynthetic.scala new file mode 100644 index 000000000..b30185ba8 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/MinimizedScalaSynthetic.scala @@ -0,0 +1,104 @@ +package minimized +// ^^^^^^^^^ definition semanticdb maven . . minimized/ + +import scala.concurrent.ExecutionContext.Implicits.global +// ^^^^^ reference semanticdb maven . . scala/ +// ^^^^^^^^^^ reference semanticdb maven . . scala/concurrent/ +// ^^^^^^^^^^^^^^^^ reference semanticdb maven . . scala/concurrent/ExecutionContext. +// ^^^^^^^^^ reference semanticdb maven . . scala/concurrent/ExecutionContext.Implicits. +// ^^^^^^ reference semanticdb maven . . scala/concurrent/ExecutionContext.Implicits.global(). +import scala.concurrent.Future +// ^^^^^ reference semanticdb maven . . scala/ +// ^^^^^^^^^^ reference semanticdb maven . . scala/concurrent/ +// ^^^^^^ reference semanticdb maven . . scala/concurrent/Future. +// ^^^^^^ reference semanticdb maven . . scala/concurrent/Future# + +class MinimizedScalaSynthetic { +// ^^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSynthetic# +// documentation ```scala\nclass MinimizedScalaSynthetic\n``` +// ^ definition semanticdb maven . . minimized/MinimizedScalaSynthetic#``(). +// documentation ```scala\ndef this()\n``` + def everything(): Unit = Future(1) +// ^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSynthetic#everything(). +// documentation ```scala\ndef everything(): Unit\n``` +// ^^^^ reference semanticdb maven . . scala/Unit# +// ^^^^^^ reference semanticdb maven . . scala/concurrent/Future. +// ^ reference semanticdb maven . . scala/concurrent/Future.apply(). +// ^ reference semanticdb maven . . scala/concurrent/ExecutionContext.Implicits.global(). + def applyTree(): Unit = Future.apply[Int](1) +// ^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSynthetic#applyTree(). +// documentation ```scala\ndef applyTree(): Unit\n``` +// ^^^^ reference semanticdb maven . . scala/Unit# +// ^^^^^^ reference semanticdb maven . . scala/concurrent/Future. +// ^^^^^ reference semanticdb maven . . scala/concurrent/Future.apply(). +// ^^^ reference semanticdb maven . . scala/Int# +// ^ reference semanticdb maven . . scala/concurrent/ExecutionContext.Implicits.global(). + def applyTree2(): Unit = List.apply[Int](1).sorted +// ^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSynthetic#applyTree2(). +// documentation ```scala\ndef applyTree2(): Unit\n``` +// ^^^^ reference semanticdb maven . . scala/Unit# +// ^^^^ reference semanticdb maven . . scala/package.List. +// ^^^^^ reference semanticdb maven . . scala/collection/IterableFactory#apply(). +// ^^^ reference semanticdb maven . . scala/Int# +// ^^^^^^ reference semanticdb maven . . scala/collection/immutable/StrictOptimizedSeqOps#sorted(). +// ^ reference semanticdb maven . . scala/math/Ordering.Int. + def selectTree(): Unit = Future[Int](1) +// ^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSynthetic#selectTree(). +// documentation ```scala\ndef selectTree(): Unit\n``` +// ^^^^ reference semanticdb maven . . scala/Unit# +// ^^^^^^ reference semanticdb maven . . scala/concurrent/Future. +// ^ reference semanticdb maven . . scala/concurrent/Future.apply(). +// ^^^ reference semanticdb maven . . scala/Int# +// ^ reference semanticdb maven . . scala/concurrent/ExecutionContext.Implicits.global(). + def typeApplyTree(): Unit = Future.apply(1) +// ^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSynthetic#typeApplyTree(). +// documentation ```scala\ndef typeApplyTree(): Unit\n``` +// ^^^^ reference semanticdb maven . . scala/Unit# +// ^^^^^^ reference semanticdb maven . . scala/concurrent/Future. +// ^^^^^ reference semanticdb maven . . scala/concurrent/Future.apply(). +// ^ reference semanticdb maven . . scala/concurrent/ExecutionContext.Implicits.global(). + def forComprehensions(): Unit = +// ^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedScalaSynthetic#forComprehensions(). +// documentation ```scala\ndef forComprehensions(): Unit\n``` +// ^^^^ reference semanticdb maven . . scala/Unit# + for { + x <- Future(1) +// ^ definition local 0 +// documentation ```scala\nx: Int \n``` +// ^^^^^^ reference semanticdb maven . . scala/concurrent/Future. +// ^ reference semanticdb maven . . scala/concurrent/Future.apply(). + y <- Future.successful(1) +// ^ definition local 1 +// documentation ```scala\ny: Int \n``` +// ^^^^^^ reference semanticdb maven . . scala/concurrent/Future. +// ^^^^^^^^^^ reference semanticdb maven . . scala/concurrent/Future.successful(). + if y < 2 +// ^ reference local 1 +// ^ reference semanticdb maven . . scala/Int#`<`(+3). + z <- Future.apply[Int](1) +// ^ definition local 2 +// documentation ```scala\nz: Int \n``` +// ^^^^^^ reference semanticdb maven . . scala/concurrent/Future. +// ^^^^^ reference semanticdb maven . . scala/concurrent/Future.apply(). +// ^^^ reference semanticdb maven . . scala/Int# + } yield x + y + z +// ^ reference local 0 +// ^ reference semanticdb maven . . scala/Int#`+`(+4). +// ^ reference local 1 +// ^ reference semanticdb maven . . scala/Int#`+`(+4). +// ^ reference local 2 +// ^ reference semanticdb maven . . scala/concurrent/ExecutionContext.Implicits.global(). +// ^ reference semanticdb maven . . scala/concurrent/Future#flatMap(). +// ^ reference local 0 +// ^ reference semanticdb maven . . scala/concurrent/Future#withFilter(). +// ^ reference local 1 +// ^ reference semanticdb maven . . scala/concurrent/ExecutionContext.Implicits.global(). +// ^ reference semanticdb maven . . scala/concurrent/Future#flatMap(). +// ^ reference local 1 +// ^ reference semanticdb maven . . scala/concurrent/ExecutionContext.Implicits.global(). +// ^ reference semanticdb maven . . scala/concurrent/Future#map(). +// ^ reference local 2 +// ^ reference semanticdb maven . . scala/concurrent/ExecutionContext.Implicits.global(). +// ^ reference semanticdb maven . . scala/concurrent/ExecutionContext.Implicits.global(). +// ^ reference semanticdb maven . . scala/concurrent/ExecutionContext.Implicits.global(). +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/ReflectiveCall.scala b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/ReflectiveCall.scala new file mode 100644 index 000000000..514615f6e --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized-scala/src/main/scala/minimized/ReflectiveCall.scala @@ -0,0 +1,29 @@ +package minimized +// ^^^^^^^^^ definition semanticdb maven . . minimized/ + +import scala.language.reflectiveCalls +// ^^^^^ reference semanticdb maven . . scala/ +// ^^^^^^^^ reference semanticdb maven . . scala/language. +// ^^^^^^^^^^^^^^^ reference semanticdb maven . . scala/language.reflectiveCalls. + +class ReflectiveCall { +// ^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/ReflectiveCall# +// documentation ```scala\nclass ReflectiveCall\n``` +// ^ definition semanticdb maven . . minimized/ReflectiveCall#``(). +// documentation ```scala\ndef this()\n``` + // Reproduction for https://github.com/scalameta/scalameta/issues/2788 + val a = +// ^ definition semanticdb maven . . minimized/ReflectiveCall#a. +// documentation ```scala\nval a: { val b: Int }\n``` + new { +// ^ definition local 0 +// documentation ```scala\nfinal class $anon\n``` + val b = 1 +// ^ definition local 1 +// documentation ```scala\nval b: Int\n``` + } + println(a.b) +//^^^^^^^ reference semanticdb maven . . scala/Predef.println(+1). +// ^ reference semanticdb maven . . minimized/ReflectiveCall#a. +// ^ reference local 1 +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/AbstractClasses.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/AbstractClasses.java new file mode 100644 index 000000000..25e5410d8 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/AbstractClasses.java @@ -0,0 +1,19 @@ +package minimized; + +public abstract class AbstractClasses { +// ^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/AbstractClasses# +// documentation ```java\npublic abstract class AbstractClasses\n``` +// ^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/AbstractClasses#``(). +// documentation ```java\npublic AbstractClasses()\n``` + public String defaultImplementation() { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/AbstractClasses#defaultImplementation(). +// documentation ```java\npublic String defaultImplementation()\n``` + return ""; + } + + public abstract String abstractImplementation(); +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/AbstractClasses#abstractImplementation(). +// documentation ```java\npublic abstract String abstractImplementation()\n``` +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Annotations.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Annotations.java new file mode 100644 index 000000000..97ca51e98 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Annotations.java @@ -0,0 +1,67 @@ +package minimized; + +import java.lang.annotation.Documented; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/lang/ +// ^^^^^^^^^^ reference semanticdb maven . . java/lang/annotation/ +// ^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/Documented# +import java.lang.annotation.Retention; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/lang/ +// ^^^^^^^^^^ reference semanticdb maven . . java/lang/annotation/ +// ^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/Retention# +import java.lang.annotation.RetentionPolicy; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/lang/ +// ^^^^^^^^^^ reference semanticdb maven . . java/lang/annotation/ +// ^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/RetentionPolicy# +import java.lang.annotation.Target; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/lang/ +// ^^^^^^^^^^ reference semanticdb maven . . java/lang/annotation/ +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/Target# + +import static java.lang.annotation.ElementType.*; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/lang/ +// ^^^^^^^^^^ reference semanticdb maven . . java/lang/annotation/ +// ^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/ElementType# + +@Documented +//^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/Documented# +@Retention(RetentionPolicy.RUNTIME) +//^^^^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/Retention# +// ^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/RetentionPolicy# +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/RetentionPolicy#RUNTIME. +@Target(value = {CONSTRUCTOR, +//^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/Target# +// ^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/Target#value(). +// ^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/ElementType#CONSTRUCTOR. + FIELD, +// ^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/ElementType#FIELD. + LOCAL_VARIABLE, +// ^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/ElementType#LOCAL_VARIABLE. + METHOD, +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/ElementType#METHOD. + PACKAGE, +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/ElementType#PACKAGE. + PARAMETER, +// ^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/annotation/ElementType#PARAMETER. + TYPE} +// ^^^^ reference semanticdb maven jdk 11 java/lang/annotation/ElementType#TYPE. +) +public @interface Annotations { +// ^^^^^^^^^^^ definition semanticdb maven . . minimized/Annotations# +// documentation ```java\n@Documented\n@Retention(RetentionPolicy.RUNTIME)\n@Target({CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})\npublic @interface Annotations\n``` +// relationship is_reference is_implementation semanticdb maven jdk 11 java/lang/annotation/Annotation# + + String value() default ""; +//^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^ definition semanticdb maven . . minimized/Annotations#value(). +// documentation ```java\npublic abstract String value()\n``` + + String format() default ""; +//^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^ definition semanticdb maven . . minimized/Annotations#format(). +// documentation ```java\npublic abstract String format()\n``` +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/AnonymousClasses.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/AnonymousClasses.java new file mode 100644 index 000000000..40b76be97 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/AnonymousClasses.java @@ -0,0 +1,52 @@ +package minimized; + +import java.util.function.Function; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/util/ +// ^^^^^^^^ reference semanticdb maven . . java/util/function/ +// ^^^^^^^^ reference semanticdb maven jdk 11 java/util/function/Function# + +@SuppressWarnings("ALL") +//^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/SuppressWarnings# +public class AnonymousClasses { +// ^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/AnonymousClasses# +// documentation ```java\n@SuppressWarnings("ALL")\npublic class AnonymousClasses\n``` +// ^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/AnonymousClasses#``(). +// documentation ```java\npublic AnonymousClasses()\n``` + public static int app(int n) { +// ^^^ definition semanticdb maven . . minimized/AnonymousClasses#app(). +// documentation ```java\npublic static int app(int n)\n``` +// ^ definition local 0 +// documentation ```java\nint n\n``` + Function fn = +// ^^^^^^^^ reference semanticdb maven jdk 11 java/util/function/Function# +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/Integer# +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/Integer# +// ^^ definition local 1 +// documentation ```java\nFunction fn\n``` + new Function() { +// ^^^^^^^^ reference semanticdb maven jdk 11 java/util/function/Function# +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/Integer# +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/Integer# + @Override +// ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Override# + public Integer apply(Integer integer) { +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/Integer# +// ^^^^^ definition local 4 +// documentation ```java\n@Override\npublic Integer apply(Integer integer)\n``` +// relationship is_reference is_implementation semanticdb maven jdk 11 java/util/function/Function#apply(). +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/Integer# +// ^^^^^^^ definition local 5 +// documentation ```java\nInteger integer\n``` + return integer + n; +// ^^^^^^^ reference local 5 +// ^ reference local 0 + } + }; + + return fn.apply(n); +// ^^ reference local 1 +// ^^^^^ reference semanticdb maven jdk 11 java/util/function/Function#apply(). +// ^ reference local 0 + } +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Arrays.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Arrays.java new file mode 100644 index 000000000..e51f7b6cf --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Arrays.java @@ -0,0 +1,32 @@ +package minimized; + +public class Arrays { +// ^^^^^^ definition semanticdb maven . . minimized/Arrays# +// documentation ```java\npublic class Arrays\n``` +// ^^^^^^ definition semanticdb maven . . minimized/Arrays#``(). +// documentation ```java\npublic Arrays()\n``` + public static String app() { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^ definition semanticdb maven . . minimized/Arrays#app(). +// documentation ```java\npublic static String app()\n``` + int[] a = {1, 2, 3}; +// ^ definition local 0 +// documentation ```java\nint[] a\n``` + String[] b = {"1", "2", "3"}; +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^ definition local 1 +// documentation ```java\nString[] b\n``` + int[][] c = {{1}, {2}, {3}}; +// ^ definition local 2 +// documentation ```java\nint[][] c\n``` + String[][] d = {{"1"}, {"2"}, {"3"}}; +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^ definition local 3 +// documentation ```java\nString[][] d\n``` + return b[0] + a[0] + c[1][0] + d[1][0]; +// ^ reference local 1 +// ^ reference local 0 +// ^ reference local 2 +// ^ reference local 3 + } +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/ClassOf.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/ClassOf.java new file mode 100644 index 000000000..18ddf348e --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/ClassOf.java @@ -0,0 +1,17 @@ +package minimized; + +public class ClassOf { +// ^^^^^^^ definition semanticdb maven . . minimized/ClassOf# +// documentation ```java\npublic class ClassOf\n``` +// ^^^^^^^ definition semanticdb maven . . minimized/ClassOf#``(). +// documentation ```java\npublic ClassOf()\n``` + public static String app() { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^ definition semanticdb maven . . minimized/ClassOf#app(). +// documentation ```java\npublic static String app()\n``` + return ClassOf.class.getName(); +// ^^^^^^^ reference semanticdb maven . . minimized/ClassOf# +// ^^^^^ reference semanticdb maven . . minimized/ClassOf#class. +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/Class#getName(). + } +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Docstrings.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Docstrings.java new file mode 100644 index 000000000..dc135919c --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Docstrings.java @@ -0,0 +1,56 @@ +package minimized; + +/** Example class docstring. */ +public class Docstrings { +// ^^^^^^^^^^ definition semanticdb maven . . minimized/Docstrings# +// documentation ```java\npublic class Docstrings\n``` +// documentation Example class docstring. +// ^^^^^^^^^^ definition semanticdb maven . . minimized/Docstrings#``(). +// documentation ```java\npublic Docstrings()\n``` + + /** Example field docstring. */ + public static int field = 42; +// ^^^^^ definition semanticdb maven . . minimized/Docstrings#field. +// documentation ```java\npublic static int field\n``` +// documentation Example field docstring. + + /** + * Example method docstring. + * + * @return 42. + */ + public static int method() { +// ^^^^^^ definition semanticdb maven . . minimized/Docstrings#method(). +// documentation ```java\npublic static int method()\n``` +// documentation Example method docstring.\n\n @return 42.\n + return 42; + } + + /** + * Example method parameter docstring. + * + * @param n The parameter. + * @return The number + 42. + */ + public static int methodParameter(int n) { +// ^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Docstrings#methodParameter(). +// documentation ```java\npublic static int methodParameter(int n)\n``` +// documentation Example method parameter docstring.\n\n @param n The parameter.\n @return The number + 42.\n +// ^ definition local 0 +// documentation ```java\nint n\n``` + return n + 42; +// ^ reference local 0 + } + + public static String app() { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^ definition semanticdb maven . . minimized/Docstrings#app(). +// documentation ```java\npublic static String app()\n``` + return String.format("%s%s%s", field, method(), methodParameter(42)); +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String#format(). +// ^^^^^ reference semanticdb maven . . minimized/Docstrings#field. +// ^^^^^^ reference semanticdb maven . . minimized/Docstrings#method(). +// ^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Docstrings#methodParameter(). + } +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Enums.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Enums.java new file mode 100644 index 000000000..d8090de0e --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Enums.java @@ -0,0 +1,83 @@ +package minimized; +//^^^^^ reference semanticdb maven . . minimized/Enums# + +import java.util.Arrays; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/util/ +// ^^^^^^ reference semanticdb maven jdk 11 java/util/Arrays# +import java.util.stream.Collectors; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/util/ +// ^^^^^^ reference semanticdb maven . . java/util/stream/ +// ^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/stream/Collectors# + +enum Enums { +// ^^^^^ definition semanticdb maven . . minimized/Enums# +// documentation ```java\nenum Enums\n``` +// relationship is_implementation semanticdb maven jdk 11 java/lang/Enum# +// relationship is_implementation semanticdb maven jdk 11 java/lang/Enum# +// relationship is_implementation semanticdb maven jdk 11 java/lang/Enum# +// relationship is_implementation semanticdb maven jdk 11 java/lang/Enum# + A("A", 420), +//^ definition semanticdb maven . . minimized/Enums#A. +// documentation ```java\nEnums.A("A", 420) /* ordinal 0 */\n``` + B("B", 1), +//^ definition semanticdb maven . . minimized/Enums#B. +// documentation ```java\nEnums.B("B", 1) /* ordinal 1 */\n``` + C("C", 5); +//^ definition semanticdb maven . . minimized/Enums#C. +// documentation ```java\nEnums.C("C", 5) /* ordinal 2 */\n``` + public String value; +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^ definition semanticdb maven . . minimized/Enums#value. +// documentation ```java\npublic String value\n``` + + Enums(String value, int a) { +//^^^^^ reference semanticdb maven . . minimized/Enums#``(). +//^^^^^ reference semanticdb maven . . minimized/Enums#``(). +//^^^^^ reference semanticdb maven . . minimized/Enums#``(). +//^^^^^ definition semanticdb maven . . minimized/Enums#``(). +// documentation ```java\nprivate Enums(String value, int a)\n``` +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^ definition local 0 +// documentation ```java\nString value\n``` +// ^ definition local 1 +// documentation ```java\nint a\n``` + this.value = value; +// ^^^^^ reference semanticdb maven . . minimized/Enums#value. +// ^^^^^ reference local 0 + } + + public static String app() { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^ definition semanticdb maven . . minimized/Enums#app(). +// documentation ```java\npublic static String app()\n``` + String all = Arrays.stream(values()).map(e -> e.value).map(Enums::valueOf).collect(Collectors.toList()).toString(); +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^ definition local 2 +// documentation ```java\nString all\n``` +// ^^^^^^ reference semanticdb maven jdk 11 java/util/Arrays# +// ^^^^^^ reference semanticdb maven jdk 11 java/util/Arrays#stream(). +// ^^^^^^ reference semanticdb maven . . minimized/Enums#values(). +// ^^^ reference semanticdb maven jdk 11 java/util/stream/Stream#map(). +// ^ definition local 3 +// documentation ```java\nEnums e\n``` +// ^ reference local 3 +// ^^^^^ reference semanticdb maven . . minimized/Enums#value. +// ^^^ reference semanticdb maven jdk 11 java/util/stream/Stream#map(). +// ^^^^^ reference semanticdb maven . . minimized/Enums# +// ^^^^^^^ reference semanticdb maven . . minimized/Enums#valueOf(). +// ^^^^^^^ reference semanticdb maven jdk 11 java/util/stream/Stream#collect(+1). +// ^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/stream/Collectors# +// ^^^^^^ reference semanticdb maven jdk 11 java/util/stream/Collectors#toList(). +// ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Object#toString(). + return all + A.value + B.value + C.value; +// ^^^ reference local 2 +// ^ reference semanticdb maven . . minimized/Enums#A. +// ^^^^^ reference semanticdb maven . . minimized/Enums#value. +// ^ reference semanticdb maven . . minimized/Enums#B. +// ^^^^^ reference semanticdb maven . . minimized/Enums#value. +// ^ reference semanticdb maven . . minimized/Enums#C. +// ^^^^^ reference semanticdb maven . . minimized/Enums#value. + } +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Fields.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Fields.java new file mode 100644 index 000000000..8c1ef0454 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Fields.java @@ -0,0 +1,97 @@ +package minimized; + +public class Fields { +// ^^^^^^ definition semanticdb maven . . minimized/Fields# +// documentation ```java\npublic class Fields\n``` +// ^^^^^^ definition semanticdb maven . . minimized/Fields#``(). +// documentation ```java\npublic Fields()\n``` + private final int privateField = 0; +// ^^^^^^^^^^^^ definition semanticdb maven . . minimized/Fields#privateField. +// documentation ```java\nprivate final int privateField\n``` + protected int protectedField = 0; +// ^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Fields#protectedField. +// documentation ```java\nprotected int protectedField\n``` + public int publicField = 0; +// ^^^^^^^^^^^ definition semanticdb maven . . minimized/Fields#publicField. +// documentation ```java\npublic int publicField\n``` + private static final int staticPrivateField = 0; +// ^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Fields#staticPrivateField. +// documentation ```java\nprivate static final int staticPrivateField\n``` + protected static int staticProtectedFields = 0; +// ^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Fields#staticProtectedFields. +// documentation ```java\nprotected static int staticProtectedFields\n``` + public static int staticPublicField = 0; +// ^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Fields#staticPublicField. +// documentation ```java\npublic static int staticPublicField\n``` + + public class InnerFields { +// ^^^^^^^^^^^ definition semanticdb maven . . minimized/Fields#InnerFields# +// documentation ```java\npublic class InnerFields\n``` +// ^^^^^^^^^^^ definition semanticdb maven . . minimized/Fields#InnerFields#``(). +// documentation ```java\npublic InnerFields()\n``` + public int publicInnerField = publicField; +// ^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Fields#InnerFields#publicInnerField. +// documentation ```java\npublic int publicInnerField\n``` +// ^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#publicField. + } + + public static class InnerStaticFields { +// ^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Fields#InnerStaticFields# +// documentation ```java\npublic static class InnerStaticFields\n``` +// ^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Fields#InnerStaticFields#``(). +// documentation ```java\npublic InnerStaticFields()\n``` + public int publicNonStaticInnerField = 0; +// ^^^^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Fields#InnerStaticFields#publicNonStaticInnerField. +// documentation ```java\npublic int publicNonStaticInnerField\n``` + public static int publicStaticInnerField = 0; +// ^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Fields#InnerStaticFields#publicStaticInnerField. +// documentation ```java\npublic static int publicStaticInnerField\n``` + } + + public static String app() { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^ definition semanticdb maven . . minimized/Fields#app(). +// documentation ```java\npublic static String app()\n``` + Fields fields = new Fields(); +// ^^^^^^ reference semanticdb maven . . minimized/Fields# +// ^^^^^^ definition local 0 +// documentation ```java\nFields fields\n``` +// ^^^^^^ reference semanticdb maven . . minimized/Fields#``(). + InnerFields innerFields = fields.new InnerFields(); +// ^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#InnerFields# +// ^^^^^^^^^^^ definition local 1 +// documentation ```java\nInnerFields innerFields\n``` +// ^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#InnerFields#``(). + InnerStaticFields innerStaticFields = new InnerStaticFields(); +// ^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#InnerStaticFields# +// ^^^^^^^^^^^^^^^^^ definition local 2 +// documentation ```java\nInnerStaticFields innerStaticFields\n``` +// ^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#InnerStaticFields#``(). + return String.valueOf(fields.privateField) +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/String#valueOf(+5). +// ^^^^^^ reference local 0 +// ^^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#privateField. + + fields.protectedField +// ^^^^^^ reference local 0 +// ^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#protectedField. + + fields.publicField +// ^^^^^^ reference local 0 +// ^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#publicField. + + staticPrivateField +// ^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#staticPrivateField. + + staticProtectedFields +// ^^^^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#staticProtectedFields. + + staticPublicField +// ^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#staticPublicField. + + innerFields.publicInnerField +// ^^^^^^^^^^^ reference local 1 +// ^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#InnerFields#publicInnerField. + + InnerStaticFields.publicStaticInnerField +// ^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#InnerStaticFields# +// ^^^^^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#InnerStaticFields#publicStaticInnerField. + + innerStaticFields.publicNonStaticInnerField; +// ^^^^^^^^^^^^^^^^^ reference local 2 +// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Fields#InnerStaticFields#publicNonStaticInnerField. + } +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/ForComprehensions.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/ForComprehensions.java new file mode 100644 index 000000000..ab53228d8 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/ForComprehensions.java @@ -0,0 +1,44 @@ +package minimized; + +import java.util.Collections; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/util/ +// ^^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/Collections# +import java.util.List; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/util/ +// ^^^^ reference semanticdb maven jdk 11 java/util/List# + +public class ForComprehensions { +// ^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/ForComprehensions# +// documentation ```java\npublic class ForComprehensions\n``` +// ^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/ForComprehensions#``(). +// documentation ```java\npublic ForComprehensions()\n``` + public static int app(int n) { +// ^^^ definition semanticdb maven . . minimized/ForComprehensions#app(). +// documentation ```java\npublic static int app(int n)\n``` +// ^ definition local 0 +// documentation ```java\nint n\n``` + List integers = Collections.singletonList(n); +// ^^^^ reference semanticdb maven jdk 11 java/util/List# +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/Integer# +// ^^^^^^^^ definition local 1 +// documentation ```java\nList integers\n``` +// ^^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/Collections# +// ^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/Collections#singletonList(). +// ^ reference local 0 + int result = 0; +// ^^^^^^ definition local 2 +// documentation ```java\nint result\n``` + for (int i : integers) { +// ^ definition local 3 +// documentation ```java\nint i\n``` +// ^^^^^^^^ reference local 1 + result += i; +// ^^^^^^ reference local 2 +// ^ reference local 3 + } + return result; +// ^^^^^^ reference local 2 + } +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/InnerClasses.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/InnerClasses.java new file mode 100644 index 000000000..532df3cfc --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/InnerClasses.java @@ -0,0 +1,298 @@ +package minimized; + +public class InnerClasses { +// ^^^^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses# +// documentation ```java\npublic class InnerClasses\n``` + + private final int exampleField; +// ^^^^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#exampleField. +// documentation ```java\nprivate final int exampleField\n``` + + private static final String STRING = "asdf"; +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^ definition semanticdb maven . . minimized/InnerClasses#STRING. +// documentation ```java\nprivate static final String STRING\n``` + + private static final int top = 5; +// ^^^ definition semanticdb maven . . minimized/InnerClasses#top. +// documentation ```java\nprivate static final int top\n``` + private static final int bottom = 10; +// ^^^^^^ definition semanticdb maven . . minimized/InnerClasses#bottom. +// documentation ```java\nprivate static final int bottom\n``` + + public InnerClasses(int exampleField) { +// ^^^^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#``(). +// documentation ```java\npublic InnerClasses(int exampleField)\n``` +// ^^^^^^^^^^^^ definition local 0 +// documentation ```java\nint exampleField\n``` + this.exampleField = exampleField; +// ^^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#exampleField. +// ^^^^^^^^^^^^ reference local 0 + } + + public enum InnerEnum { +// ^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerEnum# +// documentation ```java\npublic enum InnerEnum\n``` +// relationship is_implementation semanticdb maven jdk 11 java/lang/Enum# +// relationship is_implementation semanticdb maven jdk 11 java/lang/Enum# +// relationship is_implementation semanticdb maven jdk 11 java/lang/Enum# +// relationship is_implementation semanticdb maven jdk 11 java/lang/Enum# +// ^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerEnum#``(). +// documentation ```java\nprivate InnerEnum()\n``` + A, +// ^ definition semanticdb maven . . minimized/InnerClasses#InnerEnum#A. +// documentation ```java\nInnerEnum.A /* ordinal 0 */\n``` + B, +// ^ definition semanticdb maven . . minimized/InnerClasses#InnerEnum#B. +// documentation ```java\nInnerEnum.B /* ordinal 1 */\n``` + C +// ^ definition semanticdb maven . . minimized/InnerClasses#InnerEnum#C. +// documentation ```java\nInnerEnum.C /* ordinal 2 */\n``` + } + + public interface InnerInterface { +// ^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerInterface# +// documentation ```java\npublic interface InnerInterface\n``` +// ^ definition semanticdb maven . . minimized/InnerClasses#InnerInterface#[A] +// documentation ```java\nA\n``` +// ^ definition semanticdb maven . . minimized/InnerClasses#InnerInterface#[B] +// documentation ```java\nB\n``` + B apply(A a); +// ^ reference semanticdb maven . . minimized/InnerClasses#InnerInterface#[B] +// ^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerInterface#apply(). +// documentation ```java\npublic abstract B apply(A a)\n``` +// ^ reference semanticdb maven . . minimized/InnerClasses#InnerInterface#[A] +// ^ definition local 1 +// documentation ```java\nA a\n``` + } + + public @interface InnerAnnotation { +// ^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerAnnotation# +// documentation ```java\npublic @interface InnerAnnotation\n``` +// relationship is_reference is_implementation semanticdb maven jdk 11 java/lang/annotation/Annotation# + int value(); +// ^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerAnnotation#value(). +// documentation ```java\npublic abstract int value()\n``` + } + + @SuppressWarnings(STRING + " ") +// ^^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/SuppressWarnings# +// ^^^^^^ reference semanticdb maven . . minimized/InnerClasses#STRING. + @InnerAnnotation(top / bottom) +// ^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerAnnotation# +// ^^^ reference semanticdb maven . . minimized/InnerClasses#top. +// ^^^^^^ reference semanticdb maven . . minimized/InnerClasses#bottom. + public static class InnerStaticClass { +// ^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerStaticClass# +// documentation ```java\n@SuppressWarnings(STRING + " ")\n@InnerAnnotation(top / bottom)\npublic static class InnerStaticClass\n``` +// ^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerStaticClass#``(). +// documentation ```java\npublic InnerStaticClass()\n``` + + public static void innerStaticMethod() {} +// ^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerStaticClass#innerStaticMethod(). +// documentation ```java\npublic static void innerStaticMethod()\n``` + } + + public class InnerClass implements InnerInterface { +// ^^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerClass# +// documentation ```java\npublic class InnerClass\n``` +// ^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerInterface# +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/Integer# +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/Integer# + private final int field; +// ^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerClass#field. +// documentation ```java\nprivate final int field\n``` + + public InnerClass(int field) { +// ^^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerClass#``(). +// documentation ```java\npublic InnerClass(int field)\n``` +// ^^^^^ definition local 2 +// documentation ```java\nint field\n``` + this.field = field; +// ^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerClass#field. +// ^^^^^ reference local 2 + } + + public void innerMethod() { +// ^^^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerClass#innerMethod(). +// documentation ```java\npublic void innerMethod()\n``` + System.out.println(field + exampleField); +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/System# +// ^^^ reference semanticdb maven jdk 11 java/lang/System#out. +// ^^^^^^^ reference semanticdb maven jdk 11 java/io/PrintStream#println(+3). +// ^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerClass#field. +// ^^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#exampleField. + } + + @Override +// ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Override# + public Integer apply(Integer integer) { +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/Integer# +// ^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerClass#apply(). +// documentation ```java\n@Override\npublic Integer apply(Integer integer)\n``` +// relationship is_reference is_implementation semanticdb maven . . minimized/InnerClasses#InnerInterface#apply(). +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/Integer# +// ^^^^^^^ definition local 3 +// documentation ```java\nInteger integer\n``` + return field * integer; +// ^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerClass#field. +// ^^^^^^^ reference local 3 + } + } + + private static B runInnerInterface(InnerInterface fn, A a) { +// ^ definition semanticdb maven . . minimized/InnerClasses#runInnerInterface().[A] +// documentation ```java\nA\n``` +// ^ definition semanticdb maven . . minimized/InnerClasses#runInnerInterface().[B] +// documentation ```java\nB\n``` +// ^ reference semanticdb maven . . minimized/InnerClasses#runInnerInterface().[B] +// ^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#runInnerInterface(). +// documentation ```java\nprivate static B runInnerInterface(InnerInterface fn, A a)\n``` +// ^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerInterface# +// ^ reference semanticdb maven . . minimized/InnerClasses#runInnerInterface().[A] +// ^ reference semanticdb maven . . minimized/InnerClasses#runInnerInterface().[B] +// ^^ definition local 4 +// documentation ```java\nInnerInterface fn\n``` +// ^ reference semanticdb maven . . minimized/InnerClasses#runInnerInterface().[A] +// ^ definition local 5 +// documentation ```java\nA a\n``` + return fn.apply(a); +// ^^ reference local 4 +// ^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerInterface#apply(). +// ^ reference local 5 + } + + public static void testEnum(InnerEnum magicEnum) { +// ^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#testEnum(). +// documentation ```java\npublic static void testEnum(InnerEnum magicEnum)\n``` +// ^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerEnum#``(). +// ^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerEnum#``(). +// ^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerEnum#``(). +// ^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerEnum# +// ^^^^^^^^^ definition local 6 +// documentation ```java\nInnerEnum magicEnum\n``` + if (System.nanoTime() > System.currentTimeMillis()) { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/System# +// ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/System#nanoTime(). +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/System# +// ^^^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/System#currentTimeMillis(). + magicEnum = InnerEnum.B; +// ^^^^^^^^^ reference local 6 +// ^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerEnum# +// ^ reference semanticdb maven . . minimized/InnerClasses#InnerEnum#B. + } + switch (magicEnum) { +// ^^^^^^^^^ reference local 6 + case B: +// ^ reference semanticdb maven . . minimized/InnerClasses#InnerEnum#B. + System.out.println("b"); +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/System# +// ^^^ reference semanticdb maven jdk 11 java/lang/System#out. +// ^^^^^^^ reference semanticdb maven jdk 11 java/io/PrintStream#println(+8). + break; + case A: +// ^ reference semanticdb maven . . minimized/InnerClasses#InnerEnum#A. + System.out.println("a"); +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/System# +// ^^^ reference semanticdb maven jdk 11 java/lang/System#out. +// ^^^^^^^ reference semanticdb maven jdk 11 java/io/PrintStream#println(+8). + break; + default: + break; + } + if (magicEnum == InnerEnum.A) System.out.println("a"); +// ^^^^^^^^^ reference local 6 +// ^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerEnum# +// ^ reference semanticdb maven . . minimized/InnerClasses#InnerEnum#A. +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/System# +// ^^^ reference semanticdb maven jdk 11 java/lang/System#out. +// ^^^^^^^ reference semanticdb maven jdk 11 java/io/PrintStream#println(+8). + else if (magicEnum == InnerEnum.C) System.out.println("b"); +// ^^^^^^^^^ reference local 6 +// ^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerEnum# +// ^ reference semanticdb maven . . minimized/InnerClasses#InnerEnum#C. +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/System# +// ^^^ reference semanticdb maven jdk 11 java/lang/System#out. +// ^^^^^^^ reference semanticdb maven jdk 11 java/io/PrintStream#println(+8). + else System.out.println("c"); +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/System# +// ^^^ reference semanticdb maven jdk 11 java/lang/System#out. +// ^^^^^^^ reference semanticdb maven jdk 11 java/io/PrintStream#println(+8). + } + + public static void testAnon() { +// ^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#testAnon(). +// documentation ```java\npublic static void testAnon()\n``` + InnerInterface fn = +// ^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerInterface# +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^ definition local 7 +// documentation ```java\nInnerInterface fn\n``` + new InnerInterface() { +// ^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerInterface# +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# + @Override +// ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Override# + public String apply(String s) { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^ definition local 10 +// documentation ```java\n@Override\npublic String apply(String s)\n``` +// relationship is_reference is_implementation semanticdb maven . . minimized/InnerClasses#InnerInterface#apply(). +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^ definition local 11 +// documentation ```java\nString s\n``` + return s + "b"; +// ^ reference local 11 + } + }; + System.out.println(fn.apply("a")); +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/System# +// ^^^ reference semanticdb maven jdk 11 java/lang/System#out. +// ^^^^^^^ reference semanticdb maven jdk 11 java/io/PrintStream#println(+8). +// ^^ reference local 7 +// ^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerInterface#apply(). + } + + public static String app() { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^ definition semanticdb maven . . minimized/InnerClasses#app(). +// documentation ```java\npublic static String app()\n``` + int a = 42; +// ^ definition local 12 +// documentation ```java\nint a\n``` + InnerStaticClass.innerStaticMethod(); +// ^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerStaticClass# +// ^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerStaticClass#innerStaticMethod(). + InnerClasses innerClasses = new InnerClasses(a); +// ^^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses# +// ^^^^^^^^^^^^ definition local 13 +// documentation ```java\nInnerClasses innerClasses\n``` +// ^^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#``(). +// ^ reference local 12 + InnerClass innerClass = innerClasses.new InnerClass(a); +// ^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerClass# +// ^^^^^^^^^^ definition local 14 +// documentation ```java\nInnerClass innerClass\n``` +// ^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerClass#``(). +// ^ reference local 12 + innerClass.innerMethod(); +// ^^^^^^^^^^ reference local 14 +// ^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerClass#innerMethod(). + System.out.println(runInnerInterface(innerClass, a)); +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/System# +// ^^^ reference semanticdb maven jdk 11 java/lang/System#out. +// ^^^^^^^ reference semanticdb maven jdk 11 java/io/PrintStream#println(+9). +// ^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#runInnerInterface(). +// ^^^^^^^^^^ reference local 14 +// ^ reference local 12 + testEnum(InnerEnum.A); +// ^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#testEnum(). +// ^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#InnerEnum# +// ^ reference semanticdb maven . . minimized/InnerClasses#InnerEnum#A. + testAnon(); +// ^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses#testAnon(). + return ""; + } +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Interfaces.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Interfaces.java new file mode 100644 index 000000000..ceae3fe75 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Interfaces.java @@ -0,0 +1,21 @@ +package minimized; + +public interface Interfaces { +// ^^^^^^^^^^ definition semanticdb maven . . minimized/Interfaces# +// documentation ```java\npublic interface Interfaces\n``` + static void staticInterfaceMethod() {} +// ^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Interfaces#staticInterfaceMethod(). +// documentation ```java\npublic static void staticInterfaceMethod()\n``` + + String abstractInterfaceMethod(); +//^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Interfaces#abstractInterfaceMethod(). +// documentation ```java\npublic abstract String abstractInterfaceMethod()\n``` + + default String defaultInterfaceMethod() { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Interfaces#defaultInterfaceMethod(). +// documentation ```java\npublic default String defaultInterfaceMethod()\n``` + return "default"; + } +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/LombokBuilder.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/LombokBuilder.java new file mode 100644 index 000000000..50179c9d3 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/LombokBuilder.java @@ -0,0 +1,78 @@ +package minimized; + +@lombok.Builder +//^^^^^ definition semanticdb maven . . minimized/Hello#HelloBuilder#build(). +// documentation ```java\n@SuppressWarnings("all")\npublic Hello build()\n``` +//^^^^^^^ definition local 0 +// documentation ```java\nfinal String message\n``` +//^^^^^^^ definition semanticdb maven . . minimized/Hello#HelloBuilder#message. +// documentation ```java\n@SuppressWarnings("all")\nprivate String message\n``` +//^^^^^^^ definition semanticdb maven . . minimized/Hello#HelloBuilder#message(). +// documentation ```java\n@SuppressWarnings("all")\npublic HelloBuilder message(String message)\n``` +// documentation @return {@code this}. +//^^^^^^^ definition local 1 +// documentation ```java\nfinal String message\n``` +//^^^^^^^ definition semanticdb maven . . minimized/Hello#builder(). +// documentation ```java\n@SuppressWarnings("all")\npublic static HelloBuilder builder()\n``` +//^^^^^^^^ definition semanticdb maven . . minimized/Hello#HelloBuilder#toString(). +// documentation ```java\n@Override\n@SuppressWarnings("all")\npublic String toString()\n``` +// relationship is_reference is_implementation semanticdb maven jdk 11 java/lang/Object#toString(). +//^^^^^^^^^^^^^^^ reference semanticdb maven . . java/ +//^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +//^^^^^^^^^^^^^^^ reference local 0 +//^^^^^^^^^^^^^^^ reference semanticdb maven . . java/ +//^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/SuppressWarnings#value(). +//^^^^^^^^^^^^^^^ reference semanticdb maven . . java/ +//^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/SuppressWarnings#value(). +//^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +//^^^^^^^^^^^^^^^ reference semanticdb maven . . java/ +//^^^^^^^^^^^^^^^ reference semanticdb maven . . java/ +//^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Hello# +//^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +//^^^^^^^^^^^^^^^ reference local 1 +//^^^^^^^^^^^^^^^ reference semanticdb maven . . java/ +//^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Hello# +//^^^^^^^^^^^^^^^ reference semanticdb maven . . java/ +//^^^^^^^^^^^^^^^ reference semanticdb maven . . java/ +//^^^^^^^^^^^^^^^ reference semanticdb maven . . java/ +//^^^^^^^^^^^^^^^ reference semanticdb maven . . java/ +//^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Hello# +//^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/SuppressWarnings# 1:1 +//^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/SuppressWarnings# 1:1 +//^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/SuppressWarnings# 1:1 +//^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/SuppressWarnings# 1:1 +//^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/SuppressWarnings# 1:1 +//^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/SuppressWarnings# 1:1 +//^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/SuppressWarnings# 1:1 +//^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/SuppressWarnings# 1:1 +//^^^ reference semanticdb maven . . java/lang/ +//^^^ reference semanticdb maven . . java/lang/ +//^^^ reference semanticdb maven . . java/lang/ +//^^^ reference semanticdb maven . . java/lang/ +//^^^ reference semanticdb maven . . java/lang/ +//^^^ reference semanticdb maven . . java/lang/ +//^^^ reference semanticdb maven . . java/lang/ +//^^^ reference semanticdb maven . . java/lang/ +//^^^ reference semanticdb maven . . java/lang/ +//^^^ reference semanticdb maven . . java/lang/ +//^^^^^ reference semanticdb maven . . lombok/ +//^^^^^ reference semanticdb maven jdk 11 java/lang/String# +//^^^^^^ reference semanticdb maven . . minimized/Hello#message. +//^^^^^^ reference semanticdb maven . . minimized/Hello#HelloBuilder#message. +//^^^^^^ reference semanticdb maven . . minimized/Hello#HelloBuilder#message. +//^^^^^^ reference semanticdb maven . . minimized/Hello#HelloBuilder#message. +//^^^^^^^ reference semanticdb maven jdk 11 java/lang/Override# +//^^^^^^^^^^^ reference semanticdb maven . . minimized/Hello#HelloBuilder# +//^^^^^^^^^^^ reference semanticdb maven . . minimized/Hello#HelloBuilder# +// ^^^^^^^ reference semanticdb maven . . lombok/Builder# +class Hello { +// ^^^^^ definition semanticdb maven . . minimized/Hello# +// documentation ```java\n@Builder\nclass Hello\n``` +// ^^^^^ definition semanticdb maven . . minimized/Hello#``(). +// documentation ```java\n@SuppressWarnings("all")\nHello(String message)\n``` +// ^^^^^ reference semanticdb maven . . minimized/Hello#``(). +→private String message; +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^^ definition semanticdb maven . . minimized/Hello#message. +// documentation ```java\nprivate String message\n``` +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Methods.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Methods.java new file mode 100644 index 000000000..748c63501 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Methods.java @@ -0,0 +1,94 @@ +package minimized; + +public class Methods { +// ^^^^^^^ definition semanticdb maven . . minimized/Methods# +// documentation ```java\npublic class Methods\n``` +// ^^^^^^^ definition semanticdb maven . . minimized/Methods#``(). +// documentation ```java\npublic Methods()\n``` + private int overload(int value) { +// ^^^^^^^^ definition semanticdb maven . . minimized/Methods#overload(). +// documentation ```java\nprivate int overload(int value)\n``` +// ^^^^^ definition local 0 +// documentation ```java\nint value\n``` + return value + 1; +// ^^^^^ reference local 0 + } + + private String overload(String value) { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^^^ definition semanticdb maven . . minimized/Methods#overload(+1). +// documentation ```java\nprivate String overload(String value)\n``` +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^ definition local 1 +// documentation ```java\nString value\n``` + return value + "1"; +// ^^^^^ reference local 1 + } + + private static int staticOverload(int value) { +// ^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Methods#staticOverload(). +// documentation ```java\nprivate static int staticOverload(int value)\n``` +// ^^^^^ definition local 2 +// documentation ```java\nint value\n``` + return value + 1; +// ^^^^^ reference local 2 + } + + private static String staticOverload(String value) { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/Methods#staticOverload(+1). +// documentation ```java\nprivate static String staticOverload(String value)\n``` +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^ definition local 3 +// documentation ```java\nString value\n``` + return value + "1"; +// ^^^^^ reference local 3 + } + + public static String app(int n, String m) throws RuntimeException, IndexOutOfBoundsException { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^ definition semanticdb maven . . minimized/Methods#app(). +// documentation ```java\npublic static String app(int n, String m) throws RuntimeException, IndexOutOfBoundsException\n``` +// ^ definition local 4 +// documentation ```java\nint n\n``` +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^ definition local 5 +// documentation ```java\nString m\n``` +// ^^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/RuntimeException# +// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/IndexOutOfBoundsException# + Methods methods = new Methods(); +// ^^^^^^^ reference semanticdb maven . . minimized/Methods# +// ^^^^^^^ definition local 6 +// documentation ```java\nMethods methods\n``` +// ^^^^^^^ reference semanticdb maven . . minimized/Methods#``(). + int a = staticOverload(n); +// ^ definition local 7 +// documentation ```java\nint a\n``` +// ^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Methods#staticOverload(). +// ^ reference local 4 + String b = staticOverload(m); +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^ definition local 8 +// documentation ```java\nString b\n``` +// ^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Methods#staticOverload(+1). +// ^ reference local 5 + int c = methods.overload(n); +// ^ definition local 9 +// documentation ```java\nint c\n``` +// ^^^^^^^ reference local 6 +// ^^^^^^^^ reference semanticdb maven . . minimized/Methods#overload(). +// ^ reference local 4 + String d = methods.overload(m); +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^ definition local 10 +// documentation ```java\nString d\n``` +// ^^^^^^^ reference local 6 +// ^^^^^^^^ reference semanticdb maven . . minimized/Methods#overload(+1). +// ^ reference local 5 + return b + a + c + d; +// ^ reference local 8 +// ^ reference local 7 +// ^ reference local 9 +// ^ reference local 10 + } +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/MinimizedJavaMain.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/MinimizedJavaMain.java new file mode 100644 index 000000000..49f2b166c --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/MinimizedJavaMain.java @@ -0,0 +1,64 @@ +package minimized; + +@Annotations(value = "value", format = "format") +//^^^^^^^^^^ reference semanticdb maven . . minimized/Annotations# +// ^^^^^ reference semanticdb maven . . minimized/Annotations#value(). +// ^^^^^^ reference semanticdb maven . . minimized/Annotations#format(). +public class MinimizedJavaMain { +// ^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedJavaMain# +// documentation ```java\n@Annotations(value = "value", format = "format")\npublic class MinimizedJavaMain\n``` +// ^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/MinimizedJavaMain#``(). +// documentation ```java\npublic MinimizedJavaMain()\n``` + public static void main(String[] args) { +// ^^^^ definition semanticdb maven . . minimized/MinimizedJavaMain#main(). +// documentation ```java\npublic static void main(String[] args)\n``` +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^ definition local 0 +// documentation ```java\nString[] args\n``` + TypeVariables.app(new TypeVariables.CT()); +// ^^^^^^^^^^^^^ reference semanticdb maven . . minimized/TypeVariables# +// ^^^ reference semanticdb maven . . minimized/TypeVariables#app(). +// ^^ reference semanticdb maven . . minimized/TypeVariables#CT#``(). + System.out.println( +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/System# +// ^^^ reference semanticdb maven jdk 11 java/lang/System#out. +// ^^^^^^^ reference semanticdb maven jdk 11 java/io/PrintStream#println(+8). + Methods.app(42, "42") +// ^^^^^^^ reference semanticdb maven . . minimized/Methods# +// ^^^ reference semanticdb maven . . minimized/Methods#app(). + + Enums.app() +// ^^^^^ reference semanticdb maven . . minimized/Enums# +// ^^^ reference semanticdb maven . . minimized/Enums#app(). + + Docstrings.app() +// ^^^^^^^^^^ reference semanticdb maven . . minimized/Docstrings# +// ^^^ reference semanticdb maven . . minimized/Docstrings#app(). + + InnerClasses.app() +// ^^^^^^^^^^^^ reference semanticdb maven . . minimized/InnerClasses# +// ^^^ reference semanticdb maven . . minimized/InnerClasses#app(). + + ForComprehensions.app(42) +// ^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/ForComprehensions# +// ^^^ reference semanticdb maven . . minimized/ForComprehensions#app(). + + AnonymousClasses.app(42) +// ^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/AnonymousClasses# +// ^^^ reference semanticdb maven . . minimized/AnonymousClasses#app(). + + Primitives.app() +// ^^^^^^^^^^ reference semanticdb maven . . minimized/Primitives# +// ^^^ reference semanticdb maven . . minimized/Primitives#app(). + + new ParameterizedTypes().app(42, "42") +// ^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/ParameterizedTypes#``(). +// ^^^ reference semanticdb maven . . minimized/ParameterizedTypes#app(). + + RawTypes.x.toString() +// ^^^^^^^^ reference semanticdb maven . . minimized/RawTypes# +// ^ reference semanticdb maven . . minimized/RawTypes#x. +// ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Object#toString(). + + ClassOf.app() +// ^^^^^^^ reference semanticdb maven . . minimized/ClassOf# +// ^^^ reference semanticdb maven . . minimized/ClassOf#app(). + + SubClasses.app() +// ^^^^^^^^^^ reference semanticdb maven . . minimized/SubClasses# +// ^^^ reference semanticdb maven . . minimized/SubClasses#app(). + + Fields.app()); +// ^^^^^^ reference semanticdb maven . . minimized/Fields# +// ^^^ reference semanticdb maven . . minimized/Fields#app(). + } +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/ParameterizedTypes.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/ParameterizedTypes.java new file mode 100644 index 000000000..b4fb3d068 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/ParameterizedTypes.java @@ -0,0 +1,87 @@ +package minimized; + +import java.util.HashMap; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/util/ +// ^^^^^^^ reference semanticdb maven jdk 11 java/util/HashMap# +import java.util.Iterator; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/util/ +// ^^^^^^^^ reference semanticdb maven jdk 11 java/util/Iterator# +import java.util.List; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/util/ +// ^^^^ reference semanticdb maven jdk 11 java/util/List# +import java.util.Map; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/util/ +// ^^^ reference semanticdb maven jdk 11 java/util/Map# + +public class ParameterizedTypes { +// ^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/ParameterizedTypes# +// documentation ```java\npublic class ParameterizedTypes\n``` +// ^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/ParameterizedTypes#``(). +// documentation ```java\npublic ParameterizedTypes()\n``` +// ^ definition semanticdb maven . . minimized/ParameterizedTypes#[A] +// documentation ```java\nA\n``` +// ^ definition semanticdb maven . . minimized/ParameterizedTypes#[B] +// documentation ```java\nB extends String\n``` +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# + public & Iterator> void iteratorable(List list) {} +// ^ definition semanticdb maven . . minimized/ParameterizedTypes#iteratorable().[T] +// documentation ```java\nT extends Iterable & Iterator\n``` +// ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Iterable# +// ^ reference semanticdb maven . . minimized/ParameterizedTypes#[A] +// ^^^^^^^^ reference semanticdb maven jdk 11 java/util/Iterator# +// ^ reference semanticdb maven . . minimized/ParameterizedTypes#[B] +// ^^^^^^^^^^^^ definition semanticdb maven . . minimized/ParameterizedTypes#iteratorable(). +// documentation ```java\npublic & Iterator> void iteratorable(List list)\n``` +// ^^^^ reference semanticdb maven jdk 11 java/util/List# +// ^ reference semanticdb maven . . minimized/ParameterizedTypes#iteratorable().[T] +// ^^^^ definition local 0 +// documentation ```java\nList list\n``` + + public String app(A a, B b) { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^ definition semanticdb maven . . minimized/ParameterizedTypes#app(). +// documentation ```java\npublic String app(A a, B b)\n``` +// ^ reference semanticdb maven . . minimized/ParameterizedTypes#[A] +// ^ definition local 1 +// documentation ```java\nA a\n``` +// ^ reference semanticdb maven . . minimized/ParameterizedTypes#[B] +// ^ definition local 2 +// documentation ```java\nB b\n``` + return a.toString() + b; +// ^ reference local 1 +// ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Object#toString(). +// ^ reference local 2 + } + + public Map doStuff() { return null; } +// ^^^ reference semanticdb maven jdk 11 java/util/Map# +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^^ definition semanticdb maven . . minimized/ParameterizedTypes#doStuff(). +// documentation ```java\npublic Map doStuff()\n``` + + public Quadruplet createQuadruplet() { return null; } +// ^^^^^^^^^^ reference semanticdb maven . . minimized/ParameterizedTypes#Quadruplet# +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/Object# +// ^^^^^^^ reference semanticdb maven jdk 11 java/lang/Integer# +// ^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/ParameterizedTypes#createQuadruplet(). +// documentation ```java\npublic Quadruplet createQuadruplet()\n``` + + public static class Quadruplet {} +// ^^^^^^^^^^ definition semanticdb maven . . minimized/ParameterizedTypes#Quadruplet# +// documentation ```java\npublic static class Quadruplet\n``` +// ^^^^^^^^^^ definition semanticdb maven . . minimized/ParameterizedTypes#Quadruplet#``(). +// documentation ```java\npublic Quadruplet()\n``` +// ^ definition semanticdb maven . . minimized/ParameterizedTypes#Quadruplet#[T] +// documentation ```java\nT\n``` +// ^ definition semanticdb maven . . minimized/ParameterizedTypes#Quadruplet#[S] +// documentation ```java\nS\n``` +// ^ definition semanticdb maven . . minimized/ParameterizedTypes#Quadruplet#[X] +// documentation ```java\nX\n``` +// ^ definition semanticdb maven . . minimized/ParameterizedTypes#Quadruplet#[Y] +// documentation ```java\nY\n``` +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Primitives.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Primitives.java new file mode 100644 index 000000000..0ac703605 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/Primitives.java @@ -0,0 +1,76 @@ +package minimized; + +import java.util.Random; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/util/ +// ^^^^^^ reference semanticdb maven jdk 11 java/util/Random# + +public class Primitives { +// ^^^^^^^^^^ definition semanticdb maven . . minimized/Primitives# +// documentation ```java\npublic class Primitives\n``` +// ^^^^^^^^^^ definition semanticdb maven . . minimized/Primitives#``(). +// documentation ```java\npublic Primitives()\n``` + public static String app() { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^ definition semanticdb maven . . minimized/Primitives#app(). +// documentation ```java\npublic static String app()\n``` + Random random = new Random(); +// ^^^^^^ reference semanticdb maven jdk 11 java/util/Random# +// ^^^^^^ definition local 0 +// documentation ```java\nRandom random\n``` +// ^^^^^^ reference semanticdb maven jdk 11 java/util/Random#``(). + byte a = (byte) random.nextInt(); +// ^ definition local 1 +// documentation ```java\nbyte a\n``` +// ^^^^^^ reference local 0 +// ^^^^^^^ reference semanticdb maven jdk 11 java/util/Random#nextInt(). + short b = (short) random.nextInt(); +// ^ definition local 2 +// documentation ```java\nshort b\n``` +// ^^^^^^ reference local 0 +// ^^^^^^^ reference semanticdb maven jdk 11 java/util/Random#nextInt(). + int c = random.nextInt(); +// ^ definition local 3 +// documentation ```java\nint c\n``` +// ^^^^^^ reference local 0 +// ^^^^^^^ reference semanticdb maven jdk 11 java/util/Random#nextInt(). + long d = random.nextLong(); +// ^ definition local 4 +// documentation ```java\nlong d\n``` +// ^^^^^^ reference local 0 +// ^^^^^^^^ reference semanticdb maven jdk 11 java/util/Random#nextLong(). + char e = (char) random.nextInt(); +// ^ definition local 5 +// documentation ```java\nchar e\n``` +// ^^^^^^ reference local 0 +// ^^^^^^^ reference semanticdb maven jdk 11 java/util/Random#nextInt(). + float f = (float) random.nextDouble(); +// ^ definition local 6 +// documentation ```java\nfloat f\n``` +// ^^^^^^ reference local 0 +// ^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/Random#nextDouble(). + double g = (double) random.nextDouble(); +// ^ definition local 7 +// documentation ```java\ndouble g\n``` +// ^^^^^^ reference local 0 +// ^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/Random#nextDouble(). + boolean h = random.nextBoolean(); +// ^ definition local 8 +// documentation ```java\nboolean h\n``` +// ^^^^^^ reference local 0 +// ^^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/Random#nextBoolean(). + return "" + a + b + c + d + e + f + g + h; +// ^ reference local 1 +// ^ reference local 2 +// ^ reference local 3 +// ^ reference local 4 +// ^ reference local 5 +// ^ reference local 6 +// ^ reference local 7 +// ^ reference local 8 + } + + public static void test() {} +// ^^^^ definition semanticdb maven . . minimized/Primitives#test(). +// documentation ```java\npublic static void test()\n``` +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/RawTypes.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/RawTypes.java new file mode 100644 index 000000000..f35be4a76 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/RawTypes.java @@ -0,0 +1,25 @@ +package minimized; + +import java.util.Collections; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/util/ +// ^^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/Collections# +import java.util.List; +// ^^^^ reference semanticdb maven . . java/ +// ^^^^ reference semanticdb maven . . java/util/ +// ^^^^ reference semanticdb maven jdk 11 java/util/List# + +@SuppressWarnings("ALL") +//^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/SuppressWarnings# +public class RawTypes { +// ^^^^^^^^ definition semanticdb maven . . minimized/RawTypes# +// documentation ```java\n@SuppressWarnings("ALL")\npublic class RawTypes\n``` +// ^^^^^^^^ definition semanticdb maven . . minimized/RawTypes#``(). +// documentation ```java\npublic RawTypes()\n``` + public static final List x = Collections.singletonList(42); +// ^^^^ reference semanticdb maven jdk 11 java/util/List# +// ^ definition semanticdb maven . . minimized/RawTypes#x. +// documentation ```java\npublic static final List x\n``` +// ^^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/Collections# +// ^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/util/Collections#singletonList(). +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/SubClasses.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/SubClasses.java new file mode 100644 index 000000000..464986a94 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/SubClasses.java @@ -0,0 +1,56 @@ +package minimized; + +public class SubClasses extends AbstractClasses implements Interfaces { +// ^^^^^^^^^^ definition semanticdb maven . . minimized/SubClasses# +// documentation ```java\npublic class SubClasses\n``` +// relationship is_implementation semanticdb maven . . minimized/AbstractClasses# +// relationship is_implementation semanticdb maven . . minimized/AbstractClasses# +// relationship is_implementation semanticdb maven . . minimized/AbstractClasses# +// ^^^^^^^^^^ definition semanticdb maven . . minimized/SubClasses#``(). +// documentation ```java\npublic SubClasses()\n``` +// ^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/AbstractClasses# +// ^^^^^^^^^^ reference semanticdb maven . . minimized/Interfaces# + + @Override +// ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Override# + public String abstractImplementation() { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/SubClasses#abstractImplementation(). +// documentation ```java\n@Override\npublic String abstractImplementation()\n``` +// relationship is_reference is_implementation semanticdb maven . . minimized/AbstractClasses#abstractImplementation(). + return "abstract"; + } + + @Override +// ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Override# + public String abstractInterfaceMethod() { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/SubClasses#abstractInterfaceMethod(). +// documentation ```java\n@Override\npublic String abstractInterfaceMethod()\n``` +// relationship is_reference is_implementation semanticdb maven . . minimized/Interfaces#abstractInterfaceMethod(). + return "abstractInterface"; + } + + public static String app() { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^ definition semanticdb maven . . minimized/SubClasses#app(). +// documentation ```java\npublic static String app()\n``` + SubClasses s = new SubClasses(); +// ^^^^^^^^^^ reference semanticdb maven . . minimized/SubClasses# +// ^ definition local 0 +// documentation ```java\nSubClasses s\n``` +// ^^^^^^^^^^ reference semanticdb maven . . minimized/SubClasses#``(). + return s.abstractImplementation() +// ^ reference local 0 +// ^^^^^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/SubClasses#abstractImplementation(). + + s.defaultImplementation() +// ^ reference local 0 +// ^^^^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/AbstractClasses#defaultImplementation(). + + s.abstractInterfaceMethod() +// ^ reference local 0 +// ^^^^^^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/SubClasses#abstractInterfaceMethod(). + + s.defaultInterfaceMethod(); +// ^ reference local 0 +// ^^^^^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . minimized/Interfaces#defaultInterfaceMethod(). + } +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/TabIndented.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/TabIndented.java new file mode 100644 index 000000000..00cd199c7 --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/TabIndented.java @@ -0,0 +1,50 @@ +package minimized; + +public class TabIndented { +// ^^^^^^^^^^^ definition semanticdb maven . . minimized/TabIndented# +// documentation ```java\npublic class TabIndented\n``` +// ^^^^^^^^^^^ definition semanticdb maven . . minimized/TabIndented#``(). +// documentation ```java\npublic TabIndented()\n``` +→public void app() { +// ^^^ definition semanticdb maven . . minimized/TabIndented#app(). +// documentation ```java\npublic void app()\n``` +→→Object o = new Object() { +//^^^^^^ reference semanticdb maven jdk 11 java/lang/Object# +// ^ definition local 0 +// documentation ```java\nObject o\n``` +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/Object# +→→→@Override +// ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Override# +→→→public boolean equals(Object other) { +// ^^^^^^ definition local 3 +// documentation ```java\n@Override\npublic boolean equals(Object other)\n``` +// relationship is_reference is_implementation semanticdb maven jdk 11 java/lang/Object#equals(). +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/Object# +// ^^^^^ definition local 6 +// documentation ```java\nObject other\n``` +→→→→return false; +→→→} + +→→→@Override +// ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Override# +→→→public int hashCode() { +// ^^^^^^^^ definition local 4 +// documentation ```java\n@Override\npublic int hashCode()\n``` +// relationship is_reference is_implementation semanticdb maven jdk 11 java/lang/Object#hashCode(). +→→→→return System.identityHashCode(this); +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/System# +// ^^^^^^^^^^^^^^^^ reference semanticdb maven jdk 11 java/lang/System#identityHashCode(). +→→→} + +→→→@Override +// ^^^^^^^^ reference semanticdb maven jdk 11 java/lang/Override# +→→→public String toString() { +// ^^^^^^ reference semanticdb maven jdk 11 java/lang/String# +// ^^^^^^^^ definition local 5 +// documentation ```java\n@Override\npublic String toString()\n``` +// relationship is_reference is_implementation semanticdb maven jdk 11 java/lang/Object#toString(). +→→→→return ""; +→→→} +→→}; +→} +} diff --git a/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/TypeVariables.java b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/TypeVariables.java new file mode 100644 index 000000000..2350bb43c --- /dev/null +++ b/tests/snapshots/src/main/generated/scip/tests/minimized/src/main/java/minimized/TypeVariables.java @@ -0,0 +1,75 @@ +package minimized; + +/** Example from https://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.4 */ +public class TypeVariables { +// ^^^^^^^^^^^^^ definition semanticdb maven . . minimized/TypeVariables# +// documentation ```java\npublic class TypeVariables\n``` +// documentation Example from https://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.4 +// ^^^^^^^^^^^^^ definition semanticdb maven . . minimized/TypeVariables#``(). +// documentation ```java\npublic TypeVariables()\n``` + static class C { +// ^ definition semanticdb maven . . minimized/TypeVariables#C# +// documentation ```java\nstatic class C\n``` +// ^ definition semanticdb maven . . minimized/TypeVariables#C#``(). +// documentation ```java\nC()\n``` + public void mCPublic() {} +// ^^^^^^^^ definition semanticdb maven . . minimized/TypeVariables#C#mCPublic(). +// documentation ```java\npublic void mCPublic()\n``` + + protected void mCProtected() {} +// ^^^^^^^^^^^ definition semanticdb maven . . minimized/TypeVariables#C#mCProtected(). +// documentation ```java\nprotected void mCProtected()\n``` + + void mCPackage() {} +// ^^^^^^^^^ definition semanticdb maven . . minimized/TypeVariables#C#mCPackage(). +// documentation ```java\nvoid mCPackage()\n``` + } + + interface I { +// ^ definition semanticdb maven . . minimized/TypeVariables#I# +// documentation ```java\ninterface I\n``` + void mI(); +// ^^ definition semanticdb maven . . minimized/TypeVariables#I#mI(). +// documentation ```java\npublic abstract void mI()\n``` + } + + static class CT extends C implements I { +// ^^ definition semanticdb maven . . minimized/TypeVariables#CT# +// documentation ```java\nstatic class CT\n``` +// relationship is_implementation semanticdb maven . . minimized/TypeVariables#C# +// relationship is_implementation semanticdb maven . . minimized/TypeVariables#C# +// relationship is_implementation semanticdb maven . . minimized/TypeVariables#C# +// ^^ definition semanticdb maven . . minimized/TypeVariables#CT#``(). +// documentation ```java\nCT()\n``` +// ^ reference semanticdb maven . . minimized/TypeVariables#C# +// ^ reference semanticdb maven . . minimized/TypeVariables#I# + public void mI() {} +// ^^ definition semanticdb maven . . minimized/TypeVariables#CT#mI(). +// documentation ```java\npublic void mI()\n``` +// relationship is_reference is_implementation semanticdb maven . . minimized/TypeVariables#I#mI(). + } + + public static void app(T t) { +// ^ definition semanticdb maven . . minimized/TypeVariables#app().[T] +// documentation ```java\nT extends C & I\n``` +// ^ reference semanticdb maven . . minimized/TypeVariables#C# +// ^ reference semanticdb maven . . minimized/TypeVariables#I# +// ^^^ definition semanticdb maven . . minimized/TypeVariables#app(). +// documentation ```java\npublic static void app(T t)\n``` +// ^ reference semanticdb maven . . minimized/TypeVariables#app().[T] +// ^ definition local 0 +// documentation ```java\nT t\n``` + t.mI(); +// ^ reference local 0 +// ^^ reference semanticdb maven . . minimized/TypeVariables#I#mI(). + t.mCPublic(); +// ^ reference local 0 +// ^^^^^^^^ reference semanticdb maven . . minimized/TypeVariables#C#mCPublic(). + t.mCProtected(); +// ^ reference local 0 +// ^^^^^^^^^^^ reference semanticdb maven . . minimized/TypeVariables#C#mCProtected(). + t.mCPackage(); +// ^ reference local 0 +// ^^^^^^^^^ reference semanticdb maven . . minimized/TypeVariables#C#mCPackage(). + } +} diff --git a/tests/snapshots/src/main/generated/ujson/AstTransformer.scala b/tests/snapshots/src/main/generated/ujson/AstTransformer.scala deleted file mode 100644 index 443037e06..000000000 --- a/tests/snapshots/src/main/generated/ujson/AstTransformer.scala +++ /dev/null @@ -1,216 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ -import upickle.core._ -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ - -import upickle.core.compat._ -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^ reference upickle/core/compat/ - -trait AstTransformer[I] extends Transformer[I] with JsVisitor[I, I]{ -// ^^^^^^^^^^^^^^ definition ujson/AstTransformer# trait AstTransformer[I] -// ^ definition ujson/AstTransformer#[I] I -// ^^^^^^^^^^^ reference ujson/Transformer# -// ^ reference ujson/AstTransformer#[I] -// ^^^^^^^^^ reference ujson/JsVisitor# -// ^ reference ujson/AstTransformer#[I] -// ^ reference ujson/AstTransformer#[I] - def apply(t: Readable): I = t.transform(this) -// ^^^^^ definition ujson/AstTransformer#apply(). def apply(t: Readable): I -// ^ definition ujson/AstTransformer#apply().(t) t: Readable -// ^^^^^^^^ reference ujson/Readable# -// ^ reference ujson/AstTransformer#[I] -// ^ reference ujson/AstTransformer#apply().(t) -// ^^^^^^^^^ reference ujson/Readable#transform(). - - def transformArray[T](f: Visitor[_, T], items: Iterable[I]) = { -// ^^^^^^^^^^^^^^ definition ujson/AstTransformer#transformArray(). def transformArray(f: Visitor[local0, T[, items: Iterable[I]): T -// ^ definition ujson/AstTransformer#transformArray().[T] T -// ^ definition ujson/AstTransformer#transformArray().(f) f: Visitor[local0, T[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/AstTransformer#transformArray().[T] -// ^^^^^ definition ujson/AstTransformer#transformArray().(items) items: Iterable[I] -// ^^^^^^^^ reference scala/package.Iterable# -// ^ reference ujson/AstTransformer#[I] - val ctx = f.visitArray(items.size, -1).narrow -// ^^^ definition local1 ctx: ArrVisitor[Any, T] -// ^ reference ujson/AstTransformer#transformArray().(f) -// ^^^^^^^^^^ reference upickle/core/Visitor#visitArray(). -// ^^^^^ reference ujson/AstTransformer#transformArray().(items) -// ^^^^ reference scala/collection/IterableOnceOps#size(). -// ^^^^^^ reference upickle/core/ArrVisitor#narrow(). - for(item <- items) ctx.visitValue(transform(item, ctx.subVisitor), -1) -// ^^^^ definition local2 item: I -// ^^^^^ reference ujson/AstTransformer#transformArray().(items) -// ^^^ reference local1 -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). -// ^^^^^^^^^ reference ujson/Transformer#transform(). -// ^^^^ reference local2 -// ^^^ reference local1 -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). - ctx.visitEnd(-1) -// ^^^ reference local1 -// ^^^^^^^^ reference upickle/core/ObjArrVisitor#visitEnd(). - } - def transformObject[T](f: Visitor[_, T], items: Iterable[(String, I)]) = { -// ^^^^^^^^^^^^^^^ definition ujson/AstTransformer#transformObject(). def transformObject(f: Visitor[local3, T[, items: Iterable[(String, I)]): T -// ^ definition ujson/AstTransformer#transformObject().[T] T -// ^ definition ujson/AstTransformer#transformObject().(f) f: Visitor[local3, T[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/AstTransformer#transformObject().[T] -// ^^^^^ definition ujson/AstTransformer#transformObject().(items) items: Iterable[(String, I)] -// ^^^^^^^^ reference scala/package.Iterable# -// ^^^^^^ reference scala/Predef.String# -// ^ reference ujson/AstTransformer#[I] - val ctx = f.visitObject(items.size, -1).narrow -// ^^^ definition local4 ctx: ObjVisitor[Any, T] -// ^ reference ujson/AstTransformer#transformObject().(f) -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitObject(). -// ^^^^^ reference ujson/AstTransformer#transformObject().(items) -// ^^^^ reference scala/collection/IterableOnceOps#size(). -// ^^^^^^ reference upickle/core/ObjVisitor#narrow(). - for(kv <- items) { -// ^^ definition local5 kv: (String, I) -// ^^^^^ reference ujson/AstTransformer#transformObject().(items) - val keyVisitor = ctx.visitKey(-1) -// ^^^^^^^^^^ definition local6 keyVisitor: Visitor[local7, Any[ -// ^^^ reference local4 -// ^^^^^^^^ reference upickle/core/ObjVisitor#visitKey(). - ctx.visitKeyValue(keyVisitor.visitString(kv._1, -1)) -// ^^^ reference local4 -// ^^^^^^^^^^^^^ reference upickle/core/ObjVisitor#visitKeyValue(). -// ^^^^^^^^^^ reference local6 -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^^ reference local5 -// ^^ reference scala/Tuple2#_1. - ctx.visitValue(transform(kv._2, ctx.subVisitor), -1) -// ^^^ reference local4 -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). -// ^^^^^^^^^ reference ujson/Transformer#transform(). -// ^^ reference local5 -// ^^ reference scala/Tuple2#_2. -// ^^^ reference local4 -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). - } - ctx.visitEnd(-1) -// ^^^ reference local4 -// ^^^^^^^^ reference upickle/core/ObjArrVisitor#visitEnd(). - } - - class AstObjVisitor[T](build: T => I) -// ^^^^^^^^^^^^^ definition ujson/AstTransformer#AstObjVisitor# class AstObjVisitor[T] -// ^ definition ujson/AstTransformer#AstObjVisitor#[T] T -// definition ujson/AstTransformer#AstObjVisitor#``(). def this(build: (T) => I)(factory: Factory[(String, I), T]) -// ^^^^^ definition ujson/AstTransformer#AstObjVisitor#build. private[this] val build: (T) => I -// ^^^^^ definition ujson/AstTransformer#AstObjVisitor#``().(build) build: (T) => I -// ^ reference ujson/AstTransformer#AstObjVisitor#[T] -// ^ reference ujson/AstTransformer#[I] - (implicit factory: Factory[(String, I), T])extends ObjVisitor[I, I] { -// ^^^^^^^ definition ujson/AstTransformer#AstObjVisitor#factory. private[this] implicit val factory: Factory[(String, I), T] -// ^^^^^^^ definition ujson/AstTransformer#AstObjVisitor#``().(factory) implicit factory: Factory[(String, I), T] -// ^^^^^^^ reference upickle/core/compat/package.Factory# -// ^^^^^^ reference scala/Predef.String# -// ^ reference ujson/AstTransformer#[I] -// ^ reference ujson/AstTransformer#AstObjVisitor#[T] -// ^^^^^^^^^^ reference upickle/core/ObjVisitor# -// ^ reference ujson/AstTransformer#[I] -// ^ reference ujson/AstTransformer#[I] -// reference java/lang/Object#``(). - - private[this] var key: String = null -// ^^^ definition ujson/AstTransformer#AstObjVisitor#key(). private[this] var key: String -// ^^^ definition ujson/AstTransformer#AstObjVisitor#`key_=`(). private[this] var key_=(x$1: String): Unit -// ^^^^^^ reference scala/Predef.String# - private[this] val vs = factory.newBuilder -// ^^ definition ujson/AstTransformer#AstObjVisitor#vs. private[this] val vs: Builder[(String, I), T] -// ^^^^^^^ reference ujson/AstTransformer#AstObjVisitor#factory. -// ^^^^^^^^^^ reference scala/collection/Factory#newBuilder(). - def subVisitor = AstTransformer.this -// ^^^^^^^^^^ definition ujson/AstTransformer#AstObjVisitor#subVisitor(). def subVisitor: AstTransformer[I] -// ^^^^^^^^^^^^^^ reference ujson/AstTransformer# - def visitKey(index: Int) = upickle.core.StringVisitor -// ^^^^^^^^ definition ujson/AstTransformer#AstObjVisitor#visitKey(). def visitKey(index: Int): StringVisitor -// ^^^^^ definition ujson/AstTransformer#AstObjVisitor#visitKey().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^^^ reference upickle/core/StringVisitor. - def visitKeyValue(s: Any): Unit = key = s.toString -// ^^^^^^^^^^^^^ definition ujson/AstTransformer#AstObjVisitor#visitKeyValue(). def visitKeyValue(s: Any): Unit -// ^ definition ujson/AstTransformer#AstObjVisitor#visitKeyValue().(s) s: Any -// ^^^ reference scala/Any# -// ^^^^ reference scala/Unit# -// ^^^ reference ujson/AstTransformer#AstObjVisitor#key(). -// ^ reference ujson/AstTransformer#AstObjVisitor#visitKeyValue().(s) -// ^^^^^^^^ reference scala/Any#toString(). - - def visitValue(v: I, index: Int): Unit = vs += (key -> v) -// ^^^^^^^^^^ definition ujson/AstTransformer#AstObjVisitor#visitValue(). def visitValue(v: I, index: Int): Unit -// ^ definition ujson/AstTransformer#AstObjVisitor#visitValue().(v) v: I -// ^ reference ujson/AstTransformer#[I] -// ^^^^^ definition ujson/AstTransformer#AstObjVisitor#visitValue().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Unit# -// ^^ reference ujson/AstTransformer#AstObjVisitor#vs. -// ^^ reference scala/collection/mutable/Growable#`+=`(). -// ^^^ reference ujson/AstTransformer#AstObjVisitor#key(). -// ^^ reference scala/Predef.ArrowAssoc#`->`(). -// ^ reference ujson/AstTransformer#AstObjVisitor#visitValue().(v) - - def visitEnd(index: Int) = build(vs.result) -// ^^^^^^^^ definition ujson/AstTransformer#AstObjVisitor#visitEnd(). def visitEnd(index: Int): I -// ^^^^^ definition ujson/AstTransformer#AstObjVisitor#visitEnd().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^^ reference ujson/AstTransformer#AstObjVisitor#build. -// ^^ reference ujson/AstTransformer#AstObjVisitor#vs. -// ^^^^^^ reference scala/collection/mutable/Builder#result(). - } - class AstArrVisitor[T[_]](build: T[I] => I) -// ^^^^^^^^^^^^^ definition ujson/AstTransformer#AstArrVisitor# class AstArrVisitor[T] -// ^ definition ujson/AstTransformer#AstArrVisitor#[T] T -// definition ujson/AstTransformer#AstArrVisitor#``(). def this(build: (T[I]) => I)(factory: Factory[I, T[I]]) -// ^^^^^ definition ujson/AstTransformer#AstArrVisitor#build. private[this] val build: (T[I]) => I -// ^^^^^ definition ujson/AstTransformer#AstArrVisitor#``().(build) build: (T[I]) => I -// ^ reference ujson/AstTransformer#AstArrVisitor#[T] -// ^ reference ujson/AstTransformer#[I] -// ^ reference ujson/AstTransformer#[I] - (implicit factory: Factory[I, T[I]]) extends ArrVisitor[I, I]{ -// ^^^^^^^ definition ujson/AstTransformer#AstArrVisitor#factory. private[this] implicit val factory: Factory[I, T[I]] -// ^^^^^^^ definition ujson/AstTransformer#AstArrVisitor#``().(factory) implicit factory: Factory[I, T[I]] -// ^^^^^^^ reference upickle/core/compat/package.Factory# -// ^ reference ujson/AstTransformer#[I] -// ^ reference ujson/AstTransformer#AstArrVisitor#[T] -// ^ reference ujson/AstTransformer#[I] -// ^^^^^^^^^^ reference upickle/core/ArrVisitor# -// ^ reference ujson/AstTransformer#[I] -// ^ reference ujson/AstTransformer#[I] -// reference java/lang/Object#``(). - def subVisitor = AstTransformer.this -// ^^^^^^^^^^ definition ujson/AstTransformer#AstArrVisitor#subVisitor(). def subVisitor: AstTransformer[I] -// ^^^^^^^^^^^^^^ reference ujson/AstTransformer# - private[this] val vs = factory.newBuilder -// ^^ definition ujson/AstTransformer#AstArrVisitor#vs. private[this] val vs: Builder[I, T[I]] -// ^^^^^^^ reference ujson/AstTransformer#AstArrVisitor#factory. -// ^^^^^^^^^^ reference scala/collection/Factory#newBuilder(). - def visitValue(v: I, index: Int): Unit = vs += v -// ^^^^^^^^^^ definition ujson/AstTransformer#AstArrVisitor#visitValue(). def visitValue(v: I, index: Int): Unit -// ^ definition ujson/AstTransformer#AstArrVisitor#visitValue().(v) v: I -// ^ reference ujson/AstTransformer#[I] -// ^^^^^ definition ujson/AstTransformer#AstArrVisitor#visitValue().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Unit# -// ^^ reference ujson/AstTransformer#AstArrVisitor#vs. -// ^^ reference scala/collection/mutable/Growable#`+=`(). -// ^ reference ujson/AstTransformer#AstArrVisitor#visitValue().(v) - - def visitEnd(index: Int) = build(vs.result()) -// ^^^^^^^^ definition ujson/AstTransformer#AstArrVisitor#visitEnd(). def visitEnd(index: Int): I -// ^^^^^ definition ujson/AstTransformer#AstArrVisitor#visitEnd().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^^ reference ujson/AstTransformer#AstArrVisitor#build. -// ^^ reference ujson/AstTransformer#AstArrVisitor#vs. -// ^^^^^^ reference scala/collection/mutable/Builder#result(). - } -} diff --git a/tests/snapshots/src/main/generated/ujson/ByteArrayParser.scala b/tests/snapshots/src/main/generated/ujson/ByteArrayParser.scala deleted file mode 100644 index 5c50148a7..000000000 --- a/tests/snapshots/src/main/generated/ujson/ByteArrayParser.scala +++ /dev/null @@ -1,100 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ - -import scala.annotation.{switch, tailrec} -// ^^^^^ reference scala/ -// ^^^^^^^^^^ reference scala/annotation/ -// ^^^^^^ reference scala/annotation/switch# -// ^^^^^^^ reference scala/annotation/tailrec# -import java.nio.ByteBuffer -// ^^^^ reference java/ -// ^^^ reference java/nio/ -// ^^^^^^^^^^ reference java/nio/ByteBuffer# -import java.nio.charset.StandardCharsets -// ^^^^ reference java/ -// ^^^ reference java/nio/ -// ^^^^^^^ reference java/nio/charset/ -// ^^^^^^^^^^^^^^^^ reference java/nio/charset/StandardCharsets# - -import upickle.core.{ObjArrVisitor, Visitor} -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^^^^^^^ reference upickle/core/Visitor. -// ^^^^^^^ reference upickle/core/Visitor# -/** - * Basic ByteBuffer parser. - * - * This assumes that the provided ByteBuffer is ready to be read. The - * user is responsible for any necessary flipping/resetting of the - * ByteBuffer before parsing. - * - * The parser makes absolute calls to the ByteBuffer, which will not - * update its own mutable position fields. - */ -final class ByteArrayParser[J](src: Array[Byte]) extends ByteParser[J]{ -// ^^^^^^^^^^^^^^^ definition ujson/ByteArrayParser# final class ByteArrayParser[J] -// ^ definition ujson/ByteArrayParser#[J] J -// definition ujson/ByteArrayParser#``(). def this(src: Array[Byte]) -// ^^^ definition ujson/ByteArrayParser#src. private[this] val src: Array[Byte] -// ^^^ definition ujson/ByteArrayParser#``().(src) src: Array[Byte] -// ^^^^^ reference scala/Array# -// ^^^^ reference scala/Byte# -// ^^^^^^^^^^ reference ujson/ByteParser# -// ^ reference ujson/ByteArrayParser#[J] -// reference ujson/ByteParser#``(). - - val srcLength = src.length -// ^^^^^^^^^ definition ujson/ByteArrayParser#srcLength. val srcLength: Int -// ^^^ reference ujson/ByteArrayParser#src. -// ^^^^^^ reference scala/Array#length(). - protected[this] final def close() = {} -// ^^^^^ definition ujson/ByteArrayParser#close(). final def close(): Unit - - // Never grow the buffer since it's a directly using the original - override def growBuffer(until: Int): Unit = () -// ^^^^^^^^^^ definition ujson/ByteArrayParser#growBuffer(). def growBuffer(until: Int): Unit -// ^^^^^ definition ujson/ByteArrayParser#growBuffer().(until) until: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Unit# - - def readDataIntoBuffer(buffer: Array[Byte], bufferOffset: Int) = { -// ^^^^^^^^^^^^^^^^^^ definition ujson/ByteArrayParser#readDataIntoBuffer(). def readDataIntoBuffer(buffer: Array[Byte], bufferOffset: Int): (Array[Byte], Boolean, Int) -// ^^^^^^ definition ujson/ByteArrayParser#readDataIntoBuffer().(buffer) buffer: Array[Byte] -// ^^^^^ reference scala/Array# -// ^^^^ reference scala/Byte# -// ^^^^^^^^^^^^ definition ujson/ByteArrayParser#readDataIntoBuffer().(bufferOffset) bufferOffset: Int -// ^^^ reference scala/Int# - if(buffer == null) (src, srcLength == 0, srcLength) -// ^^^^^^ reference ujson/ByteArrayParser#readDataIntoBuffer().(buffer) -// ^^ reference java/lang/Object#`==`(). -// ^^^ reference ujson/ByteArrayParser#src. -// ^^^^^^^^^ reference ujson/ByteArrayParser#srcLength. -// ^^ reference scala/Int#`==`(+3). -// ^^^^^^^^^ reference ujson/ByteArrayParser#srcLength. - else (src, true, -1) -// ^^^ reference ujson/ByteArrayParser#src. - } -} - -object ByteArrayParser extends Transformer[Array[Byte]]{ -// ^^^^^^^^^^^^^^^ definition ujson/ByteArrayParser. object ByteArrayParser -// ^^^^^^^^^^^ reference ujson/Transformer# -// ^^^^^ reference scala/Array# -// ^^^^ reference scala/Byte# -// reference java/lang/Object#``(). - def transform[T](j: Array[Byte], f: Visitor[_, T]) = new ByteArrayParser(j).parse(f) -// ^^^^^^^^^ definition ujson/ByteArrayParser.transform(). def transform(j: Array[Byte], f: Visitor[local0, T[): T -// ^ definition ujson/ByteArrayParser.transform().[T] T -// ^ definition ujson/ByteArrayParser.transform().(j) j: Array[Byte] -// ^^^^^ reference scala/Array# -// ^^^^ reference scala/Byte# -// ^ definition ujson/ByteArrayParser.transform().(f) f: Visitor[local0, T[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteArrayParser.transform().[T] -// ^^^^^^^^^^^^^^^ reference ujson/ByteArrayParser# -// reference ujson/ByteArrayParser#``(). -// ^ reference ujson/ByteArrayParser.transform().(j) -// ^^^^^ reference ujson/ByteParser#parse(). -// ^ reference ujson/ByteArrayParser.transform().(f) -} diff --git a/tests/snapshots/src/main/generated/ujson/ByteBufferParser.scala b/tests/snapshots/src/main/generated/ujson/ByteBufferParser.scala deleted file mode 100644 index cab89566f..000000000 --- a/tests/snapshots/src/main/generated/ujson/ByteBufferParser.scala +++ /dev/null @@ -1,114 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ -import upickle.core.{ObjArrVisitor, Visitor} -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^^^^^^^ reference upickle/core/Visitor. -// ^^^^^^^ reference upickle/core/Visitor# - -import scala.annotation.{switch, tailrec} -// ^^^^^ reference scala/ -// ^^^^^^^^^^ reference scala/annotation/ -// ^^^^^^ reference scala/annotation/switch# -// ^^^^^^^ reference scala/annotation/tailrec# -import java.nio.ByteBuffer -// ^^^^ reference java/ -// ^^^ reference java/nio/ -// ^^^^^^^^^^ reference java/nio/ByteBuffer# -import java.nio.charset.StandardCharsets -// ^^^^ reference java/ -// ^^^ reference java/nio/ -// ^^^^^^^ reference java/nio/charset/ -// ^^^^^^^^^^^^^^^^ reference java/nio/charset/StandardCharsets# - -/** - * Basic ByteBuffer parser. - * - * This assumes that the provided ByteBuffer is ready to be read. The - * user is responsible for any necessary flipping/resetting of the - * ByteBuffer before parsing. - * - * The parser makes absolute calls to the ByteBuffer, which will not - * update its own mutable position fields. - */ -final class ByteBufferParser[J](src: ByteBuffer) extends ByteParser[J]{ -// ^^^^^^^^^^^^^^^^ definition ujson/ByteBufferParser# final class ByteBufferParser[J] -// ^ definition ujson/ByteBufferParser#[J] J -// definition ujson/ByteBufferParser#``(). def this(src: ByteBuffer) -// ^^^ definition ujson/ByteBufferParser#src. private[this] val src: ByteBuffer -// ^^^ definition ujson/ByteBufferParser#``().(src) src: ByteBuffer -// ^^^^^^^^^^ reference java/nio/ByteBuffer# -// ^^^^^^^^^^ reference ujson/ByteParser# -// ^ reference ujson/ByteBufferParser#[J] -// reference ujson/ByteParser#``(). - private[this] final val start = src.position() -// ^^^^^ definition ujson/ByteBufferParser#start. private[this] final val start: Int -// ^^^ reference ujson/ByteBufferParser#src. -// ^^^^^^^^ reference java/nio/Buffer#position(). - private[this] final val limit = src.limit() - start -// ^^^^^ definition ujson/ByteBufferParser#limit. private[this] final val limit: Int -// ^^^ reference ujson/ByteBufferParser#src. -// ^^^^^ reference java/nio/Buffer#limit(). -// ^ reference scala/Int#`-`(+3). -// ^^^^^ reference ujson/ByteBufferParser#start. - - - protected[this] final def close() = { src.position(start) } -// ^^^^^ definition ujson/ByteBufferParser#close(). final def close(): Unit -// ^^^ reference ujson/ByteBufferParser#src. -// ^^^^^^^^ reference java/nio/ByteBuffer#position(). -// ^^^^^ reference ujson/ByteBufferParser#start. - override def growBuffer(until: Int): Unit = () -// ^^^^^^^^^^ definition ujson/ByteBufferParser#growBuffer(). def growBuffer(until: Int): Unit -// ^^^^^ definition ujson/ByteBufferParser#growBuffer().(until) until: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Unit# - def readDataIntoBuffer(buffer: Array[Byte], bufferOffset: Int) = { -// ^^^^^^^^^^^^^^^^^^ definition ujson/ByteBufferParser#readDataIntoBuffer(). def readDataIntoBuffer(buffer: Array[Byte], bufferOffset: Int): (Array[Byte], Boolean, Int) -// ^^^^^^ definition ujson/ByteBufferParser#readDataIntoBuffer().(buffer) buffer: Array[Byte] -// ^^^^^ reference scala/Array# -// ^^^^ reference scala/Byte# -// ^^^^^^^^^^^^ definition ujson/ByteBufferParser#readDataIntoBuffer().(bufferOffset) bufferOffset: Int -// ^^^ reference scala/Int# - - if(buffer == null) (java.util.Arrays.copyOfRange(src.array(), start, src.limit()), limit == 0, limit) -// ^^^^^^ reference ujson/ByteBufferParser#readDataIntoBuffer().(buffer) -// ^^ reference java/lang/Object#`==`(). -// ^^^^ reference java/ -// ^^^^ reference java/util/ -// ^^^^^^ reference java/util/Arrays# -// ^^^^^^^^^^^ reference java/util/Arrays#copyOfRange(+2). -// ^^^ reference ujson/ByteBufferParser#src. -// ^^^^^ reference java/nio/ByteBuffer#array(). -// ^^^^^ reference ujson/ByteBufferParser#start. -// ^^^ reference ujson/ByteBufferParser#src. -// ^^^^^ reference java/nio/Buffer#limit(). -// ^^^^^ reference ujson/ByteBufferParser#limit. -// ^^ reference scala/Int#`==`(+3). -// ^^^^^ reference ujson/ByteBufferParser#limit. - else (src.array(), true, -1) -// ^^^ reference ujson/ByteBufferParser#src. -// ^^^^^ reference java/nio/ByteBuffer#array(). - } -} - -object ByteBufferParser extends Transformer[ByteBuffer]{ -// ^^^^^^^^^^^^^^^^ definition ujson/ByteBufferParser. object ByteBufferParser -// ^^^^^^^^^^^ reference ujson/Transformer# -// ^^^^^^^^^^ reference java/nio/ByteBuffer# -// reference java/lang/Object#``(). - def transform[T](j: ByteBuffer, f: Visitor[_, T]) = new ByteBufferParser(j).parse(f) -// ^^^^^^^^^ definition ujson/ByteBufferParser.transform(). def transform(j: ByteBuffer, f: Visitor[local0, T[): T -// ^ definition ujson/ByteBufferParser.transform().[T] T -// ^ definition ujson/ByteBufferParser.transform().(j) j: ByteBuffer -// ^^^^^^^^^^ reference java/nio/ByteBuffer# -// ^ definition ujson/ByteBufferParser.transform().(f) f: Visitor[local0, T[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/ByteBufferParser.transform().[T] -// ^^^^^^^^^^^^^^^^ reference ujson/ByteBufferParser# -// reference ujson/ByteBufferParser#``(). -// ^ reference ujson/ByteBufferParser.transform().(j) -// ^^^^^ reference ujson/ByteParser#parse(). -// ^ reference ujson/ByteBufferParser.transform().(f) -} diff --git a/tests/snapshots/src/main/generated/ujson/CharSequenceParser.scala b/tests/snapshots/src/main/generated/ujson/CharSequenceParser.scala deleted file mode 100644 index e8288634d..000000000 --- a/tests/snapshots/src/main/generated/ujson/CharSequenceParser.scala +++ /dev/null @@ -1,74 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ - -import upickle.core.{ObjArrVisitor, Visitor} -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^^^^^^^ reference upickle/core/Visitor. -// ^^^^^^^ reference upickle/core/Visitor# -/** - * Lazy character sequence parsing. - * - * This is similar to StringParser, but acts on character sequences. - */ -private[ujson] final class CharSequenceParser[J](cs: CharSequence) extends CharParser[J]{ -// ^^^^^ reference ujson/ -// ^^^^^^^^^^^^^^^^^^ definition ujson/CharSequenceParser# protected[ujson] final class CharSequenceParser[J] -// ^ definition ujson/CharSequenceParser#[J] J -// definition ujson/CharSequenceParser#``(). def this(cs: CharSequence) -// ^^ definition ujson/CharSequenceParser#cs. private[this] val cs: CharSequence -// ^^ definition ujson/CharSequenceParser#``().(cs) cs: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^^^ reference ujson/CharParser# -// ^ reference ujson/CharSequenceParser#[J] -// reference ujson/CharParser#``(). - override def growBuffer(until: Int): Unit = () -// ^^^^^^^^^^ definition ujson/CharSequenceParser#growBuffer(). def growBuffer(until: Int): Unit -// ^^^^^ definition ujson/CharSequenceParser#growBuffer().(until) until: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Unit# - def readDataIntoBuffer(buffer: Array[Char], bufferOffset: Int) = { -// ^^^^^^^^^^^^^^^^^^ definition ujson/CharSequenceParser#readDataIntoBuffer(). def readDataIntoBuffer(buffer: Array[Char], bufferOffset: Int): (Array[Char], Boolean, Int) -// ^^^^^^ definition ujson/CharSequenceParser#readDataIntoBuffer().(buffer) buffer: Array[Char] -// ^^^^^ reference scala/Array# -// ^^^^ reference scala/Char# -// ^^^^^^^^^^^^ definition ujson/CharSequenceParser#readDataIntoBuffer().(bufferOffset) bufferOffset: Int -// ^^^ reference scala/Int# - if(buffer == null) (cs.toString.toCharArray, cs.length == 0, cs.length) -// ^^^^^^ reference ujson/CharSequenceParser#readDataIntoBuffer().(buffer) -// ^^ reference java/lang/Object#`==`(). -// ^^ reference ujson/CharSequenceParser#cs. -// ^^^^^^^^ reference java/lang/Object#toString(). -// ^^^^^^^^^^^ reference java/lang/String#toCharArray(). -// ^^ reference ujson/CharSequenceParser#cs. -// ^^^^^^ reference java/lang/CharSequence#length(). -// ^^ reference scala/Int#`==`(+3). -// ^^ reference ujson/CharSequenceParser#cs. -// ^^^^^^ reference java/lang/CharSequence#length(). - else (buffer, true, -1) -// ^^^^^^ reference ujson/CharSequenceParser#readDataIntoBuffer().(buffer) - } - final def close() = () -// ^^^^^ definition ujson/CharSequenceParser#close(). final def close(): Unit -} - -object CharSequenceParser extends Transformer[CharSequence]{ -// ^^^^^^^^^^^^^^^^^^ definition ujson/CharSequenceParser. object CharSequenceParser -// ^^^^^^^^^^^ reference ujson/Transformer# -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// reference java/lang/Object#``(). - def transform[T](j: CharSequence, f: Visitor[_, T]) = new CharSequenceParser(j).parse(f) -// ^^^^^^^^^ definition ujson/CharSequenceParser.transform(). def transform(j: CharSequence, f: Visitor[local0, T[): T -// ^ definition ujson/CharSequenceParser.transform().[T] T -// ^ definition ujson/CharSequenceParser.transform().(j) j: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^ definition ujson/CharSequenceParser.transform().(f) f: Visitor[local0, T[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/CharSequenceParser.transform().[T] -// ^^^^^^^^^^^^^^^^^^ reference ujson/CharSequenceParser# -// reference ujson/CharSequenceParser#``(). -// ^ reference ujson/CharSequenceParser.transform().(j) -// ^^^^^ reference ujson/CharParser#parse(). -// ^ reference ujson/CharSequenceParser.transform().(f) -} diff --git a/tests/snapshots/src/main/generated/ujson/Exceptions.scala b/tests/snapshots/src/main/generated/ujson/Exceptions.scala deleted file mode 100644 index a54d2fc4d..000000000 --- a/tests/snapshots/src/main/generated/ujson/Exceptions.scala +++ /dev/null @@ -1,53 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ - - -sealed trait ParsingFailedException extends Exception -// ^^^^^^^^^^^^^^^^^^^^^^ definition ujson/ParsingFailedException# sealed trait ParsingFailedException -// ^^^^^^^^^ reference scala/package.Exception# - -case class ParseException(clue: String, index: Int) -// ^^^^^^^^^^^^^^ definition ujson/ParseException# case class ParseException(clue: String, index: Int) extends Exception with ParsingFailedException -// ^^^^^^^^^^^^^^ synthetic_definition ujson/ParseException#productElementName(). def productElementName(x$1: Int): String -// ^^^^^^^^^^^^^^ synthetic_definition ujson/ParseException.apply(). def apply(clue: String, index: Int): ParseException -// ^^^^^^^^^^^^^^ definition ujson/ParseException. object ParseException -// ^^^^^^^^^^^^^^ synthetic_definition ujson/ParseException#copy(). def copy(clue: String, index: Int): ParseException -// ^^^^^^^^^^^^^^ synthetic_definition ujson/ParseException#productElement(). def productElement(x$1: Int): Any -// definition ujson/ParseException#``(). def this(clue: String, index: Int) -// ^^^^ definition ujson/ParseException#clue. val clue: String -// ^^^^ definition ujson/ParseException.apply().(clue) clue: String -// ^^^^ definition ujson/ParseException#``().(clue) clue: String -// ^^^^ definition ujson/ParseException#copy().(clue) default clue: String -// ^^^^^^ reference scala/Predef.String# -// ^^^^^ definition ujson/ParseException#index. val index: Int -// ^^^^^ definition ujson/ParseException#``().(index) index: Int -// ^^^^^ definition ujson/ParseException.apply().(index) index: Int -// ^^^^^ definition ujson/ParseException#copy().(index) default index: Int -// ^^^ reference scala/Int# - extends Exception(clue + " at index " + index) with ParsingFailedException -// ^^^^^^^^^ reference scala/package.Exception# -// reference java/lang/Exception#``(+1). -// ^^^^ reference ujson/ParseException#``().(clue) -// ^ reference java/lang/String#`+`(). -// ^ reference java/lang/String#`+`(). -// ^^^^^ reference ujson/ParseException#``().(index) -// ^^^^^^^^^^^^^^^^^^^^^^ reference ujson/ParsingFailedException# - -case class IncompleteParseException(msg: String) -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition ujson/IncompleteParseException# case class IncompleteParseException(msg: String) extends Exception with ParsingFailedException -// ^^^^^^^^^^^^^^^^^^^^^^^^ synthetic_definition ujson/IncompleteParseException#productElement(). def productElement(x$1: Int): Any -// ^^^^^^^^^^^^^^^^^^^^^^^^ synthetic_definition ujson/IncompleteParseException.apply(). def apply(msg: String): IncompleteParseException -// ^^^^^^^^^^^^^^^^^^^^^^^^ synthetic_definition ujson/IncompleteParseException#copy(). def copy(msg: String): IncompleteParseException -// ^^^^^^^^^^^^^^^^^^^^^^^^ synthetic_definition ujson/IncompleteParseException#productElementName(). def productElementName(x$1: Int): String -// ^^^^^^^^^^^^^^^^^^^^^^^^ definition ujson/IncompleteParseException. object IncompleteParseException -// definition ujson/IncompleteParseException#``(). def this(msg: String) -// ^^^ definition ujson/IncompleteParseException#msg. val msg: String -// ^^^ definition ujson/IncompleteParseException.apply().(msg) msg: String -// ^^^ definition ujson/IncompleteParseException#copy().(msg) default msg: String -// ^^^ definition ujson/IncompleteParseException#``().(msg) msg: String -// ^^^^^^ reference scala/Predef.String# - extends Exception(msg) with ParsingFailedException -// ^^^^^^^^^ reference scala/package.Exception# -// reference java/lang/Exception#``(+1). -// ^^^ reference ujson/IncompleteParseException#``().(msg) -// ^^^^^^^^^^^^^^^^^^^^^^ reference ujson/ParsingFailedException# diff --git a/tests/snapshots/src/main/generated/ujson/IndexedValue.scala b/tests/snapshots/src/main/generated/ujson/IndexedValue.scala deleted file mode 100644 index 9b412c147..000000000 --- a/tests/snapshots/src/main/generated/ujson/IndexedValue.scala +++ /dev/null @@ -1,535 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ - -import upickle.core.Util.reject -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^ reference upickle/core/Util. -// ^^^^^^ reference upickle/core/Util.reject(). -import scala.collection.mutable -// ^^^^^ reference scala/ -// ^^^^^^^^^^ reference scala/collection/ -// ^^^^^^^ reference scala/collection/mutable/ -import upickle.core.{Visitor, ObjVisitor, ArrVisitor, Abort, AbortException} -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^ reference upickle/core/Visitor. -// ^^^^^^^ reference upickle/core/Visitor# -// ^^^^^^^^^^ reference upickle/core/ObjVisitor# -// ^^^^^^^^^^ reference upickle/core/ArrVisitor# -// ^^^^^ reference upickle/core/Abort. -// ^^^^^ reference upickle/core/Abort# -// ^^^^^^^^^^^^^^ reference upickle/core/AbortException. -// ^^^^^^^^^^^^^^ reference upickle/core/AbortException# - -/** - * A version of [[ujson.Value]] that keeps the index positions of the various AST - * nodes it is constructing. Usually not necessary, but sometimes useful if you - * want to work with an AST but still provide source-index error positions if - * something goes wrong - */ -sealed trait IndexedValue { -// ^^^^^^^^^^^^ definition ujson/IndexedValue# sealed trait IndexedValue - def index: Int -// ^^^^^ definition ujson/IndexedValue#index(). def index: Int -// ^^^ reference scala/Int# -} - -object IndexedValue extends Transformer[IndexedValue]{ -// ^^^^^^^^^^^^ definition ujson/IndexedValue. object IndexedValue -// ^^^^^^^^^^^ reference ujson/Transformer# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// reference java/lang/Object#``(). - - case class Str(index: Int, value0: java.lang.CharSequence) extends IndexedValue -// ^^^ definition ujson/IndexedValue.Str# case class Str(index: Int, value0: CharSequence) extends IndexedValue -// ^^^ synthetic_definition ujson/IndexedValue.Str#copy(). def copy(index: Int, value0: CharSequence): Str -// ^^^ synthetic_definition ujson/IndexedValue.Str.apply(). def apply(index: Int, value0: CharSequence): Str -// ^^^ definition ujson/IndexedValue.Str. object Str -// ^^^ synthetic_definition ujson/IndexedValue.Str#productElement(). def productElement(x$1: Int): Any -// ^^^ synthetic_definition ujson/IndexedValue.Str#productElementName(). def productElementName(x$1: Int): String -// definition ujson/IndexedValue.Str#``(). def this(index: Int, value0: CharSequence) -// ^^^^^ definition ujson/IndexedValue.Str#index. val index: Int -// ^^^^^ definition ujson/IndexedValue.Str#copy().(index) default index: Int -// ^^^^^ definition ujson/IndexedValue.Str#``().(index) index: Int -// ^^^^^ definition ujson/IndexedValue.Str.apply().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/IndexedValue.Str#value0. val value0: CharSequence -// ^^^^^^ definition ujson/IndexedValue.Str#``().(value0) value0: CharSequence -// ^^^^^^ definition ujson/IndexedValue.Str.apply().(value0) value0: CharSequence -// ^^^^^^ definition ujson/IndexedValue.Str#copy().(value0) default value0: CharSequence -// ^^^^ reference java/ -// ^^^^ reference java/lang/ -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// reference java/lang/Object#``(). - case class Obj(index: Int, value0: (java.lang.CharSequence, IndexedValue)*) extends IndexedValue -// ^^^ definition ujson/IndexedValue.Obj# case class Obj(index: Int, value0: (CharSequence, IndexedValue)*) extends IndexedValue -// ^^^ synthetic_definition ujson/IndexedValue.Obj.apply(). def apply(index: Int, value0: (CharSequence, IndexedValue)*): Obj -// ^^^ synthetic_definition ujson/IndexedValue.Obj#productElement(). def productElement(x$1: Int): Any -// ^^^ definition ujson/IndexedValue.Obj. object Obj -// ^^^ synthetic_definition ujson/IndexedValue.Obj#productElementName(). def productElementName(x$1: Int): String -// definition ujson/IndexedValue.Obj#``(). def this(index: Int, value0: (CharSequence, IndexedValue)*) -// ^^^^^ definition ujson/IndexedValue.Obj#index. val index: Int -// ^^^^^ definition ujson/IndexedValue.Obj#``().(index) index: Int -// ^^^^^ definition ujson/IndexedValue.Obj.apply().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^^^ definition ujson/IndexedValue.Obj#value0. val value0: (CharSequence, IndexedValue)* -// ^^^^^^ definition ujson/IndexedValue.Obj.apply().(value0) value0: (CharSequence, IndexedValue)* -// ^^^^^^ definition ujson/IndexedValue.Obj#``().(value0) value0: (CharSequence, IndexedValue)* -// ^^^^ reference java/ -// ^^^^ reference java/lang/ -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// reference java/lang/Object#``(). - case class Arr(index: Int, value: IndexedValue*) extends IndexedValue -// ^^^ definition ujson/IndexedValue.Arr# case class Arr(index: Int, value: IndexedValue*) extends IndexedValue -// ^^^ synthetic_definition ujson/IndexedValue.Arr#productElementName(). def productElementName(x$1: Int): String -// ^^^ synthetic_definition ujson/IndexedValue.Arr#productElement(). def productElement(x$1: Int): Any -// ^^^ definition ujson/IndexedValue.Arr. object Arr -// ^^^ synthetic_definition ujson/IndexedValue.Arr.apply(). def apply(index: Int, value: IndexedValue*): Arr -// definition ujson/IndexedValue.Arr#``(). def this(index: Int, value: IndexedValue*) -// ^^^^^ definition ujson/IndexedValue.Arr#index. val index: Int -// ^^^^^ definition ujson/IndexedValue.Arr.apply().(index) index: Int -// ^^^^^ definition ujson/IndexedValue.Arr#``().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/IndexedValue.Arr#value. val value: IndexedValue* -// ^^^^^ definition ujson/IndexedValue.Arr#``().(value) value: IndexedValue* -// ^^^^^ definition ujson/IndexedValue.Arr.apply().(value) value: IndexedValue* -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// reference java/lang/Object#``(). - case class Num(index: Int, s: CharSequence, decIndex: Int, expIndex: Int) extends IndexedValue -// ^^^ definition ujson/IndexedValue.Num# case class Num(index: Int, s: CharSequence, decIndex: Int, expIndex: Int) extends IndexedValue -// ^^^ definition ujson/IndexedValue.Num. object Num -// ^^^ synthetic_definition ujson/IndexedValue.Num#copy(). def copy(index: Int, s: CharSequence, decIndex: Int, expIndex: Int): Num -// ^^^ synthetic_definition ujson/IndexedValue.Num#productElement(). def productElement(x$1: Int): Any -// ^^^ synthetic_definition ujson/IndexedValue.Num#productElementName(). def productElementName(x$1: Int): String -// ^^^ synthetic_definition ujson/IndexedValue.Num.apply(). def apply(index: Int, s: CharSequence, decIndex: Int, expIndex: Int): Num -// definition ujson/IndexedValue.Num#``(). def this(index: Int, s: CharSequence, decIndex: Int, expIndex: Int) -// ^^^^^ definition ujson/IndexedValue.Num#index. val index: Int -// ^^^^^ definition ujson/IndexedValue.Num#copy().(index) default index: Int -// ^^^^^ definition ujson/IndexedValue.Num#``().(index) index: Int -// ^^^^^ definition ujson/IndexedValue.Num.apply().(index) index: Int -// ^^^ reference scala/Int# -// ^ definition ujson/IndexedValue.Num#s. val s: CharSequence -// ^ definition ujson/IndexedValue.Num.apply().(s) s: CharSequence -// ^ definition ujson/IndexedValue.Num#``().(s) s: CharSequence -// ^ definition ujson/IndexedValue.Num#copy().(s) default s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^ definition ujson/IndexedValue.Num#decIndex. val decIndex: Int -// ^^^^^^^^ definition ujson/IndexedValue.Num#copy().(decIndex) default decIndex: Int -// ^^^^^^^^ definition ujson/IndexedValue.Num.apply().(decIndex) decIndex: Int -// ^^^^^^^^ definition ujson/IndexedValue.Num#``().(decIndex) decIndex: Int -// ^^^ reference scala/Int# -// ^^^^^^^^ definition ujson/IndexedValue.Num#expIndex. val expIndex: Int -// ^^^^^^^^ definition ujson/IndexedValue.Num#``().(expIndex) expIndex: Int -// ^^^^^^^^ definition ujson/IndexedValue.Num.apply().(expIndex) expIndex: Int -// ^^^^^^^^ definition ujson/IndexedValue.Num#copy().(expIndex) default expIndex: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// reference java/lang/Object#``(). - case class NumRaw(index: Int, d: Double) extends IndexedValue -// ^^^^^^ definition ujson/IndexedValue.NumRaw# case class NumRaw(index: Int, d: Double) extends IndexedValue -// ^^^^^^ synthetic_definition ujson/IndexedValue.NumRaw#copy(). def copy(index: Int, d: Double): NumRaw -// ^^^^^^ definition ujson/IndexedValue.NumRaw. object NumRaw -// ^^^^^^ synthetic_definition ujson/IndexedValue.NumRaw#productElement(). def productElement(x$1: Int): Any -// ^^^^^^ synthetic_definition ujson/IndexedValue.NumRaw.apply(). def apply(index: Int, d: Double): NumRaw -// ^^^^^^ synthetic_definition ujson/IndexedValue.NumRaw#productElementName(). def productElementName(x$1: Int): String -// definition ujson/IndexedValue.NumRaw#``(). def this(index: Int, d: Double) -// ^^^^^ definition ujson/IndexedValue.NumRaw#index. val index: Int -// ^^^^^ definition ujson/IndexedValue.NumRaw.apply().(index) index: Int -// ^^^^^ definition ujson/IndexedValue.NumRaw#``().(index) index: Int -// ^^^^^ definition ujson/IndexedValue.NumRaw#copy().(index) default index: Int -// ^^^ reference scala/Int# -// ^ definition ujson/IndexedValue.NumRaw#d. val d: Double -// ^ definition ujson/IndexedValue.NumRaw#copy().(d) default d: Double -// ^ definition ujson/IndexedValue.NumRaw.apply().(d) d: Double -// ^ definition ujson/IndexedValue.NumRaw#``().(d) d: Double -// ^^^^^^ reference scala/Double# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// reference java/lang/Object#``(). - case class False(index: Int) extends IndexedValue{ -// ^^^^^ definition ujson/IndexedValue.False# case class False(index: Int) extends IndexedValue -// ^^^^^ definition ujson/IndexedValue.False. object False -// ^^^^^ synthetic_definition ujson/IndexedValue.False#productElementName(). def productElementName(x$1: Int): String -// ^^^^^ synthetic_definition ujson/IndexedValue.False.apply(). def apply(index: Int): False -// ^^^^^ synthetic_definition ujson/IndexedValue.False#productElement(). def productElement(x$1: Int): Any -// ^^^^^ synthetic_definition ujson/IndexedValue.False#copy(). def copy(index: Int): False -// definition ujson/IndexedValue.False#``(). def this(index: Int) -// ^^^^^ definition ujson/IndexedValue.False#index. val index: Int -// ^^^^^ definition ujson/IndexedValue.False.apply().(index) index: Int -// ^^^^^ definition ujson/IndexedValue.False#copy().(index) default index: Int -// ^^^^^ definition ujson/IndexedValue.False#``().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// reference java/lang/Object#``(). - def value = false -// ^^^^^ definition ujson/IndexedValue.False#value(). def value: Boolean - } - case class True(index: Int) extends IndexedValue{ -// ^^^^ definition ujson/IndexedValue.True# case class True(index: Int) extends IndexedValue -// ^^^^ synthetic_definition ujson/IndexedValue.True#productElement(). def productElement(x$1: Int): Any -// ^^^^ definition ujson/IndexedValue.True. object True -// ^^^^ synthetic_definition ujson/IndexedValue.True#copy(). def copy(index: Int): True -// ^^^^ synthetic_definition ujson/IndexedValue.True.apply(). def apply(index: Int): True -// ^^^^ synthetic_definition ujson/IndexedValue.True#productElementName(). def productElementName(x$1: Int): String -// definition ujson/IndexedValue.True#``(). def this(index: Int) -// ^^^^^ definition ujson/IndexedValue.True#index. val index: Int -// ^^^^^ definition ujson/IndexedValue.True.apply().(index) index: Int -// ^^^^^ definition ujson/IndexedValue.True#``().(index) index: Int -// ^^^^^ definition ujson/IndexedValue.True#copy().(index) default index: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// reference java/lang/Object#``(). - def value = true -// ^^^^^ definition ujson/IndexedValue.True#value(). def value: Boolean - } - case class Null(index: Int) extends IndexedValue{ -// ^^^^ definition ujson/IndexedValue.Null# case class Null(index: Int) extends IndexedValue -// ^^^^ synthetic_definition ujson/IndexedValue.Null#copy(). def copy(index: Int): Null -// ^^^^ synthetic_definition ujson/IndexedValue.Null#productElement(). def productElement(x$1: Int): Any -// ^^^^ synthetic_definition ujson/IndexedValue.Null#productElementName(). def productElementName(x$1: Int): String -// ^^^^ synthetic_definition ujson/IndexedValue.Null.apply(). def apply(index: Int): Null -// ^^^^ definition ujson/IndexedValue.Null. object Null -// definition ujson/IndexedValue.Null#``(). def this(index: Int) -// ^^^^^ definition ujson/IndexedValue.Null#index. val index: Int -// ^^^^^ definition ujson/IndexedValue.Null#``().(index) index: Int -// ^^^^^ definition ujson/IndexedValue.Null.apply().(index) index: Int -// ^^^^^ definition ujson/IndexedValue.Null#copy().(index) default index: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// reference java/lang/Object#``(). - def value = null -// ^^^^^ definition ujson/IndexedValue.Null#value(). def value: Null - } - - def transform[T](j: IndexedValue, f: Visitor[_, T]): T = try{ -// ^^^^^^^^^ definition ujson/IndexedValue.transform(). def transform(j: IndexedValue, f: Visitor[local16, T[): T -// ^ definition ujson/IndexedValue.transform().[T] T -// ^ definition ujson/IndexedValue.transform().(j) j: IndexedValue -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// ^ definition ujson/IndexedValue.transform().(f) f: Visitor[local16, T[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/IndexedValue.transform().[T] -// ^ reference ujson/IndexedValue.transform().[T] - j match{ -// ^ reference ujson/IndexedValue.transform().(j) - case IndexedValue.Null(i) => f.visitNull(i) -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^^ reference ujson/IndexedValue.Null. -// ^ definition local17 i: Int -// ^ reference ujson/IndexedValue.transform().(f) -// ^^^^^^^^^ reference upickle/core/Visitor#visitNull(). -// ^ reference local17 - case IndexedValue.True(i) => f.visitTrue(i) -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^^ reference ujson/IndexedValue.True. -// ^ definition local18 i: Int -// ^ reference ujson/IndexedValue.transform().(f) -// ^^^^^^^^^ reference upickle/core/Visitor#visitTrue(). -// ^ reference local18 - case IndexedValue.False(i) => f.visitFalse(i) -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^^^ reference ujson/IndexedValue.False. -// ^ definition local19 i: Int -// ^ reference ujson/IndexedValue.transform().(f) -// ^^^^^^^^^^ reference upickle/core/Visitor#visitFalse(). -// ^ reference local19 - case IndexedValue.Str(i, s) => f.visitString(s, i) -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^ reference ujson/IndexedValue.Str. -// ^ definition local20 i: Int -// ^ definition local21 s: CharSequence -// ^ reference ujson/IndexedValue.transform().(f) -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^ reference local21 -// ^ reference local20 - case IndexedValue.Num(i, s, d, e) => f.visitFloat64StringParts(s, d, e, i) -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^ reference ujson/IndexedValue.Num. -// ^ definition local22 i: Int -// ^ definition local23 s: CharSequence -// ^ definition local24 d: Int -// ^ definition local25 e: Int -// ^ reference ujson/IndexedValue.transform().(f) -// ^^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/Visitor#visitFloat64StringParts(). -// ^ reference local23 -// ^ reference local24 -// ^ reference local25 -// ^ reference local22 - case IndexedValue.NumRaw(i, d) => f.visitFloat64(d, i) -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^^^^ reference ujson/IndexedValue.NumRaw. -// ^ definition local26 i: Int -// ^ definition local27 d: Double -// ^ reference ujson/IndexedValue.transform().(f) -// ^^^^^^^^^^^^ reference upickle/core/Visitor#visitFloat64(). -// ^ reference local27 -// ^ reference local26 - case IndexedValue.Arr(i, items @_*) => -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^ reference ujson/IndexedValue.Arr. -// ^ definition local28 i: Int -// ^^^^^ definition local29 items: Seq[IndexedValue] - val ctx = f.visitArray(-1, -1).narrow -// ^^^ definition local30 ctx: ArrVisitor[Any, T] -// ^ reference ujson/IndexedValue.transform().(f) -// ^^^^^^^^^^ reference upickle/core/Visitor#visitArray(). -// ^^^^^^ reference upickle/core/ArrVisitor#narrow(). - for(item <- items) try ctx.visitValue(transform(item, ctx.subVisitor), item.index) catch reject(item.index) -// ^^^^ definition local31 item: IndexedValue -// ^^^^^ reference local29 -// ^^^ reference local30 -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). -// ^^^^^^^^^ reference ujson/IndexedValue.transform(). -// ^^^^ reference local31 -// ^^^ reference local30 -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^ reference local31 -// ^^^^^ reference ujson/IndexedValue#index(). -// ^^^^^^ reference upickle/core/Util.reject(). -// ^^^^ reference local31 -// ^^^^^ reference ujson/IndexedValue#index(). - ctx.visitEnd(i) -// ^^^ reference local30 -// ^^^^^^^^ reference upickle/core/ObjArrVisitor#visitEnd(). -// ^ reference local28 - case IndexedValue.Obj(i, items @_*) => -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^ reference ujson/IndexedValue.Obj. -// ^ definition local34 i: Int -// ^^^^^ definition local35 items: Seq[(CharSequence, IndexedValue)] - val ctx = f.visitObject(-1, -1).narrow -// ^^^ definition local36 ctx: ObjVisitor[Any, T] -// ^ reference ujson/IndexedValue.transform().(f) -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitObject(). -// ^^^^^^ reference upickle/core/ObjVisitor#narrow(). - for((k, item) <- items) { -// ^ definition local37 k: CharSequence -// ^^^^ definition local38 item: IndexedValue -// ^^^^^ reference scala/collection/IterableOps#withFilter(). - val keyVisitor = try ctx.visitKey(i) catch reject(i) -// ^^^^^^^^^^ definition local40 keyVisitor: Visitor[local41, Any[ -// ^^^ reference local36 -// ^^^^^^^^ reference upickle/core/ObjVisitor#visitKey(). -// ^ reference local34 -// ^^^^^^ reference upickle/core/Util.reject(). -// ^ reference local34 - - ctx.visitKeyValue(keyVisitor.visitString(k, i)) -// ^^^ reference local36 -// ^^^^^^^^^^^^^ reference upickle/core/ObjVisitor#visitKeyValue(). -// ^^^^^^^^^^ reference local40 -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^ reference local37 -// ^ reference local34 - try ctx.visitValue(transform(item, ctx.subVisitor), item.index) catch reject(item.index) -// ^^^ reference local36 -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). -// ^^^^^^^^^ reference ujson/IndexedValue.transform(). -// ^^^^ reference local38 -// ^^^ reference local36 -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^ reference local38 -// ^^^^^ reference ujson/IndexedValue#index(). -// ^^^^^^ reference upickle/core/Util.reject(). -// ^^^^ reference local38 -// ^^^^^ reference ujson/IndexedValue#index(). - } - ctx.visitEnd(i) -// ^^^ reference local36 -// ^^^^^^^^ reference upickle/core/ObjArrVisitor#visitEnd(). -// ^ reference local34 - } - } catch reject(j.index) -// ^^^^^^ reference upickle/core/Util.reject(). -// ^ reference ujson/IndexedValue.transform().(j) -// ^^^^^ reference ujson/IndexedValue#index(). - - - object Builder extends JsVisitor[IndexedValue, IndexedValue]{ -// ^^^^^^^ definition ujson/IndexedValue.Builder. object Builder -// ^^^^^^^^^ reference ujson/JsVisitor# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// reference java/lang/Object#``(). - def visitArray(length: Int, i: Int) = new ArrVisitor[IndexedValue, IndexedValue.Arr] { -// ^^^^^^^^^^ definition ujson/IndexedValue.Builder.visitArray(). def visitArray(length: Int, i: Int): { def subVisitor: Builder } -// ^^^^^^ definition ujson/IndexedValue.Builder.visitArray().(length) length: Int -// ^^^ reference scala/Int# -// ^ definition ujson/IndexedValue.Builder.visitArray().(i) i: Int -// ^^^ reference scala/Int# -// definition local49 final class $anon -// ^^^^^^^^^^ reference upickle/core/ArrVisitor# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^ reference ujson/IndexedValue.Arr# -// reference java/lang/Object#``(). - val out = mutable.Buffer.empty[IndexedValue] -// ^^^ definition local50 private val out: Buffer[IndexedValue] -// ^^^^^^^ reference scala/collection/mutable/ -// ^^^^^^ reference scala/collection/mutable/Buffer. -// ^^^^^ reference scala/collection/SeqFactory.Delegate#empty(). -// ^^^^^^^^^^^^ reference ujson/IndexedValue# - def subVisitor = Builder -// ^^^^^^^^^^ definition local48 def subVisitor: Builder -// ^^^^^^^ reference ujson/IndexedValue.Builder. - def visitValue(v: IndexedValue, index: Int): Unit = { -// ^^^^^^^^^^ definition local51 def visitValue(v: IndexedValue, index: Int): Unit -// ^ definition local53 v: IndexedValue -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// ^^^^^ definition local54 index: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Unit# - out.append(v) -// ^^^ reference local50 -// ^^^^^^ reference scala/collection/mutable/Buffer#append(). -// ^ reference local53 - } - def visitEnd(index: Int): IndexedValue.Arr = IndexedValue.Arr(i, out.toSeq:_*) -// ^^^^^^^^ definition local52 def visitEnd(index: Int): Arr -// ^^^^^ definition local55 index: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^ reference ujson/IndexedValue.Arr# -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^ reference ujson/IndexedValue.Arr. -// ^ reference ujson/IndexedValue.Builder.visitArray().(i) -// ^^^ reference local50 -// ^^^^^ reference scala/collection/IterableOnceOps#toSeq(). - } - - def visitObject(length: Int, i: Int) = new ObjVisitor[IndexedValue, IndexedValue.Obj] { -// ^^^^^^^^^^^ definition ujson/IndexedValue.Builder.visitObject(). def visitObject(length: Int, i: Int): { def subVisitor: Builder; def visitKey(index: Int): Builder } -// ^^^^^^ definition ujson/IndexedValue.Builder.visitObject().(length) length: Int -// ^^^ reference scala/Int# -// ^ definition ujson/IndexedValue.Builder.visitObject().(i) i: Int -// ^^^ reference scala/Int# -// definition local59 final class $anon -// ^^^^^^^^^^ reference upickle/core/ObjVisitor# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^ reference ujson/IndexedValue.Obj# -// reference java/lang/Object#``(). - val out = mutable.Buffer.empty[(String, IndexedValue)] -// ^^^ definition local60 private val out: Buffer[(String, IndexedValue)] -// ^^^^^^^ reference scala/collection/mutable/ -// ^^^^^^ reference scala/collection/mutable/Buffer. -// ^^^^^ reference scala/collection/SeqFactory.Delegate#empty(). -// ^^^^^^ reference scala/Predef.String# -// ^^^^^^^^^^^^ reference ujson/IndexedValue# - var currentKey: String = _ -// ^^^^^^^^^^ definition local61 private var currentKey: String -// ^^^^^^ reference scala/Predef.String# - def subVisitor = Builder -// ^^^^^^^^^^ definition local56 def subVisitor: Builder -// ^^^^^^^ reference ujson/IndexedValue.Builder. - def visitKey(index: Int) = IndexedValue.Builder -// ^^^^^^^^ definition local57 def visitKey(index: Int): Builder -// ^^^^^ definition local58 index: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^^^^^ reference ujson/IndexedValue.Builder. - def visitKeyValue(s: Any): Unit = currentKey = s.asInstanceOf[IndexedValue.Str].value0.toString -// ^^^^^^^^^^^^^ definition local63 def visitKeyValue(s: Any): Unit -// ^ definition local67 s: Any -// ^^^ reference scala/Any# -// ^^^^ reference scala/Unit# -// ^^^^^^^^^^ reference local62 -// ^ reference local67 -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^ reference ujson/IndexedValue.Str# -// ^^^^^^ reference ujson/IndexedValue.Str#value0. -// ^^^^^^^^ reference java/lang/Object#toString(). - def visitValue(v: IndexedValue, index: Int): Unit = { -// ^^^^^^^^^^ definition local64 def visitValue(v: IndexedValue, index: Int): Unit -// ^ definition local68 v: IndexedValue -// ^^^^^^^^^^^^ reference ujson/IndexedValue# -// ^^^^^ definition local69 index: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Unit# - out.append((currentKey, v)) -// ^^^ reference local60 -// ^^^^^^ reference scala/collection/mutable/Buffer#append(). -// ^^^^^^^^^^ reference local61 -// ^ reference local68 - } - def visitEnd(index: Int): IndexedValue.Obj = IndexedValue.Obj(i, out.toSeq:_*) -// ^^^^^^^^ definition local65 def visitEnd(index: Int): Obj -// ^^^^^ definition local70 index: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^ reference ujson/IndexedValue.Obj# -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^ reference ujson/IndexedValue.Obj. -// ^ reference ujson/IndexedValue.Builder.visitObject().(i) -// ^^^ reference local60 -// ^^^^^ reference scala/collection/IterableOnceOps#toSeq(). - } - - def visitNull(i: Int) = IndexedValue.Null(i) -// ^^^^^^^^^ definition ujson/IndexedValue.Builder.visitNull(). def visitNull(i: Int): Null -// ^ definition ujson/IndexedValue.Builder.visitNull().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^^ reference ujson/IndexedValue.Null. -// ^ reference ujson/IndexedValue.Builder.visitNull().(i) - - def visitFalse(i: Int) = IndexedValue.False(i) -// ^^^^^^^^^^ definition ujson/IndexedValue.Builder.visitFalse(). def visitFalse(i: Int): False -// ^ definition ujson/IndexedValue.Builder.visitFalse().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^^^ reference ujson/IndexedValue.False. -// ^ reference ujson/IndexedValue.Builder.visitFalse().(i) - - def visitTrue(i: Int) = IndexedValue.True(i) -// ^^^^^^^^^ definition ujson/IndexedValue.Builder.visitTrue(). def visitTrue(i: Int): True -// ^ definition ujson/IndexedValue.Builder.visitTrue().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^^ reference ujson/IndexedValue.True. -// ^ reference ujson/IndexedValue.Builder.visitTrue().(i) - - def visitFloat64StringParts(s: CharSequence, decIndex: Int, expIndex: Int, i: Int) = IndexedValue.Num(i, s, decIndex, expIndex) -// ^^^^^^^^^^^^^^^^^^^^^^^ definition ujson/IndexedValue.Builder.visitFloat64StringParts(). def visitFloat64StringParts(s: CharSequence, decIndex: Int, expIndex: Int, i: Int): Num -// ^ definition ujson/IndexedValue.Builder.visitFloat64StringParts().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^ definition ujson/IndexedValue.Builder.visitFloat64StringParts().(decIndex) decIndex: Int -// ^^^ reference scala/Int# -// ^^^^^^^^ definition ujson/IndexedValue.Builder.visitFloat64StringParts().(expIndex) expIndex: Int -// ^^^ reference scala/Int# -// ^ definition ujson/IndexedValue.Builder.visitFloat64StringParts().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^ reference ujson/IndexedValue.Num. -// ^ reference ujson/IndexedValue.Builder.visitFloat64StringParts().(i) -// ^ reference ujson/IndexedValue.Builder.visitFloat64StringParts().(s) -// ^^^^^^^^ reference ujson/IndexedValue.Builder.visitFloat64StringParts().(decIndex) -// ^^^^^^^^ reference ujson/IndexedValue.Builder.visitFloat64StringParts().(expIndex) - override def visitFloat64(d: Double, i: Int) = IndexedValue.NumRaw(i, d) -// ^^^^^^^^^^^^ definition ujson/IndexedValue.Builder.visitFloat64(). def visitFloat64(d: Double, i: Int): NumRaw -// ^ definition ujson/IndexedValue.Builder.visitFloat64().(d) d: Double -// ^^^^^^ reference scala/Double# -// ^ definition ujson/IndexedValue.Builder.visitFloat64().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^^^^ reference ujson/IndexedValue.NumRaw. -// ^ reference ujson/IndexedValue.Builder.visitFloat64().(i) -// ^ reference ujson/IndexedValue.Builder.visitFloat64().(d) - - def visitString(s: CharSequence, i: Int) = IndexedValue.Str(i, s) -// ^^^^^^^^^^^ definition ujson/IndexedValue.Builder.visitString(). def visitString(s: CharSequence, i: Int): Str -// ^ definition ujson/IndexedValue.Builder.visitString().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^ definition ujson/IndexedValue.Builder.visitString().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^ reference ujson/IndexedValue. -// ^^^ reference ujson/IndexedValue.Str. -// ^ reference ujson/IndexedValue.Builder.visitString().(i) -// ^ reference ujson/IndexedValue.Builder.visitString().(s) - } -} diff --git a/tests/snapshots/src/main/generated/ujson/InputStreamParser.scala b/tests/snapshots/src/main/generated/ujson/InputStreamParser.scala deleted file mode 100644 index ac3e7fe4f..000000000 --- a/tests/snapshots/src/main/generated/ujson/InputStreamParser.scala +++ /dev/null @@ -1,91 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ - -import scala.annotation.{switch, tailrec} -// ^^^^^ reference scala/ -// ^^^^^^^^^^ reference scala/annotation/ -// ^^^^^^ reference scala/annotation/switch# -// ^^^^^^^ reference scala/annotation/tailrec# -import java.nio.ByteBuffer -// ^^^^ reference java/ -// ^^^ reference java/nio/ -// ^^^^^^^^^^ reference java/nio/ByteBuffer# - -import upickle.core.{BufferingInputStreamParser, ObjArrVisitor, Visitor} -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingInputStreamParser. -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingInputStreamParser# -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^^^^^^^ reference upickle/core/Visitor. -// ^^^^^^^ reference upickle/core/Visitor# -/** - * Parser that reads in bytes from an InputStream, buffering them in memory - * until a `reset` call discards them. - * - * Mostly the same as ByteArrayParser, except using an UberBuffer rather than - * reading directly from an Array[Byte]. - * - * Generally not meant to be used directly, but via [[ujson.Readable.fromReadable]] - */ -final class InputStreamParser[J](val inputStream: java.io.InputStream, -// ^^^^^^^^^^^^^^^^^ definition ujson/InputStreamParser# final class InputStreamParser[J] -// ^ definition ujson/InputStreamParser#[J] J -// definition ujson/InputStreamParser#``(). def this(inputStream: InputStream, minBufferStartSize: Int, maxBufferStartSize: Int) -// ^^^^^^^^^^^ definition ujson/InputStreamParser#inputStream. val inputStream: InputStream -// ^^^^^^^^^^^ definition ujson/InputStreamParser#``().(inputStream) inputStream: InputStream -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^ reference java/io/InputStream# - val minBufferStartSize: Int = BufferingInputStreamParser.defaultMinBufferStartSize, -// ^^^^^^^^^^^^^^^^^^ definition ujson/InputStreamParser#minBufferStartSize. val minBufferStartSize: Int -// ^^^^^^^^^^^^^^^^^^ definition ujson/InputStreamParser#``().(minBufferStartSize) default minBufferStartSize: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingInputStreamParser. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingInputStreamParser.defaultMinBufferStartSize. - val maxBufferStartSize: Int = BufferingInputStreamParser.defaultMaxBufferStartSize) -// ^^^^^^^^^^^^^^^^^^ definition ujson/InputStreamParser#maxBufferStartSize. val maxBufferStartSize: Int -// ^^^^^^^^^^^^^^^^^^ definition ujson/InputStreamParser#``().(maxBufferStartSize) default maxBufferStartSize: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingInputStreamParser. -// ^^^^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingInputStreamParser.defaultMaxBufferStartSize. -extends ByteParser[J] with upickle.core.BufferingInputStreamParser{ -// ^^^^^^^^^^ reference ujson/ByteParser# -// ^ reference ujson/InputStreamParser#[J] -// reference ujson/ByteParser#``(). -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/BufferingInputStreamParser# - protected[this] final def close() = {} -// ^^^^^ definition ujson/InputStreamParser#close(). final def close(): Unit -} - -object InputStreamParser extends Transformer[java.io.InputStream]{ -// ^^^^^^^^^^^^^^^^^ definition ujson/InputStreamParser. object InputStreamParser -// ^^^^^^^^^^^ reference ujson/Transformer# -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^ reference java/io/InputStream# -// reference java/lang/Object#``(). - def transform[T](j: java.io.InputStream, f: Visitor[_, T]) = { -// ^^^^^^^^^ definition ujson/InputStreamParser.transform(). def transform(j: InputStream, f: Visitor[local0, T[): T -// ^ definition ujson/InputStreamParser.transform().[T] T -// ^ definition ujson/InputStreamParser.transform().(j) j: InputStream -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^ reference java/io/InputStream# -// ^ definition ujson/InputStreamParser.transform().(f) f: Visitor[local0, T[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/InputStreamParser.transform().[T] - val p = new InputStreamParser[T](j) -// ^ definition local1 p: InputStreamParser[T] -// ^^^^^^^^^^^^^^^^^ reference ujson/InputStreamParser# -// ^ reference ujson/InputStreamParser.transform().[T] -// reference ujson/InputStreamParser#``(). -// ^ reference ujson/InputStreamParser.transform().(j) - p.parse(f) -// ^ reference local1 -// ^^^^^ reference ujson/ByteParser#parse(). -// ^ reference ujson/InputStreamParser.transform().(f) - } -} diff --git a/tests/snapshots/src/main/generated/ujson/JsVisitor.scala b/tests/snapshots/src/main/generated/ujson/JsVisitor.scala deleted file mode 100644 index 363b98fca..000000000 --- a/tests/snapshots/src/main/generated/ujson/JsVisitor.scala +++ /dev/null @@ -1,264 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ - -import upickle.core.{ArrVisitor, ObjVisitor, Visitor} -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^ reference upickle/core/ArrVisitor# -// ^^^^^^^^^^ reference upickle/core/ObjVisitor# -// ^^^^^^^ reference upickle/core/Visitor. -// ^^^^^^^ reference upickle/core/Visitor# - -/** - * A [[Visitor]] specialized to work with JSON types. Forwards the - * not-JSON-related methods to their JSON equivalents. - */ -trait JsVisitor[-T, +J] extends Visitor[T, J]{ -// ^^^^^^^^^ definition ujson/JsVisitor# trait JsVisitor[T, J] -// ^ definition ujson/JsVisitor#[T] T -// ^ definition ujson/JsVisitor#[J] J -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/JsVisitor#[T] -// ^ reference ujson/JsVisitor#[J] - def visitFloat64(d: Double, index: Int): J = { -// ^^^^^^^^^^^^ definition ujson/JsVisitor#visitFloat64(). def visitFloat64(d: Double, index: Int): J -// ^ definition ujson/JsVisitor#visitFloat64().(d) d: Double -// ^^^^^^ reference scala/Double# -// ^^^^^ definition ujson/JsVisitor#visitFloat64().(index) index: Int -// ^^^ reference scala/Int# -// ^ reference ujson/JsVisitor#[J] - val i = d.toLong -// ^ definition local0 i: Long -// ^ reference ujson/JsVisitor#visitFloat64().(d) -// ^^^^^^ reference scala/Double#toLong(). - if(i == d) visitFloat64StringParts(i.toString, -1, -1, index) -// ^ reference local0 -// ^^ reference scala/Long#`==`(+6). -// ^ reference ujson/JsVisitor#visitFloat64().(d) -// ^^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/Visitor#visitFloat64StringParts(). -// ^ reference local0 -// ^^^^^^^^ reference scala/Any#toString(). -// ^^^^^ reference ujson/JsVisitor#visitFloat64().(index) - else visitFloat64String(d.toString, index) -// ^^^^^^^^^^^^^^^^^^ reference ujson/JsVisitor#visitFloat64String(). -// ^ reference ujson/JsVisitor#visitFloat64().(d) -// ^^^^^^^^ reference scala/Any#toString(). -// ^^^^^ reference ujson/JsVisitor#visitFloat64().(index) - - } - - def visitFloat32(d: Float, index: Int): J = visitFloat64(d, index) -// ^^^^^^^^^^^^ definition ujson/JsVisitor#visitFloat32(). def visitFloat32(d: Float, index: Int): J -// ^ definition ujson/JsVisitor#visitFloat32().(d) d: Float -// ^^^^^ reference scala/Float# -// ^^^^^ definition ujson/JsVisitor#visitFloat32().(index) index: Int -// ^^^ reference scala/Int# -// ^ reference ujson/JsVisitor#[J] -// ^^^^^^^^^^^^ reference ujson/JsVisitor#visitFloat64(). -// ^ reference scala/Float#toDouble(). -// ^^^^^ reference ujson/JsVisitor#visitFloat32().(index) - def visitInt32(i: Int, index: Int): J = visitFloat64(i, index) -// ^^^^^^^^^^ definition ujson/JsVisitor#visitInt32(). def visitInt32(i: Int, index: Int): J -// ^ definition ujson/JsVisitor#visitInt32().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/JsVisitor#visitInt32().(index) index: Int -// ^^^ reference scala/Int# -// ^ reference ujson/JsVisitor#[J] -// ^^^^^^^^^^^^ reference ujson/JsVisitor#visitFloat64(). -// ^ reference scala/Int#toDouble(). -// ^^^^^ reference ujson/JsVisitor#visitInt32().(index) - def visitInt64(i: Long, index: Int): J = { -// ^^^^^^^^^^ definition ujson/JsVisitor#visitInt64(). def visitInt64(i: Long, index: Int): J -// ^ definition ujson/JsVisitor#visitInt64().(i) i: Long -// ^^^^ reference scala/Long# -// ^^^^^ definition ujson/JsVisitor#visitInt64().(index) index: Int -// ^^^ reference scala/Int# -// ^ reference ujson/JsVisitor#[J] - if (math.abs(i) > math.pow(2, 53) || i == -9223372036854775808L) visitString(i.toString, index) -// ^^^^ reference scala/math/ -// ^^^ reference scala/math/package.abs(+1). -// ^ reference ujson/JsVisitor#visitInt64().(i) -// ^ reference scala/Long#`>`(+6). -// ^^^^ reference scala/math/ -// ^^^ reference scala/math/package.pow(). -// ^^ reference scala/Boolean#`||`(). -// ^ reference ujson/JsVisitor#visitInt64().(i) -// ^^ reference scala/Long#`==`(+4). -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^ reference ujson/JsVisitor#visitInt64().(i) -// ^^^^^^^^ reference scala/Any#toString(). -// ^^^^^ reference ujson/JsVisitor#visitInt64().(index) - else visitFloat64(i, index) -// ^^^^^^^^^^^^ reference ujson/JsVisitor#visitFloat64(). -// ^ reference scala/Long#toDouble(). -// ^^^^^ reference ujson/JsVisitor#visitInt64().(index) - } - def visitUInt64(i: Long, index: Int): J = { -// ^^^^^^^^^^^ definition ujson/JsVisitor#visitUInt64(). def visitUInt64(i: Long, index: Int): J -// ^ definition ujson/JsVisitor#visitUInt64().(i) i: Long -// ^^^^ reference scala/Long# -// ^^^^^ definition ujson/JsVisitor#visitUInt64().(index) index: Int -// ^^^ reference scala/Int# -// ^ reference ujson/JsVisitor#[J] - if (i > math.pow(2, 53) || i < 0) visitString(java.lang.Long.toUnsignedString(i), index) -// ^ reference ujson/JsVisitor#visitUInt64().(i) -// ^ reference scala/Long#`>`(+6). -// ^^^^ reference scala/math/ -// ^^^ reference scala/math/package.pow(). -// ^^ reference scala/Boolean#`||`(). -// ^ reference ujson/JsVisitor#visitUInt64().(i) -// ^ reference scala/Long#`<`(+3). -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^^^^ reference java/ -// ^^^^ reference java/lang/ -// ^^^^ reference java/lang/Long# -// ^^^^^^^^^^^^^^^^ reference java/lang/Long#toUnsignedString(+1). -// ^ reference ujson/JsVisitor#visitUInt64().(i) -// ^^^^^ reference ujson/JsVisitor#visitUInt64().(index) - else visitFloat64(i, index) -// ^^^^^^^^^^^^ reference ujson/JsVisitor#visitFloat64(). -// ^ reference scala/Long#toDouble(). -// ^^^^^ reference ujson/JsVisitor#visitUInt64().(index) - } - - def visitFloat64String(s: String, index: Int): J = { -// ^^^^^^^^^^^^^^^^^^ definition ujson/JsVisitor#visitFloat64String(). def visitFloat64String(s: String, index: Int): J -// ^ definition ujson/JsVisitor#visitFloat64String().(s) s: String -// ^^^^^^ reference scala/Predef.String# -// ^^^^^ definition ujson/JsVisitor#visitFloat64String().(index) index: Int -// ^^^ reference scala/Int# -// ^ reference ujson/JsVisitor#[J] - visitFloat64StringParts( -// ^^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/Visitor#visitFloat64StringParts(). - s, -// ^ reference ujson/JsVisitor#visitFloat64String().(s) - s.indexOf('.'), -// ^ reference ujson/JsVisitor#visitFloat64String().(s) -// ^^^^^^^ reference java/lang/String#indexOf(). - s.indexOf('E') match{ -// ^ reference ujson/JsVisitor#visitFloat64String().(s) -// ^^^^^^^ reference java/lang/String#indexOf(). - case -1 => s.indexOf('e') -// ^ reference ujson/JsVisitor#visitFloat64String().(s) -// ^^^^^^^ reference java/lang/String#indexOf(). - case n => n -// ^ definition local1 n: Int -// ^ reference local1 - }, - -1 - ) - } - - def visitBinary(bytes: Array[Byte], offset: Int, len: Int, index: Int): J = { -// ^^^^^^^^^^^ definition ujson/JsVisitor#visitBinary(). def visitBinary(bytes: Array[Byte], offset: Int, len: Int, index: Int): J -// ^^^^^ definition ujson/JsVisitor#visitBinary().(bytes) bytes: Array[Byte] -// ^^^^^ reference scala/Array# -// ^^^^ reference scala/Byte# -// ^^^^^^ definition ujson/JsVisitor#visitBinary().(offset) offset: Int -// ^^^ reference scala/Int# -// ^^^ definition ujson/JsVisitor#visitBinary().(len) len: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/JsVisitor#visitBinary().(index) index: Int -// ^^^ reference scala/Int# -// ^ reference ujson/JsVisitor#[J] - val arr = visitArray(len, index) -// ^^^ definition local2 arr: ArrVisitor[T, J] -// ^^^^^^^^^^ reference upickle/core/Visitor#visitArray(). -// ^^^ reference ujson/JsVisitor#visitBinary().(len) -// ^^^^^ reference ujson/JsVisitor#visitBinary().(index) - var i = 0 -// ^ definition local3 i: Int - while (i < len){ -// ^ reference local3 -// ^ reference scala/Int#`<`(+3). -// ^^^ reference ujson/JsVisitor#visitBinary().(len) - arr.visitValue(arr.subVisitor.visitInt32(bytes(offset + i), index).asInstanceOf[T], index) -// ^^^ reference local2 -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). -// ^^^ reference local2 -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#subVisitor(). -// ^^^^^^^^^^ reference upickle/core/Visitor#visitInt32(). -// ^^^^^ reference ujson/JsVisitor#visitBinary().(bytes) -// ^^^^^^ reference ujson/JsVisitor#visitBinary().(offset) -// ^ reference scala/Int#`+`(+4). -// ^ reference local3 -// ^^^^^ reference ujson/JsVisitor#visitBinary().(index) -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^ reference ujson/JsVisitor#[T] -// ^^^^^ reference ujson/JsVisitor#visitBinary().(index) - i += 1 -// ^ reference local3 -// ^^ reference scala/Int#`+`(+4). - } - arr.visitEnd(index) -// ^^^ reference local2 -// ^^^^^^^^ reference upickle/core/ObjArrVisitor#visitEnd(). -// ^^^^^ reference ujson/JsVisitor#visitBinary().(index) - } - - def visitFloat64StringParts(s: CharSequence, decIndex: Int, expIndex: Int): J = visitFloat64StringParts(s, decIndex, expIndex, -1) -// ^^^^^^^^^^^^^^^^^^^^^^^ definition ujson/JsVisitor#visitFloat64StringParts(). def visitFloat64StringParts(s: CharSequence, decIndex: Int, expIndex: Int): J -// ^ definition ujson/JsVisitor#visitFloat64StringParts().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^ definition ujson/JsVisitor#visitFloat64StringParts().(decIndex) decIndex: Int -// ^^^ reference scala/Int# -// ^^^^^^^^ definition ujson/JsVisitor#visitFloat64StringParts().(expIndex) expIndex: Int -// ^^^ reference scala/Int# -// ^ reference ujson/JsVisitor#[J] -// ^^^^^^^^^^^^^^^^^^^^^^^ reference upickle/core/Visitor#visitFloat64StringParts(). -// ^ reference ujson/JsVisitor#visitFloat64StringParts().(s) -// ^^^^^^^^ reference ujson/JsVisitor#visitFloat64StringParts().(decIndex) -// ^^^^^^^^ reference ujson/JsVisitor#visitFloat64StringParts().(expIndex) - - def visitExt(tag: Byte, bytes: Array[Byte], offset: Int, len: Int, index: Int): J = { -// ^^^^^^^^ definition ujson/JsVisitor#visitExt(). def visitExt(tag: Byte, bytes: Array[Byte], offset: Int, len: Int, index: Int): J -// ^^^ definition ujson/JsVisitor#visitExt().(tag) tag: Byte -// ^^^^ reference scala/Byte# -// ^^^^^ definition ujson/JsVisitor#visitExt().(bytes) bytes: Array[Byte] -// ^^^^^ reference scala/Array# -// ^^^^ reference scala/Byte# -// ^^^^^^ definition ujson/JsVisitor#visitExt().(offset) offset: Int -// ^^^ reference scala/Int# -// ^^^ definition ujson/JsVisitor#visitExt().(len) len: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/JsVisitor#visitExt().(index) index: Int -// ^^^ reference scala/Int# -// ^ reference ujson/JsVisitor#[J] - val arr = visitArray(-1, index) -// ^^^ definition local5 arr: ArrVisitor[T, J] -// ^^^^^^^^^^ reference upickle/core/Visitor#visitArray(). -// ^^^^^ reference ujson/JsVisitor#visitExt().(index) - arr.visitValue(visitFloat64(tag, index).asInstanceOf[T], -1) -// ^^^ reference local5 -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). -// ^^^^^^^^^^^^ reference ujson/JsVisitor#visitFloat64(). -// ^^^ reference scala/Byte#toDouble(). -// ^^^^^ reference ujson/JsVisitor#visitExt().(index) -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^ reference ujson/JsVisitor#[T] - arr.visitValue(visitBinary(bytes, offset, len, index).asInstanceOf[T], -1) -// ^^^ reference local5 -// ^^^^^^^^^^ reference upickle/core/ObjArrVisitor#visitValue(). -// ^^^^^^^^^^^ reference ujson/JsVisitor#visitBinary(). -// ^^^^^ reference ujson/JsVisitor#visitExt().(bytes) -// ^^^^^^ reference ujson/JsVisitor#visitExt().(offset) -// ^^^ reference ujson/JsVisitor#visitExt().(len) -// ^^^^^ reference ujson/JsVisitor#visitExt().(index) -// ^^^^^^^^^^^^ reference scala/Any#asInstanceOf(). -// ^ reference ujson/JsVisitor#[T] - arr.visitEnd(-1) -// ^^^ reference local5 -// ^^^^^^^^ reference upickle/core/ObjArrVisitor#visitEnd(). - } - - def visitChar(s: Char, index: Int) = visitString(s.toString, index) -// ^^^^^^^^^ definition ujson/JsVisitor#visitChar(). def visitChar(s: Char, index: Int): J -// ^ definition ujson/JsVisitor#visitChar().(s) s: Char -// ^^^^ reference scala/Char# -// ^^^^^ definition ujson/JsVisitor#visitChar().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^ reference ujson/JsVisitor#visitChar().(s) -// ^^^^^^^^ reference scala/Any#toString(). -// ^^^^^ reference ujson/JsVisitor#visitChar().(index) -} diff --git a/tests/snapshots/src/main/generated/ujson/Readable.scala b/tests/snapshots/src/main/generated/ujson/Readable.scala deleted file mode 100644 index 1ac806d11..000000000 --- a/tests/snapshots/src/main/generated/ujson/Readable.scala +++ /dev/null @@ -1,188 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ - -import java.nio.ByteBuffer -// ^^^^ reference java/ -// ^^^ reference java/nio/ -// ^^^^^^^^^^ reference java/nio/ByteBuffer# -import java.nio.channels.ReadableByteChannel -// ^^^^ reference java/ -// ^^^ reference java/nio/ -// ^^^^^^^^ reference java/nio/channels/ -// ^^^^^^^^^^^^^^^^^^^ reference java/nio/channels/ReadableByteChannel# -import upickle.core.{Visitor, ObjArrVisitor} -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^ reference upickle/core/Visitor. -// ^^^^^^^ reference upickle/core/Visitor# -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -trait Readable { -// ^^^^^^^^ definition ujson/Readable# trait Readable - def transform[T](f: Visitor[_, T]): T -// ^^^^^^^^^ definition ujson/Readable#transform(). def transform(f: Visitor[local0, T[): T -// ^ definition ujson/Readable#transform().[T] T -// ^ definition ujson/Readable#transform().(f) f: Visitor[local0, T[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/Readable#transform().[T] -// ^ reference ujson/Readable#transform().[T] -} - -object Readable extends ReadableLowPri{ -// ^^^^^^^^ definition ujson/Readable. object Readable -// ^^^^^^^^^^^^^^ reference ujson/ReadableLowPri# -// reference java/lang/Object#``(). - case class fromTransformer[T](t: T, w: Transformer[T]) extends Readable{ -// ^^^^^^^^^^^^^^^ definition ujson/Readable.fromTransformer# case class fromTransformer(t: T, w: Transformer[T])[T] extends Readable -// ^^^^^^^^^^^^^^^ synthetic_definition ujson/Readable.fromTransformer#copy(). def copy(t: T, w: Transformer[T]): fromTransformer[T] -// ^^^^^^^^^^^^^^^ synthetic_definition ujson/Readable.fromTransformer#productElement(). def productElement(x$1: Int): Any -// ^^^^^^^^^^^^^^^ synthetic_definition ujson/Readable.fromTransformer.apply(). def apply(t: T, w: Transformer[T]): fromTransformer[T] -// ^^^^^^^^^^^^^^^ definition ujson/Readable.fromTransformer. object fromTransformer -// ^^^^^^^^^^^^^^^ synthetic_definition ujson/Readable.fromTransformer#productElementName(). def productElementName(x$1: Int): String -// ^ definition ujson/Readable.fromTransformer#[T] T -// definition ujson/Readable.fromTransformer#``(). def this(t: T, w: Transformer[T]) -// ^ definition ujson/Readable.fromTransformer#t. val t: T -// ^ definition ujson/Readable.fromTransformer#copy().(t) default t: T -// ^ definition ujson/Readable.fromTransformer#``().(t) t: T -// ^ definition ujson/Readable.fromTransformer.apply().(t) t: T -// ^ reference ujson/Readable.fromTransformer#[T] -// ^ definition ujson/Readable.fromTransformer#w. val w: Transformer[T] -// ^ definition ujson/Readable.fromTransformer#copy().(w) default w: Transformer[T] -// ^ definition ujson/Readable.fromTransformer#``().(w) w: Transformer[T] -// ^ definition ujson/Readable.fromTransformer.apply().(w) w: Transformer[T] -// ^^^^^^^^^^^ reference ujson/Transformer# -// ^ reference ujson/Readable.fromTransformer#[T] -// ^^^^^^^^ reference ujson/Readable# -// reference java/lang/Object#``(). - def transform[T](f: Visitor[_, T]): T = { -// ^^^^^^^^^ definition ujson/Readable.fromTransformer#transform(). def transform(f: Visitor[local1, T[): T -// ^ definition ujson/Readable.fromTransformer#transform().[T] T -// ^ definition ujson/Readable.fromTransformer#transform().(f) f: Visitor[local1, T[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/Readable.fromTransformer#transform().[T] -// ^ reference ujson/Readable.fromTransformer#transform().[T] - w.transform(t, f) -// ^ reference ujson/Readable.fromTransformer#w. -// ^^^^^^^^^ reference ujson/Transformer#transform(). -// ^ reference ujson/Readable.fromTransformer#t. -// ^ reference ujson/Readable.fromTransformer#transform().(f) - } - } - implicit def fromString(s: String): fromTransformer[String] = new fromTransformer(s, StringParser) -// ^^^^^^^^^^ definition ujson/Readable.fromString(). implicit def fromString(s: String): fromTransformer[String] -// ^ definition ujson/Readable.fromString().(s) s: String -// ^^^^^^ reference scala/Predef.String# -// ^^^^^^^^^^^^^^^ reference ujson/Readable.fromTransformer# -// ^^^^^^ reference scala/Predef.String# -// ^^^^^^^^^^^^^^^ reference ujson/Readable.fromTransformer# -// reference ujson/Readable.fromTransformer#``(). -// ^ reference ujson/Readable.fromString().(s) -// ^^^^^^^^^^^^ reference ujson/StringParser. - implicit def fromCharSequence(s: CharSequence): fromTransformer[CharSequence] = new fromTransformer(s, CharSequenceParser) -// ^^^^^^^^^^^^^^^^ definition ujson/Readable.fromCharSequence(). implicit def fromCharSequence(s: CharSequence): fromTransformer[CharSequence] -// ^ definition ujson/Readable.fromCharSequence().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^^^^^^^^ reference ujson/Readable.fromTransformer# -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^^^^^^^^ reference ujson/Readable.fromTransformer# -// reference ujson/Readable.fromTransformer#``(). -// ^ reference ujson/Readable.fromCharSequence().(s) -// ^^^^^^^^^^^^^^^^^^ reference ujson/CharSequenceParser. - implicit def fromPath(s: java.nio.file.Path): Readable = new Readable { -// ^^^^^^^^ definition ujson/Readable.fromPath(). implicit def fromPath(s: Path): Readable -// ^ definition ujson/Readable.fromPath().(s) s: Path -// ^^^^ reference java/ -// ^^^ reference java/nio/ -// ^^^^ reference java/nio/file/ -// ^^^^ reference java/nio/file/Path# -// ^^^^^^^^ reference ujson/Readable# -// definition local3 final class $anon -// ^^^^^^^^ reference ujson/Readable# -// reference java/lang/Object#``(). - override def transform[T](f: Visitor[_, T]) = { -// ^^^^^^^^^ definition local4 def transform(f: Visitor[local7, local6[): local6 -// ^ definition local6 T -// ^ definition local5 f: Visitor[local7, local6[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference local6 - val inputStream = java.nio.file.Files.newInputStream(s) -// ^^^^^^^^^^^ definition local8 inputStream: InputStream -// ^^^^ reference java/ -// ^^^ reference java/nio/ -// ^^^^ reference java/nio/file/ -// ^^^^^ reference java/nio/file/Files# -// ^^^^^^^^^^^^^^ reference java/nio/file/Files#newInputStream(). -// ^ reference ujson/Readable.fromPath().(s) - try InputStreamParser.transform(inputStream, f) -// ^^^^^^^^^^^^^^^^^ reference ujson/InputStreamParser. -// ^^^^^^^^^ reference ujson/InputStreamParser.transform(). -// ^^^^^^^^^^^ reference local8 -// ^ reference local5 - finally inputStream.close() -// ^^^^^^^^^^^ reference local8 -// ^^^^^ reference java/io/InputStream#close(). - } - } - implicit def fromFile(s: java.io.File): Readable = fromPath(s.toPath) -// ^^^^^^^^ definition ujson/Readable.fromFile(). implicit def fromFile(s: File): Readable -// ^ definition ujson/Readable.fromFile().(s) s: File -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^ reference java/io/File# -// ^^^^^^^^ reference ujson/Readable# -// ^^^^^^^^ reference ujson/Readable.fromPath(). -// ^ reference ujson/Readable.fromFile().(s) -// ^^^^^^ reference java/io/File#toPath(). - implicit def fromByteBuffer(s: ByteBuffer): fromTransformer[ByteBuffer] = new fromTransformer(s, ByteBufferParser) -// ^^^^^^^^^^^^^^ definition ujson/Readable.fromByteBuffer(). implicit def fromByteBuffer(s: ByteBuffer): fromTransformer[ByteBuffer] -// ^ definition ujson/Readable.fromByteBuffer().(s) s: ByteBuffer -// ^^^^^^^^^^ reference java/nio/ByteBuffer# -// ^^^^^^^^^^^^^^^ reference ujson/Readable.fromTransformer# -// ^^^^^^^^^^ reference java/nio/ByteBuffer# -// ^^^^^^^^^^^^^^^ reference ujson/Readable.fromTransformer# -// reference ujson/Readable.fromTransformer#``(). -// ^ reference ujson/Readable.fromByteBuffer().(s) -// ^^^^^^^^^^^^^^^^ reference ujson/ByteBufferParser. - implicit def fromByteArray(s: Array[Byte]): fromTransformer[Array[Byte]] = new fromTransformer(s, ByteArrayParser) -// ^^^^^^^^^^^^^ definition ujson/Readable.fromByteArray(). implicit def fromByteArray(s: Array[Byte]): fromTransformer[Array[Byte]] -// ^ definition ujson/Readable.fromByteArray().(s) s: Array[Byte] -// ^^^^^ reference scala/Array# -// ^^^^ reference scala/Byte# -// ^^^^^^^^^^^^^^^ reference ujson/Readable.fromTransformer# -// ^^^^^ reference scala/Array# -// ^^^^ reference scala/Byte# -// ^^^^^^^^^^^^^^^ reference ujson/Readable.fromTransformer# -// reference ujson/Readable.fromTransformer#``(). -// ^ reference ujson/Readable.fromByteArray().(s) -// ^^^^^^^^^^^^^^^ reference ujson/ByteArrayParser. -} - -trait ReadableLowPri{ -// ^^^^^^^^^^^^^^ definition ujson/ReadableLowPri# trait ReadableLowPri - implicit def fromReadable[T](s: T)(implicit conv: T => geny.Readable): Readable = new Readable{ -// ^^^^^^^^^^^^ definition ujson/ReadableLowPri#fromReadable(). implicit def fromReadable(s: T)(conv: (T) => Readable): Readable -// ^ definition ujson/ReadableLowPri#fromReadable().[T] T -// ^ definition ujson/ReadableLowPri#fromReadable().(s) s: T -// ^ reference ujson/ReadableLowPri#fromReadable().[T] -// ^^^^ definition ujson/ReadableLowPri#fromReadable().(conv) implicit conv: (T) => Readable -// ^ reference ujson/ReadableLowPri#fromReadable().[T] -// ^^^^ reference geny/ -// ^^^^^^^^ reference geny/Readable# -// ^^^^^^^^ reference ujson/Readable# -// definition local9 final class $anon -// ^^^^^^^^ reference ujson/Readable# -// reference java/lang/Object#``(). - def transform[T](f: Visitor[_, T]): T = conv(s).readBytesThrough(InputStreamParser.transform(_, f)) -// ^^^^^^^^^ definition local10 def transform(f: Visitor[local13, local12[): local12 -// ^ definition local12 T -// ^ definition local11 f: Visitor[local13, local12[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference local12 -// ^ reference local12 -// ^^^^ reference ujson/ReadableLowPri#fromReadable().(conv) -// ^ reference ujson/ReadableLowPri#fromReadable().(s) -// ^^^^^^^^^^^^^^^^ reference geny/Readable#readBytesThrough(). -// ^^^^^^^^^^^^^^^^^ reference ujson/InputStreamParser. -// ^^^^^^^^^ reference ujson/InputStreamParser.transform(). -// ^ reference local11 - } -} diff --git a/tests/snapshots/src/main/generated/ujson/Renderer.scala b/tests/snapshots/src/main/generated/ujson/Renderer.scala deleted file mode 100644 index 8b3200463..000000000 --- a/tests/snapshots/src/main/generated/ujson/Renderer.scala +++ /dev/null @@ -1,111 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ - -import java.io.ByteArrayOutputStream -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^^^^^^^^^^^ reference java/io/ByteArrayOutputStream# - -import upickle.core.{ArrVisitor, ObjVisitor, Visitor} -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^ reference upickle/core/ArrVisitor# -// ^^^^^^^^^^ reference upickle/core/ObjVisitor# -// ^^^^^^^ reference upickle/core/Visitor. -// ^^^^^^^ reference upickle/core/Visitor# - -import scala.annotation.switch -// ^^^^^ reference scala/ -// ^^^^^^^^^^ reference scala/annotation/ -// ^^^^^^ reference scala/annotation/switch# - -case class BytesRenderer(indent: Int = -1, escapeUnicode: Boolean = false) -// ^^^^^^^^^^^^^ definition ujson/BytesRenderer# case class BytesRenderer(indent: Int, escapeUnicode: Boolean) extends BaseByteRenderer[ByteArrayOutputStream] -// ^^^^^^^^^^^^^ synthetic_definition ujson/BytesRenderer#productElement(). def productElement(x$1: Int): Any -// ^^^^^^^^^^^^^ synthetic_definition ujson/BytesRenderer#productElementName(). def productElementName(x$1: Int): String -// ^^^^^^^^^^^^^ definition ujson/BytesRenderer. object BytesRenderer -// ^^^^^^^^^^^^^ synthetic_definition ujson/BytesRenderer#copy(). def copy(indent: Int, escapeUnicode: Boolean): BytesRenderer -// ^^^^^^^^^^^^^ synthetic_definition ujson/BytesRenderer.apply(). def apply(indent: Int, escapeUnicode: Boolean): BytesRenderer -// definition ujson/BytesRenderer#``(). def this(indent: Int, escapeUnicode: Boolean) -// ^^^^^^ definition ujson/BytesRenderer#indent. val indent: Int -// ^^^^^^ definition ujson/BytesRenderer#copy().(indent) default indent: Int -// ^^^^^^ definition ujson/BytesRenderer#``().(indent) default indent: Int -// ^^^^^^ definition ujson/BytesRenderer.apply().(indent) default indent: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^^ definition ujson/BytesRenderer#escapeUnicode. val escapeUnicode: Boolean -// ^^^^^^^^^^^^^ definition ujson/BytesRenderer#copy().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^^^^^^^ definition ujson/BytesRenderer.apply().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^^^^^^^ definition ujson/BytesRenderer#``().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# - extends BaseByteRenderer(new ByteArrayOutputStream(), indent, escapeUnicode){ -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer# -// reference ujson/BaseByteRenderer#``(). -// ^^^^^^^^^^^^^^^^^^^^^ reference java/io/ByteArrayOutputStream# -// reference java/io/ByteArrayOutputStream#``(). -// ^^^^^^ reference ujson/BytesRenderer#``().(indent) -// ^^^^^^^^^^^^^ reference ujson/BytesRenderer#``().(escapeUnicode) -} - - -case class StringRenderer(indent: Int = -1, -// ^^^^^^^^^^^^^^ definition ujson/StringRenderer# case class StringRenderer(indent: Int, escapeUnicode: Boolean) extends BaseCharRenderer[StringWriter] -// ^^^^^^^^^^^^^^ definition ujson/StringRenderer. object StringRenderer -// ^^^^^^^^^^^^^^ synthetic_definition ujson/StringRenderer#copy(). def copy(indent: Int, escapeUnicode: Boolean): StringRenderer -// ^^^^^^^^^^^^^^ synthetic_definition ujson/StringRenderer.apply(). def apply(indent: Int, escapeUnicode: Boolean): StringRenderer -// ^^^^^^^^^^^^^^ synthetic_definition ujson/StringRenderer#productElement(). def productElement(x$1: Int): Any -// ^^^^^^^^^^^^^^ synthetic_definition ujson/StringRenderer#productElementName(). def productElementName(x$1: Int): String -// definition ujson/StringRenderer#``(). def this(indent: Int, escapeUnicode: Boolean) -// ^^^^^^ definition ujson/StringRenderer#indent. val indent: Int -// ^^^^^^ definition ujson/StringRenderer#copy().(indent) default indent: Int -// ^^^^^^ definition ujson/StringRenderer#``().(indent) default indent: Int -// ^^^^^^ definition ujson/StringRenderer.apply().(indent) default indent: Int -// ^^^ reference scala/Int# - escapeUnicode: Boolean = false) -// ^^^^^^^^^^^^^ definition ujson/StringRenderer#escapeUnicode. val escapeUnicode: Boolean -// ^^^^^^^^^^^^^ definition ujson/StringRenderer.apply().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^^^^^^^ definition ujson/StringRenderer#copy().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^^^^^^^ definition ujson/StringRenderer#``().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# - extends BaseCharRenderer(new java.io.StringWriter(), indent, escapeUnicode) -// ^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer# -// reference ujson/BaseCharRenderer#``(). -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^^ reference java/io/StringWriter# -// reference java/io/StringWriter#``(). -// ^^^^^^ reference ujson/StringRenderer#``().(indent) -// ^^^^^^^^^^^^^ reference ujson/StringRenderer#``().(escapeUnicode) - -case class Renderer(out: java.io.Writer, -// ^^^^^^^^ definition ujson/Renderer# case class Renderer(out: Writer, indent: Int, escapeUnicode: Boolean) extends BaseCharRenderer[Writer] -// ^^^^^^^^ definition ujson/Renderer. object Renderer -// ^^^^^^^^ synthetic_definition ujson/Renderer.apply(). def apply(out: Writer, indent: Int, escapeUnicode: Boolean): Renderer -// ^^^^^^^^ synthetic_definition ujson/Renderer#productElementName(). def productElementName(x$1: Int): String -// ^^^^^^^^ synthetic_definition ujson/Renderer#copy(). def copy(out: Writer, indent: Int, escapeUnicode: Boolean): Renderer -// ^^^^^^^^ synthetic_definition ujson/Renderer#productElement(). def productElement(x$1: Int): Any -// definition ujson/Renderer#``(). def this(out: Writer, indent: Int, escapeUnicode: Boolean) -// ^^^ definition ujson/Renderer#out. val out: Writer -// ^^^ definition ujson/Renderer.apply().(out) out: Writer -// ^^^ definition ujson/Renderer#copy().(out) default out: Writer -// ^^^ definition ujson/Renderer#``().(out) out: Writer -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^ reference java/io/Writer# - indent: Int = -1, -// ^^^^^^ definition ujson/Renderer#indent. val indent: Int -// ^^^^^^ definition ujson/Renderer#copy().(indent) default indent: Int -// ^^^^^^ definition ujson/Renderer#``().(indent) default indent: Int -// ^^^^^^ definition ujson/Renderer.apply().(indent) default indent: Int -// ^^^ reference scala/Int# - escapeUnicode: Boolean = false) -// ^^^^^^^^^^^^^ definition ujson/Renderer#escapeUnicode. val escapeUnicode: Boolean -// ^^^^^^^^^^^^^ definition ujson/Renderer.apply().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^^^^^^^ definition ujson/Renderer#copy().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^^^^^^^ definition ujson/Renderer#``().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# - extends BaseCharRenderer(out, indent, escapeUnicode) -// ^^^^^^^^^^^^^^^^ reference ujson/BaseCharRenderer# -// reference ujson/BaseCharRenderer#``(). -// ^^^ reference ujson/Renderer#``().(out) -// ^^^^^^ reference ujson/Renderer#``().(indent) -// ^^^^^^^^^^^^^ reference ujson/Renderer#``().(escapeUnicode) diff --git a/tests/snapshots/src/main/generated/ujson/StringParser.scala b/tests/snapshots/src/main/generated/ujson/StringParser.scala deleted file mode 100644 index 69c59b0d8..000000000 --- a/tests/snapshots/src/main/generated/ujson/StringParser.scala +++ /dev/null @@ -1,83 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ - -import upickle.core.{ObjArrVisitor, Visitor} -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^^^^^^^ reference upickle/core/Visitor. -// ^^^^^^^ reference upickle/core/Visitor# - -/** - * Basic in-memory string parsing. - * - * This is probably the simplest Parser implementation, since there is - * no UTF-8 decoding, and the data is already fully available. - * - * This parser is limited to the maximum string size (~2G). Obviously - * for large JSON documents it's better to avoid using this parser and - * go straight from disk, to avoid having to load the whole thing into - * memory at once. So this limit will probably not be a problem in - * practice. - */ -private[ujson] final class StringParser[J](s: String) extends CharParser[J]{ -// ^^^^^ reference ujson/ -// ^^^^^^^^^^^^ definition ujson/StringParser# protected[ujson] final class StringParser[J] -// ^ definition ujson/StringParser#[J] J -// definition ujson/StringParser#``(). def this(s: String) -// ^ definition ujson/StringParser#s. private[this] val s: String -// ^ definition ujson/StringParser#``().(s) s: String -// ^^^^^^ reference scala/Predef.String# -// ^^^^^^^^^^ reference ujson/CharParser# -// ^ reference ujson/StringParser#[J] -// reference ujson/CharParser#``(). - private[this] val sLength = s.length -// ^^^^^^^ definition ujson/StringParser#sLength. private[this] val sLength: Int -// ^ reference ujson/StringParser#s. -// ^^^^^^ reference java/lang/String#length(). - override def growBuffer(until: Int): Unit = () -// ^^^^^^^^^^ definition ujson/StringParser#growBuffer(). def growBuffer(until: Int): Unit -// ^^^^^ definition ujson/StringParser#growBuffer().(until) until: Int -// ^^^ reference scala/Int# -// ^^^^ reference scala/Unit# - def readDataIntoBuffer(buffer: Array[Char], bufferOffset: Int) = { -// ^^^^^^^^^^^^^^^^^^ definition ujson/StringParser#readDataIntoBuffer(). def readDataIntoBuffer(buffer: Array[Char], bufferOffset: Int): (Array[Char], Boolean, Int) -// ^^^^^^ definition ujson/StringParser#readDataIntoBuffer().(buffer) buffer: Array[Char] -// ^^^^^ reference scala/Array# -// ^^^^ reference scala/Char# -// ^^^^^^^^^^^^ definition ujson/StringParser#readDataIntoBuffer().(bufferOffset) bufferOffset: Int -// ^^^ reference scala/Int# - if(buffer == null) (s.toCharArray, sLength == 0, sLength) -// ^^^^^^ reference ujson/StringParser#readDataIntoBuffer().(buffer) -// ^^ reference java/lang/Object#`==`(). -// ^ reference ujson/StringParser#s. -// ^^^^^^^^^^^ reference java/lang/String#toCharArray(). -// ^^^^^^^ reference ujson/StringParser#sLength. -// ^^ reference scala/Int#`==`(+3). -// ^^^^^^^ reference ujson/StringParser#sLength. - else (buffer, true, -1) -// ^^^^^^ reference ujson/StringParser#readDataIntoBuffer().(buffer) - } - final def close() = () -// ^^^^^ definition ujson/StringParser#close(). final def close(): Unit -} - -object StringParser extends Transformer[String]{ -// ^^^^^^^^^^^^ definition ujson/StringParser. object StringParser -// ^^^^^^^^^^^ reference ujson/Transformer# -// ^^^^^^ reference scala/Predef.String# -// reference java/lang/Object#``(). - def transform[T](j: String, f: Visitor[_, T]) = new StringParser(j).parse(f) -// ^^^^^^^^^ definition ujson/StringParser.transform(). def transform(j: String, f: Visitor[local0, T[): T -// ^ definition ujson/StringParser.transform().[T] T -// ^ definition ujson/StringParser.transform().(j) j: String -// ^^^^^^ reference scala/Predef.String# -// ^ definition ujson/StringParser.transform().(f) f: Visitor[local0, T[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/StringParser.transform().[T] -// ^^^^^^^^^^^^ reference ujson/StringParser# -// reference ujson/StringParser#``(). -// ^ reference ujson/StringParser.transform().(j) -// ^^^^^ reference ujson/CharParser#parse(). -// ^ reference ujson/StringParser.transform().(f) -} diff --git a/tests/snapshots/src/main/generated/ujson/Transformer.scala b/tests/snapshots/src/main/generated/ujson/Transformer.scala deleted file mode 100644 index 8060f76cf..000000000 --- a/tests/snapshots/src/main/generated/ujson/Transformer.scala +++ /dev/null @@ -1,29 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ -import upickle.core.Visitor -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^ reference upickle/core/Visitor. -// ^^^^^^^ reference upickle/core/Visitor# - -trait Transformer[I] { -// ^^^^^^^^^^^ definition ujson/Transformer# trait Transformer[I] -// ^ definition ujson/Transformer#[I] I - def transform[T](j: I, f: Visitor[_, T]): T -// ^^^^^^^^^ definition ujson/Transformer#transform(). def transform(j: I, f: Visitor[local0, T[): T -// ^ definition ujson/Transformer#transform().[T] T -// ^ definition ujson/Transformer#transform().(j) j: I -// ^ reference ujson/Transformer#[I] -// ^ definition ujson/Transformer#transform().(f) f: Visitor[local0, T[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/Transformer#transform().[T] -// ^ reference ujson/Transformer#transform().[T] - def transformable[T](j: I) = Readable.fromTransformer(j, this) -// ^^^^^^^^^^^^^ definition ujson/Transformer#transformable(). def transformable(j: I): fromTransformer[I] -// ^ definition ujson/Transformer#transformable().[T] T -// ^ definition ujson/Transformer#transformable().(j) j: I -// ^ reference ujson/Transformer#[I] -// ^^^^^^^^ reference ujson/Readable. -// ^^^^^^^^^^^^^^^ reference ujson/Readable.fromTransformer. -// ^ reference ujson/Transformer#transformable().(j) -} diff --git a/tests/snapshots/src/main/generated/ujson/Value.scala b/tests/snapshots/src/main/generated/ujson/Value.scala deleted file mode 100644 index 0add0b875..000000000 --- a/tests/snapshots/src/main/generated/ujson/Value.scala +++ /dev/null @@ -1,1022 +0,0 @@ -package ujson -// ^^^^^ definition ujson/ - - - -import upickle.core.Util -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^ reference upickle/core/Util. -import upickle.core.{ObjArrVisitor, Visitor} -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^^^ reference upickle/core/ObjArrVisitor# -// ^^^^^^^ reference upickle/core/Visitor. -// ^^^^^^^ reference upickle/core/Visitor# - -import upickle.core.compat._ -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^ reference upickle/core/compat/ -import scala.collection.mutable -// ^^^^^ reference scala/ -// ^^^^^^^^^^ reference scala/collection/ -// ^^^^^^^ reference scala/collection/mutable/ -import scala.collection.mutable.ArrayBuffer -// ^^^^^ reference scala/ -// ^^^^^^^^^^ reference scala/collection/ -// ^^^^^^^ reference scala/collection/mutable/ -// ^^^^^^^^^^^ reference scala/collection/mutable/ArrayBuffer. -// ^^^^^^^^^^^ reference scala/collection/mutable/ArrayBuffer# - -sealed trait Value extends Readable with geny.Writable{ -// ^^^^^ definition ujson/Value# sealed trait Value -// ^^^^^^^^ reference ujson/Readable# -// ^^^^ reference geny/ -// ^^^^^^^^ reference geny/Writable# - override def httpContentType = Some("application/json") -// ^^^^^^^^^^^^^^^ definition ujson/Value#httpContentType(). def httpContentType: Some[String] -// ^^^^ reference scala/Some. - def value: Any -// ^^^^^ definition ujson/Value#value(). def value: Any -// ^^^ reference scala/Any# - - /** - * Returns the `String` value of this [[Value]], fails if it is not - * a [[ujson.Str]] - */ - def str = this match{ -// ^^^ definition ujson/Value#str(). def str: String - case ujson.Str(value) => value -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Str. -// ^^^^^ definition local0 value: String -// ^^^^^ reference local0 - case _ => throw Value.InvalidData(this, "Expected ujson.Str") -// ^^^^^ reference ujson/Value. -// ^^^^^^^^^^^ reference ujson/Value.InvalidData. - } - - /** - * Returns an Optional `String` value of this [[Value]] in case this [[Value]] is a 'String'. - */ - def strOpt = this match{ -// ^^^^^^ definition ujson/Value#strOpt(). def strOpt: Option[String] - case Str(value) => Some(value) -// ^^^ reference ujson/Str. -// ^^^^^ definition local1 value: String -// ^^^^ reference scala/Some. -// ^^^^^ reference local1 - case _ => None -// ^^^^ reference scala/None. - } - - /** - * Returns the key/value map of this [[Value]], fails if it is not - * a [[ujson.Obj]] - */ - def obj = this match{ -// ^^^ definition ujson/Value#obj(). def obj: LinkedHashMap[String, Value] - case ujson.Obj(value) => value -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Obj. -// ^^^^^ definition local2 value: LinkedHashMap[String, Value] -// ^^^^^ reference local2 - case _ => throw Value.InvalidData(this, "Expected ujson.Obj") -// ^^^^^ reference ujson/Value. -// ^^^^^^^^^^^ reference ujson/Value.InvalidData. - } - /** - * Returns an Optional key/value map of this [[Value]] in case this [[Value]] is a 'Obj'. - */ - def objOpt = this match{ -// ^^^^^^ definition ujson/Value#objOpt(). def objOpt: Option[LinkedHashMap[String, Value]] - case Obj(value) => Some(value) -// ^^^ reference ujson/Obj. -// ^^^^^ definition local3 value: LinkedHashMap[String, Value] -// ^^^^ reference scala/Some. -// ^^^^^ reference local3 - case _ => None -// ^^^^ reference scala/None. - } - /** - * Returns the elements of this [[Value]], fails if it is not - * a [[ujson.Arr]] - */ - def arr = this match{ -// ^^^ definition ujson/Value#arr(). def arr: ArrayBuffer[Value] - case ujson.Arr(value) => value -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Arr. -// ^^^^^ definition local4 value: ArrayBuffer[Value] -// ^^^^^ reference local4 - case _ => throw Value.InvalidData(this, "Expected ujson.Arr") -// ^^^^^ reference ujson/Value. -// ^^^^^^^^^^^ reference ujson/Value.InvalidData. - } - /** - * Returns The optional elements of this [[Value]] in case this [[Value]] is a 'Arr'. - */ - def arrOpt = this match{ -// ^^^^^^ definition ujson/Value#arrOpt(). def arrOpt: Option[ArrayBuffer[Value]] - case Arr(value) => Some(value) -// ^^^ reference ujson/Arr. -// ^^^^^ definition local5 value: ArrayBuffer[Value] -// ^^^^ reference scala/Some. -// ^^^^^ reference local5 - case _ => None -// ^^^^ reference scala/None. - } - /** - * Returns the `Double` value of this [[Value]], fails if it is not - * a [[ujson.Num]] - */ - def num = this match{ -// ^^^ definition ujson/Value#num(). def num: Double - case ujson.Num(value) => value -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Num. -// ^^^^^ definition local6 value: Double -// ^^^^^ reference local6 - case _ => throw Value.InvalidData(this, "Expected ujson.Num") -// ^^^^^ reference ujson/Value. -// ^^^^^^^^^^^ reference ujson/Value.InvalidData. - } - /** - * Returns an Option[Double] in case this [[Value]] is a 'Num'. - */ - def numOpt = this match{ -// ^^^^^^ definition ujson/Value#numOpt(). def numOpt: Option[Double] - case Num(value) => Some(value) -// ^^^ reference ujson/Num. -// ^^^^^ definition local7 value: Double -// ^^^^ reference scala/Some. -// ^^^^^ reference local7 - case _ => None -// ^^^^ reference scala/None. - } - /** - * Returns the `Boolean` value of this [[Value]], fails if it is not - * a [[ujson.Bool]] - */ - def bool = this match{ -// ^^^^ definition ujson/Value#bool(). def bool: Boolean - case ujson.Bool(value) => value -// ^^^^^ reference ujson/ -// ^^^^ reference ujson/Bool. -// ^^^^^ definition local8 value: Boolean -// ^^^^^ reference local8 - case _ => throw Value.InvalidData(this, "Expected ujson.Bool") -// ^^^^^ reference ujson/Value. -// ^^^^^^^^^^^ reference ujson/Value.InvalidData. - } - /** - * Returns an Optional `Boolean` value of this [[Value]] in case this [[Value]] is a 'Bool'. - */ - def boolOpt = this match{ -// ^^^^^^^ definition ujson/Value#boolOpt(). def boolOpt: Option[Boolean] - case Bool(value) => Some(value) -// ^^^^ reference ujson/Bool. -// ^^^^^ definition local9 value: Boolean -// ^^^^ reference scala/Some. -// ^^^^^ reference local9 - case _ => None -// ^^^^ reference scala/None. - } - /** - * Returns true if the value of this [[Value]] is ujson.Null, false otherwise - */ - def isNull = this match { -// ^^^^^^ definition ujson/Value#isNull(). def isNull: Boolean - case ujson.Null => true -// ^^^^^ reference ujson/ -// ^^^^ reference ujson/Null. - case _ => false - } - - def apply(s: Value.Selector): Value = s(this) -// ^^^^^ definition ujson/Value#apply(). def apply(s: Selector): Value -// ^ definition ujson/Value#apply().(s) s: Selector -// ^^^^^ reference ujson/Value. -// ^^^^^^^^ reference ujson/Value.Selector# -// ^^^^^ reference ujson/Value# -// ^ reference ujson/Value#apply().(s) - def update(s: Value.Selector, v: Value): Unit = s(this) = v -// ^^^^^^ definition ujson/Value#update(). def update(s: Selector, v: Value): Unit -// ^ definition ujson/Value#update().(s) s: Selector -// ^^^^^ reference ujson/Value. -// ^^^^^^^^ reference ujson/Value.Selector# -// ^ definition ujson/Value#update().(v) v: Value -// ^^^^^ reference ujson/Value# -// ^^^^ reference scala/Unit# -// ^ reference ujson/Value#update().(s) -// ^ reference ujson/Value#update().(v) - - /** - * Update a value in-place. Takes an `Int` or a `String`, through the - * implicitly-constructe [[Value.Selector]] type. - * - * We cannot just overload `update` on `s: Int` and `s: String` because - * of type inference problems in Scala 2.11. - */ - def update(s: Value.Selector, f: Value => Value): Unit = s(this) = f(s(this)) -// ^^^^^^ definition ujson/Value#update(+1). def update(s: Selector, f: (Value) => Value): Unit -// ^ definition ujson/Value#update(+1).(s) s: Selector -// ^^^^^ reference ujson/Value. -// ^^^^^^^^ reference ujson/Value.Selector# -// ^ definition ujson/Value#update(+1).(f) f: (Value) => Value -// ^^^^^ reference ujson/Value# -// ^^^^^ reference ujson/Value# -// ^^^^ reference scala/Unit# -// ^ reference ujson/Value#update(+1).(s) -// ^ reference ujson/Value#update(+1).(f) -// ^ reference ujson/Value#update(+1).(s) - - def transform[T](f: Visitor[_, T]) = Value.transform(this, f) -// ^^^^^^^^^ definition ujson/Value#transform(). def transform(f: Visitor[local10, T[): T -// ^ definition ujson/Value#transform().[T] T -// ^ definition ujson/Value#transform().(f) f: Visitor[local10, T[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/Value#transform().[T] -// ^^^^^ reference ujson/Value. -// ^^^^^^^^^ reference ujson/Value.transform(). -// ^ reference ujson/Value#transform().(f) - override def toString = render() -// ^^^^^^^^ definition ujson/Value#toString(). def toString(): String -// ^^^^^^ reference ujson/Value#render(). - def render(indent: Int = -1, escapeUnicode: Boolean = false) = this.transform(StringRenderer(indent, escapeUnicode)).toString -// ^^^^^^ definition ujson/Value#render(). def render(indent: Int, escapeUnicode: Boolean): String -// ^^^^^^ definition ujson/Value#render().(indent) default indent: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^^ definition ujson/Value#render().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# -// ^^^^^^^^^ reference ujson/Value#transform(). -// ^^^^^^^^^^^^^^ reference ujson/StringRenderer. -// ^^^^^^ reference ujson/Value#render().(indent) -// ^^^^^^^^^^^^^ reference ujson/Value#render().(escapeUnicode) -// ^^^^^^^^ reference java/io/StringWriter#toString(). - - def writeBytesTo(out: java.io.OutputStream, indent: Int = -1, escapeUnicode: Boolean = false): Unit = { -// ^^^^^^^^^^^^ definition ujson/Value#writeBytesTo(). def writeBytesTo(out: OutputStream, indent: Int, escapeUnicode: Boolean): Unit -// ^^^ definition ujson/Value#writeBytesTo().(out) out: OutputStream -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^^ reference java/io/OutputStream# -// ^^^^^^ definition ujson/Value#writeBytesTo().(indent) default indent: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^^ definition ujson/Value#writeBytesTo().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# -// ^^^^ reference scala/Unit# - this.transform(new ujson.BaseByteRenderer(out, indent, escapeUnicode)) -// ^^^^^^^^^ reference ujson/Value#transform(). -// ^^^^^ reference ujson/ -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer# -// reference ujson/BaseByteRenderer#``(). -// ^^^ reference ujson/Value#writeBytesTo().(out) -// ^^^^^^ reference ujson/Value#writeBytesTo().(indent) -// ^^^^^^^^^^^^^ reference ujson/Value#writeBytesTo().(escapeUnicode) - } - def writeBytesTo(out: java.io.OutputStream): Unit = writeBytesTo(out, -1, false) -// ^^^^^^^^^^^^ definition ujson/Value#writeBytesTo(+1). def writeBytesTo(out: OutputStream): Unit -// ^^^ definition ujson/Value#writeBytesTo(+1).(out) out: OutputStream -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^^ reference java/io/OutputStream# -// ^^^^ reference scala/Unit# -// ^^^^^^^^^^^^ reference ujson/Value#writeBytesTo(). -// ^^^ reference ujson/Value#writeBytesTo(+1).(out) -} - -/** -* A very small, very simple JSON AST that uPickle uses as part of its -* serialization process. A common standard between the Jawn AST (which -* we don't use so we don't pull in the bulk of Spire) and the Javascript -* JSON AST. -*/ -object Value extends AstTransformer[Value]{ -// ^^^^^ definition ujson/Value. object Value -// ^^^^^^^^^^^^^^ reference ujson/AstTransformer# -// ^^^^^ reference ujson/Value# -// reference java/lang/Object#``(). - type Value = ujson.Value -// ^^^^^ definition ujson/Value.Value# type Value >: Value <: Value -// ^^^^^ reference ujson/ -// ^^^^^ reference ujson/Value# - sealed trait Selector{ -// ^^^^^^^^ definition ujson/Value.Selector# sealed trait Selector - def apply(x: Value): Value -// ^^^^^ definition ujson/Value.Selector#apply(). def apply(x: Value): Value -// ^ definition ujson/Value.Selector#apply().(x) x: Value -// ^^^^^ reference ujson/Value.Value# -// ^^^^^ reference ujson/Value.Value# - def update(x: Value, y: Value): Unit -// ^^^^^^ definition ujson/Value.Selector#update(). def update(x: Value, y: Value): Unit -// ^ definition ujson/Value.Selector#update().(x) x: Value -// ^^^^^ reference ujson/Value.Value# -// ^ definition ujson/Value.Selector#update().(y) y: Value -// ^^^^^ reference ujson/Value.Value# -// ^^^^ reference scala/Unit# - } - object Selector{ -// ^^^^^^^^ definition ujson/Value.Selector. object Selector - implicit class IntSelector(i: Int) extends Selector{ -// ^^^^^^^^^^^ definition ujson/Value.Selector.IntSelector# implicit class IntSelector -// definition ujson/Value.Selector.IntSelector#``(). def this(i: Int) -// ^ definition ujson/Value.Selector.IntSelector#i. private[this] val i: Int -// ^ definition ujson/Value.Selector.IntSelector#``().(i) i: Int -// ^^^ reference scala/Int# -// ^^^^^^^^ reference ujson/Value.Selector# -// reference java/lang/Object#``(). - def apply(x: Value): Value = x.arr(i) -// ^^^^^ definition ujson/Value.Selector.IntSelector#apply(). def apply(x: Value): Value -// ^ definition ujson/Value.Selector.IntSelector#apply().(x) x: Value -// ^^^^^ reference ujson/Value.Value# -// ^^^^^ reference ujson/Value.Value# -// ^ reference ujson/Value.Selector.IntSelector#apply().(x) -// ^^^ reference ujson/Value#arr(). -// ^ reference ujson/Value.Selector.IntSelector#i. - def update(x: Value, y: Value) = x.arr(i) = y -// ^^^^^^ definition ujson/Value.Selector.IntSelector#update(). def update(x: Value, y: Value): Unit -// ^ definition ujson/Value.Selector.IntSelector#update().(x) x: Value -// ^^^^^ reference ujson/Value.Value# -// ^ definition ujson/Value.Selector.IntSelector#update().(y) y: Value -// ^^^^^ reference ujson/Value.Value# -// ^ reference ujson/Value.Selector.IntSelector#update().(x) -// ^^^ reference ujson/Value#arr(). -// ^ reference ujson/Value.Selector.IntSelector#i. -// ^ reference ujson/Value.Selector.IntSelector#update().(y) - } - implicit class StringSelector(i: String) extends Selector{ -// ^^^^^^^^^^^^^^ definition ujson/Value.Selector.StringSelector# implicit class StringSelector -// definition ujson/Value.Selector.StringSelector#``(). def this(i: String) -// ^ definition ujson/Value.Selector.StringSelector#i. private[this] val i: String -// ^ definition ujson/Value.Selector.StringSelector#``().(i) i: String -// ^^^^^^ reference scala/Predef.String# -// ^^^^^^^^ reference ujson/Value.Selector# -// reference java/lang/Object#``(). - def apply(x: Value): Value = x.obj(i) -// ^^^^^ definition ujson/Value.Selector.StringSelector#apply(). def apply(x: Value): Value -// ^ definition ujson/Value.Selector.StringSelector#apply().(x) x: Value -// ^^^^^ reference ujson/Value.Value# -// ^^^^^ reference ujson/Value.Value# -// ^ reference ujson/Value.Selector.StringSelector#apply().(x) -// ^^^ reference ujson/Value#obj(). -// ^ reference ujson/Value.Selector.StringSelector#i. - def update(x: Value, y: Value) = x.obj(i) = y -// ^^^^^^ definition ujson/Value.Selector.StringSelector#update(). def update(x: Value, y: Value): Unit -// ^ definition ujson/Value.Selector.StringSelector#update().(x) x: Value -// ^^^^^ reference ujson/Value.Value# -// ^ definition ujson/Value.Selector.StringSelector#update().(y) y: Value -// ^^^^^ reference ujson/Value.Value# -// ^ reference ujson/Value.Selector.StringSelector#update().(x) -// ^^^ reference ujson/Value#obj(). -// ^ reference ujson/Value.Selector.StringSelector#i. -// ^ reference ujson/Value.Selector.StringSelector#update().(y) - } - } - - @deprecated("use ujson.Str") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - val Str = ujson.Str -// ^^^ definition ujson/Value.Str. @deprecated val Str: Str.type -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Str. - @deprecated("use ujson.Str") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - type Str = ujson.Str -// ^^^ definition ujson/Value.Str# type Str >: Str <: Str -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Str# - @deprecated("use ujson.Obj") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - val Obj = ujson.Obj -// ^^^ definition ujson/Value.Obj. @deprecated val Obj: Obj.type -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Obj. - @deprecated("use ujson.Obj") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - type Obj = ujson.Obj -// ^^^ definition ujson/Value.Obj# type Obj >: Obj <: Obj -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Obj# - @deprecated("use ujson.Arr") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - val Arr = ujson.Arr -// ^^^ definition ujson/Value.Arr. @deprecated val Arr: Arr.type -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Arr. - @deprecated("use ujson.Arr") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - type Arr = ujson.Arr -// ^^^ definition ujson/Value.Arr# type Arr >: Arr <: Arr -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Arr# - @deprecated("use ujson.Num") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - val Num = ujson.Num -// ^^^ definition ujson/Value.Num. @deprecated val Num: Num.type -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Num. - @deprecated("use ujson.Num") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - type Num = ujson.Num -// ^^^ definition ujson/Value.Num# type Num >: Num <: Num -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Num# - @deprecated("use ujson.Bool") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - val Bool = ujson.Bool -// ^^^^ definition ujson/Value.Bool. @deprecated val Bool: Bool.type -// ^^^^^ reference ujson/ -// ^^^^ reference ujson/Bool. - @deprecated("use ujson.Bool") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - type Bool = ujson.Bool -// ^^^^ definition ujson/Value.Bool# type Bool >: Bool <: Bool -// ^^^^^ reference ujson/ -// ^^^^ reference ujson/Bool# - @deprecated("use ujson.True") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - val True = ujson.True -// ^^^^ definition ujson/Value.True. @deprecated val True: True.type -// ^^^^^ reference ujson/ -// ^^^^ reference ujson/True. - @deprecated("use ujson.False") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - val False = ujson.False -// ^^^^^ definition ujson/Value.False. @deprecated val False: False.type -// ^^^^^ reference ujson/ -// ^^^^^ reference ujson/False. - @deprecated("use ujson.Null") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - val Null = ujson.Null -// ^^^^ definition ujson/Value.Null. @deprecated val Null: Null.type -// ^^^^^ reference ujson/ -// ^^^^ reference ujson/Null. - implicit def JsonableSeq[T](items: TraversableOnce[T]) -// ^^^^^^^^^^^ definition ujson/Value.JsonableSeq(). implicit def JsonableSeq(items: TraversableOnce[T])(f: (T) => Value): Arr -// ^ definition ujson/Value.JsonableSeq().[T] T -// ^^^^^ definition ujson/Value.JsonableSeq().(items) items: TraversableOnce[T] -// ^^^^^^^^^^^^^^^ reference scala/package.TraversableOnce# -// ^ reference ujson/Value.JsonableSeq().[T] - (implicit f: T => Value): Arr = Arr.from(items.map(f)) -// ^ definition ujson/Value.JsonableSeq().(f) implicit f: (T) => Value -// ^ reference ujson/Value.JsonableSeq().[T] -// ^^^^^ reference ujson/Value.Value# -// ^^^ reference ujson/Value.Arr# -// ^^^ reference ujson/Value.Arr. -// ^^^^ reference ujson/Arr.from(). -// ^^^^^ reference ujson/Value.JsonableSeq().(items) -// ^^^ reference scala/collection/IterableOnceExtensionMethods#map(). -// ^ reference ujson/Value.JsonableSeq().(f) - implicit def JsonableDict[T](items: TraversableOnce[(String, T)]) -// ^^^^^^^^^^^^ definition ujson/Value.JsonableDict(). implicit def JsonableDict(items: TraversableOnce[(String, T)])(f: (T) => Value): Obj -// ^ definition ujson/Value.JsonableDict().[T] T -// ^^^^^ definition ujson/Value.JsonableDict().(items) items: TraversableOnce[(String, T)] -// ^^^^^^^^^^^^^^^ reference scala/package.TraversableOnce# -// ^^^^^^ reference scala/Predef.String# -// ^ reference ujson/Value.JsonableDict().[T] - (implicit f: T => Value): Obj = Obj.from(items.map(x => (x._1, f(x._2)))) -// ^ definition ujson/Value.JsonableDict().(f) implicit f: (T) => Value -// ^ reference ujson/Value.JsonableDict().[T] -// ^^^^^ reference ujson/Value.Value# -// ^^^ reference ujson/Value.Obj# -// ^^^ reference ujson/Value.Obj. -// ^^^^ reference ujson/Obj.from(). -// ^^^^^ reference ujson/Value.JsonableDict().(items) -// ^^^ reference scala/collection/IterableOnceExtensionMethods#map(). -// ^ definition local11 x: (String, T) -// ^ reference local11 -// ^^ reference scala/Tuple2#_1. -// ^ reference ujson/Value.JsonableDict().(f) -// ^ reference local11 -// ^^ reference scala/Tuple2#_2. - implicit def JsonableBoolean(i: Boolean): Bool = if (i) ujson.True else ujson.False -// ^^^^^^^^^^^^^^^ definition ujson/Value.JsonableBoolean(). implicit def JsonableBoolean(i: Boolean): Bool -// ^ definition ujson/Value.JsonableBoolean().(i) i: Boolean -// ^^^^^^^ reference scala/Boolean# -// ^^^^ reference ujson/Value.Bool# -// ^ reference ujson/Value.JsonableBoolean().(i) -// ^^^^^ reference ujson/ -// ^^^^ reference ujson/True. -// ^^^^^ reference ujson/ -// ^^^^^ reference ujson/False. - implicit def JsonableByte(i: Byte): Num = Num(i) -// ^^^^^^^^^^^^ definition ujson/Value.JsonableByte(). implicit def JsonableByte(i: Byte): Num -// ^ definition ujson/Value.JsonableByte().(i) i: Byte -// ^^^^ reference scala/Byte# -// ^^^ reference ujson/Value.Num# -// ^^^ reference ujson/Value.Num. -// ^ reference scala/Byte#toDouble(). - implicit def JsonableShort(i: Short): Num = Num(i) -// ^^^^^^^^^^^^^ definition ujson/Value.JsonableShort(). implicit def JsonableShort(i: Short): Num -// ^ definition ujson/Value.JsonableShort().(i) i: Short -// ^^^^^ reference scala/Short# -// ^^^ reference ujson/Value.Num# -// ^^^ reference ujson/Value.Num. -// ^ reference scala/Short#toDouble(). - implicit def JsonableInt(i: Int): Num = Num(i) -// ^^^^^^^^^^^ definition ujson/Value.JsonableInt(). implicit def JsonableInt(i: Int): Num -// ^ definition ujson/Value.JsonableInt().(i) i: Int -// ^^^ reference scala/Int# -// ^^^ reference ujson/Value.Num# -// ^^^ reference ujson/Value.Num. -// ^ reference scala/Int#toDouble(). - implicit def JsonableLong(i: Long): Str = Str(i.toString) -// ^^^^^^^^^^^^ definition ujson/Value.JsonableLong(). implicit def JsonableLong(i: Long): Str -// ^ definition ujson/Value.JsonableLong().(i) i: Long -// ^^^^ reference scala/Long# -// ^^^ reference ujson/Value.Str# -// ^^^ reference ujson/Value.Str. -// ^ reference ujson/Value.JsonableLong().(i) -// ^^^^^^^^ reference scala/Any#toString(). - implicit def JsonableFloat(i: Float): Num = Num(i) -// ^^^^^^^^^^^^^ definition ujson/Value.JsonableFloat(). implicit def JsonableFloat(i: Float): Num -// ^ definition ujson/Value.JsonableFloat().(i) i: Float -// ^^^^^ reference scala/Float# -// ^^^ reference ujson/Value.Num# -// ^^^ reference ujson/Value.Num. -// ^ reference scala/Float#toDouble(). - implicit def JsonableDouble(i: Double): Num = Num(i) -// ^^^^^^^^^^^^^^ definition ujson/Value.JsonableDouble(). implicit def JsonableDouble(i: Double): Num -// ^ definition ujson/Value.JsonableDouble().(i) i: Double -// ^^^^^^ reference scala/Double# -// ^^^ reference ujson/Value.Num# -// ^^^ reference ujson/Value.Num. -// ^ reference ujson/Value.JsonableDouble().(i) - implicit def JsonableNull(i: Null): Null.type = Null -// ^^^^^^^^^^^^ definition ujson/Value.JsonableNull(). implicit def JsonableNull(i: Null): Null.type -// ^ definition ujson/Value.JsonableNull().(i) i: Null -// ^^^^ reference scala/Null# -// ^^^^ reference ujson/Value.Null. -// ^^^^ reference ujson/Value.Null. - implicit def JsonableString(s: CharSequence): Str = Str(s.toString) -// ^^^^^^^^^^^^^^ definition ujson/Value.JsonableString(). implicit def JsonableString(s: CharSequence): Str -// ^ definition ujson/Value.JsonableString().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^ reference ujson/Value.Str# -// ^^^ reference ujson/Value.Str. -// ^ reference ujson/Value.JsonableString().(s) -// ^^^^^^^^ reference java/lang/Object#toString(). - - - def transform[T](j: Value, f: Visitor[_, T]): T = { -// ^^^^^^^^^ definition ujson/Value.transform(). def transform(j: Value, f: Visitor[local12, T[): T -// ^ definition ujson/Value.transform().[T] T -// ^ definition ujson/Value.transform().(j) j: Value -// ^^^^^ reference ujson/Value.Value# -// ^ definition ujson/Value.transform().(f) f: Visitor[local12, T[ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/Value.transform().[T] -// ^ reference ujson/Value.transform().[T] - j match{ -// ^ reference ujson/Value.transform().(j) - case ujson.Null => f.visitNull(-1) -// ^^^^^ reference ujson/ -// ^^^^ reference ujson/Null. -// ^ reference ujson/Value.transform().(f) -// ^^^^^^^^^ reference upickle/core/Visitor#visitNull(). - case ujson.True => f.visitTrue(-1) -// ^^^^^ reference ujson/ -// ^^^^ reference ujson/True. -// ^ reference ujson/Value.transform().(f) -// ^^^^^^^^^ reference upickle/core/Visitor#visitTrue(). - case ujson.False => f.visitFalse(-1) -// ^^^^^ reference ujson/ -// ^^^^^ reference ujson/False. -// ^ reference ujson/Value.transform().(f) -// ^^^^^^^^^^ reference upickle/core/Visitor#visitFalse(). - case ujson.Str(s) => f.visitString(s, -1) -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Str. -// ^ definition local13 s: String -// ^ reference ujson/Value.transform().(f) -// ^^^^^^^^^^^ reference upickle/core/Visitor#visitString(). -// ^ reference local13 - case ujson.Num(d) => f.visitFloat64(d, -1) -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Num. -// ^ definition local14 d: Double -// ^ reference ujson/Value.transform().(f) -// ^^^^^^^^^^^^ reference upickle/core/Visitor#visitFloat64(). -// ^ reference local14 - case ujson.Arr(items) => transformArray(f, items) -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Arr. -// ^^^^^ definition local15 items: ArrayBuffer[Value] -// ^^^^^^^^^^^^^^ reference ujson/AstTransformer#transformArray(). -// ^ reference ujson/Value.transform().(f) -// ^^^^^ reference local15 - case ujson.Obj(items) => transformObject(f, items) -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Obj. -// ^^^^^ definition local16 items: LinkedHashMap[String, Value] -// ^^^^^^^^^^^^^^^ reference ujson/AstTransformer#transformObject(). -// ^ reference ujson/Value.transform().(f) -// ^^^^^ reference local16 - } - } - - def visitArray(length: Int, index: Int) = new AstArrVisitor[ArrayBuffer](xs => ujson.Arr(xs)) -// ^^^^^^^^^^ definition ujson/Value.visitArray(). def visitArray(length: Int, index: Int): AstArrVisitor[ArrayBuffer] -// ^^^^^^ definition ujson/Value.visitArray().(length) length: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/Value.visitArray().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^^ reference ujson/AstTransformer#AstArrVisitor# -// ^^^^^^^^^^^ reference scala/collection/mutable/ArrayBuffer# -// reference ujson/AstTransformer#AstArrVisitor#``(). -// ^^ definition local17 xs: ArrayBuffer[Value] -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Arr. -// ^^ reference local17 - - def visitObject(length: Int, index: Int) = new AstObjVisitor[mutable.LinkedHashMap[String, Value]](xs => ujson.Obj(xs)) -// ^^^^^^^^^^^ definition ujson/Value.visitObject(). def visitObject(length: Int, index: Int): AstObjVisitor[LinkedHashMap[String, Value]] -// ^^^^^^ definition ujson/Value.visitObject().(length) length: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/Value.visitObject().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^^ reference ujson/AstTransformer#AstObjVisitor# -// ^^^^^^^ reference scala/collection/mutable/ -// ^^^^^^^^^^^^^ reference scala/collection/mutable/LinkedHashMap# -// ^^^^^^ reference scala/Predef.String# -// ^^^^^ reference ujson/Value.Value# -// reference ujson/AstTransformer#AstObjVisitor#``(). -// ^^ definition local18 xs: LinkedHashMap[String, Value] -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Obj. -// ^^ reference local18 - - def visitNull(index: Int) = ujson.Null -// ^^^^^^^^^ definition ujson/Value.visitNull(). def visitNull(index: Int): Null -// ^^^^^ definition ujson/Value.visitNull().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^^ reference ujson/ -// ^^^^ reference ujson/Null. - - def visitFalse(index: Int) = ujson.False -// ^^^^^^^^^^ definition ujson/Value.visitFalse(). def visitFalse(index: Int): False -// ^^^^^ definition ujson/Value.visitFalse().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^^ reference ujson/ -// ^^^^^ reference ujson/False. - - def visitTrue(index: Int) = True -// ^^^^^^^^^ definition ujson/Value.visitTrue(). def visitTrue(index: Int): True -// ^^^^^ definition ujson/Value.visitTrue().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^ reference ujson/Value.True. - - - override def visitFloat64StringParts(s: CharSequence, decIndex: Int, expIndex: Int, index: Int) = { -// ^^^^^^^^^^^^^^^^^^^^^^^ definition ujson/Value.visitFloat64StringParts(). def visitFloat64StringParts(s: CharSequence, decIndex: Int, expIndex: Int, index: Int): Num -// ^ definition ujson/Value.visitFloat64StringParts().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^^^^ definition ujson/Value.visitFloat64StringParts().(decIndex) decIndex: Int -// ^^^ reference scala/Int# -// ^^^^^^^^ definition ujson/Value.visitFloat64StringParts().(expIndex) expIndex: Int -// ^^^ reference scala/Int# -// ^^^^^ definition ujson/Value.visitFloat64StringParts().(index) index: Int -// ^^^ reference scala/Int# - ujson.Num( -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Num. - if (decIndex != -1 || expIndex != -1) s.toString.toDouble -// ^^^^^^^^ reference ujson/Value.visitFloat64StringParts().(decIndex) -// ^^ reference scala/Int#`!=`(+3). -// ^^ reference scala/Boolean#`||`(). -// ^^^^^^^^ reference ujson/Value.visitFloat64StringParts().(expIndex) -// ^^ reference scala/Int#`!=`(+3). -// ^ reference ujson/Value.visitFloat64StringParts().(s) -// ^^^^^^^^ reference java/lang/Object#toString(). -// ^^^^^^^^ reference scala/collection/StringOps#toDouble(). - else Util.parseIntegralNum(s, decIndex, expIndex, index) -// ^^^^ reference upickle/core/Util. -// ^^^^^^^^^^^^^^^^ reference upickle/core/Util.parseIntegralNum(). -// ^ reference ujson/Value.visitFloat64StringParts().(s) -// ^^^^^^^^ reference ujson/Value.visitFloat64StringParts().(decIndex) -// ^^^^^^^^ reference ujson/Value.visitFloat64StringParts().(expIndex) -// ^^^^^ reference ujson/Value.visitFloat64StringParts().(index) - ) - } - - override def visitFloat64(d: Double, index: Int) = ujson.Num(d) -// ^^^^^^^^^^^^ definition ujson/Value.visitFloat64(). def visitFloat64(d: Double, index: Int): Num -// ^ definition ujson/Value.visitFloat64().(d) d: Double -// ^^^^^^ reference scala/Double# -// ^^^^^ definition ujson/Value.visitFloat64().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Num. -// ^ reference ujson/Value.visitFloat64().(d) - - def visitString(s: CharSequence, index: Int) = ujson.Str(s.toString) -// ^^^^^^^^^^^ definition ujson/Value.visitString(). def visitString(s: CharSequence, index: Int): Str -// ^ definition ujson/Value.visitString().(s) s: CharSequence -// ^^^^^^^^^^^^ reference java/lang/CharSequence# -// ^^^^^ definition ujson/Value.visitString().(index) index: Int -// ^^^ reference scala/Int# -// ^^^^^ reference ujson/ -// ^^^ reference ujson/Str. -// ^ reference ujson/Value.visitString().(s) -// ^^^^^^^^ reference java/lang/Object#toString(). - - /** - * Thrown when uPickle tries to convert a JSON blob into a given data - * structure but fails because part the blob is invalid - * - * @param data The section of the JSON blob that uPickle tried to convert. - * This could be the entire blob, or it could be some subtree. - * @param msg Human-readable text saying what went wrong - */ - case class InvalidData(data: Value, msg: String) -// ^^^^^^^^^^^ definition ujson/Value.InvalidData# case class InvalidData(data: Value, msg: String) extends Exception -// ^^^^^^^^^^^ synthetic_definition ujson/Value.InvalidData#copy(). def copy(data: Value, msg: String): InvalidData -// ^^^^^^^^^^^ definition ujson/Value.InvalidData. object InvalidData -// ^^^^^^^^^^^ synthetic_definition ujson/Value.InvalidData.apply(). def apply(data: Value, msg: String): InvalidData -// ^^^^^^^^^^^ synthetic_definition ujson/Value.InvalidData#productElementName(). def productElementName(x$1: Int): String -// ^^^^^^^^^^^ synthetic_definition ujson/Value.InvalidData#productElement(). def productElement(x$1: Int): Any -// definition ujson/Value.InvalidData#``(). def this(data: Value, msg: String) -// ^^^^ definition ujson/Value.InvalidData#data. val data: Value -// ^^^^ definition ujson/Value.InvalidData.apply().(data) data: Value -// ^^^^ definition ujson/Value.InvalidData#``().(data) data: Value -// ^^^^ definition ujson/Value.InvalidData#copy().(data) default data: Value -// ^^^^^ reference ujson/Value.Value# -// ^^^ definition ujson/Value.InvalidData#msg. val msg: String -// ^^^ definition ujson/Value.InvalidData#``().(msg) msg: String -// ^^^ definition ujson/Value.InvalidData#copy().(msg) default msg: String -// ^^^ definition ujson/Value.InvalidData.apply().(msg) msg: String -// ^^^^^^ reference scala/Predef.String# - extends Exception(s"$msg (data: $data)") -// ^^^^^^^^^ reference scala/package.Exception# -// reference java/lang/Exception#``(+1). -// ^ reference scala/StringContext#s(). -// ^^^ reference ujson/Value.InvalidData#``().(msg) -// ^^^^ reference ujson/Value.InvalidData#``().(data) -} - -case class Str(value: String) extends Value -// ^^^ definition ujson/Str# case class Str(value: String) extends Value -// ^^^ synthetic_definition ujson/Str#productElement(). def productElement(x$1: Int): Any -// ^^^ synthetic_definition ujson/Str#copy(). def copy(value: String): Str -// ^^^ definition ujson/Str. object Str -// ^^^ synthetic_definition ujson/Str#productElementName(). def productElementName(x$1: Int): String -// ^^^ synthetic_definition ujson/Str.apply(). def apply(value: String): Str -// definition ujson/Str#``(). def this(value: String) -// ^^^^^ definition ujson/Str#value. val value: String -// ^^^^^ definition ujson/Str.apply().(value) value: String -// ^^^^^ definition ujson/Str#``().(value) value: String -// ^^^^^ definition ujson/Str#copy().(value) default value: String -// ^^^^^^ reference scala/Predef.String# -// ^^^^^ reference ujson/Value# -// reference java/lang/Object#``(). -case class Obj(value: mutable.LinkedHashMap[String, Value]) extends Value -// ^^^ definition ujson/Obj# case class Obj(value: LinkedHashMap[String, Value]) extends Value -// ^^^ synthetic_definition ujson/Obj#productElementName(). def productElementName(x$1: Int): String -// ^^^ synthetic_definition ujson/Obj#productElement(). def productElement(x$1: Int): Any -// ^^^ synthetic_definition ujson/Obj#copy(). def copy(value: LinkedHashMap[String, Value]): Obj -// definition ujson/Obj#``(). def this(value: LinkedHashMap[String, Value]) -// ^^^^^ definition ujson/Obj#value. val value: LinkedHashMap[String, Value] -// ^^^^^ definition ujson/Obj.apply(+2).(value) value: LinkedHashMap[String, Value] -// ^^^^^ definition ujson/Obj#``().(value) value: LinkedHashMap[String, Value] -// ^^^^^ definition ujson/Obj#copy().(value) default value: LinkedHashMap[String, Value] -// ^^^^^^^ reference scala/collection/mutable/ -// ^^^^^^^^^^^^^ reference scala/collection/mutable/LinkedHashMap# -// ^^^^^^ reference scala/Predef.String# -// ^^^^^ reference ujson/Value# -// ^^^^^ reference ujson/Value# - -// reference java/lang/Object#``(). -object Obj{ -// ^^^ definition ujson/Obj. object Obj -// ^^^ synthetic_definition ujson/Obj.apply(+2). def apply(value: LinkedHashMap[String, Value]): Obj - implicit def from(items: TraversableOnce[(String, Value)]): Obj = { -// ^^^^ definition ujson/Obj.from(). implicit def from(items: TraversableOnce[(String, Value)]): Obj -// ^^^^^ definition ujson/Obj.from().(items) items: TraversableOnce[(String, Value)] -// ^^^^^^^^^^^^^^^ reference scala/package.TraversableOnce# -// ^^^^^^ reference scala/Predef.String# -// ^^^^^ reference ujson/Value# -// ^^^ reference ujson/Obj# - Obj(mutable.LinkedHashMap(items.toSeq:_*)) -// ^^^ reference ujson/Obj. -// ^^^^^^^ reference scala/collection/mutable/ -// ^^^^^^^^^^^^^ reference scala/collection/mutable/LinkedHashMap. -// ^^^^^ reference ujson/Obj.from().(items) -// ^^^^^ reference scala/collection/IterableOnceExtensionMethods#toSeq(). - } - // Weird telescoped version of `apply(items: (String, Value)*)`, to avoid - // type inference issues due to overloading the existing `apply` method - // generated by the case class itself - // https://github.com/lihaoyi/upickle/issues/230 - def apply[V](item: (String, V), -// ^^^^^ definition ujson/Obj.apply(). def apply(item: (String, V), items: (String, Value)*)(conv: (V) => Value): Obj -// ^ definition ujson/Obj.apply().[V] V -// ^^^^ definition ujson/Obj.apply().(item) item: (String, V) -// ^^^^^^ reference scala/Predef.String# -// ^ reference ujson/Obj.apply().[V] - items: (String, Value)*)(implicit conv: V => Value): Obj = { -// ^^^^^ definition ujson/Obj.apply().(items) items: (String, Value)* -// ^^^^^^ reference scala/Predef.String# -// ^^^^^ reference ujson/Value# -// ^^^^ definition ujson/Obj.apply().(conv) implicit conv: (V) => Value -// ^ reference ujson/Obj.apply().[V] -// ^^^^^ reference ujson/Value# -// ^^^ reference ujson/Obj# - val map = new mutable.LinkedHashMap[String, Value]() -// ^^^ definition local22 map: LinkedHashMap[String, Value] -// ^^^^^^^ reference scala/collection/mutable/ -// ^^^^^^^^^^^^^ reference scala/collection/mutable/LinkedHashMap# -// ^^^^^^ reference scala/Predef.String# -// ^^^^^ reference ujson/Value# -// reference scala/collection/mutable/LinkedHashMap#``(). - map.put(item._1, conv(item._2)) -// ^^^ reference local22 -// ^^^ reference scala/collection/mutable/LinkedHashMap#put(). -// ^^^^ reference ujson/Obj.apply().(item) -// ^^ reference scala/Tuple2#_1. -// ^^^^ reference ujson/Obj.apply().(conv) -// ^^^^ reference ujson/Obj.apply().(item) -// ^^ reference scala/Tuple2#_2. - for (i <- items) map.put(i._1, i._2) -// ^ definition local23 i: (String, Value) -// ^^^^^ reference ujson/Obj.apply().(items) -// ^^^ reference local22 -// ^^^ reference scala/collection/mutable/LinkedHashMap#put(). -// ^ reference local23 -// ^^ reference scala/Tuple2#_1. -// ^ reference local23 -// ^^ reference scala/Tuple2#_2. - Obj(map) -// ^^^ reference ujson/Obj. -// ^^^ reference local22 - } - - def apply(): Obj = Obj(new mutable.LinkedHashMap[String, Value]()) -// ^^^^^ definition ujson/Obj.apply(+1). def apply(): Obj -// ^^^ reference ujson/Obj# -// ^^^ reference ujson/Obj. -// ^^^^^^^ reference scala/collection/mutable/ -// ^^^^^^^^^^^^^ reference scala/collection/mutable/LinkedHashMap# -// ^^^^^^ reference scala/Predef.String# -// ^^^^^ reference ujson/Value# -// reference scala/collection/mutable/LinkedHashMap#``(). -} -case class Arr(value: ArrayBuffer[Value]) extends Value -// ^^^ definition ujson/Arr# case class Arr(value: ArrayBuffer[Value]) extends Value -// ^^^ synthetic_definition ujson/Arr#productElement(). def productElement(x$1: Int): Any -// ^^^ synthetic_definition ujson/Arr#productElementName(). def productElementName(x$1: Int): String -// ^^^ synthetic_definition ujson/Arr#copy(). def copy(value: ArrayBuffer[Value]): Arr -// definition ujson/Arr#``(). def this(value: ArrayBuffer[Value]) -// ^^^^^ definition ujson/Arr#value. val value: ArrayBuffer[Value] -// ^^^^^ definition ujson/Arr#``().(value) value: ArrayBuffer[Value] -// ^^^^^ definition ujson/Arr#copy().(value) default value: ArrayBuffer[Value] -// ^^^^^ definition ujson/Arr.apply(+1).(value) value: ArrayBuffer[Value] -// ^^^^^^^^^^^ reference scala/collection/mutable/ArrayBuffer# -// ^^^^^ reference ujson/Value# -// ^^^^^ reference ujson/Value# - -// reference java/lang/Object#``(). -object Arr{ -// ^^^ definition ujson/Arr. object Arr -// ^^^ synthetic_definition ujson/Arr.apply(+1). def apply(value: ArrayBuffer[Value]): Arr - implicit def from[T](items: TraversableOnce[T])(implicit conv: T => Value): Arr = { -// ^^^^ definition ujson/Arr.from(). implicit def from(items: TraversableOnce[T])(conv: (T) => Value): Arr -// ^ definition ujson/Arr.from().[T] T -// ^^^^^ definition ujson/Arr.from().(items) items: TraversableOnce[T] -// ^^^^^^^^^^^^^^^ reference scala/package.TraversableOnce# -// ^ reference ujson/Arr.from().[T] -// ^^^^ definition ujson/Arr.from().(conv) implicit conv: (T) => Value -// ^ reference ujson/Arr.from().[T] -// ^^^^^ reference ujson/Value# -// ^^^ reference ujson/Arr# - val buf = new mutable.ArrayBuffer[Value]() -// ^^^ definition local25 buf: ArrayBuffer[Value] -// ^^^^^^^ reference scala/collection/mutable/ -// ^^^^^^^^^^^ reference scala/collection/mutable/ArrayBuffer# -// ^^^^^ reference ujson/Value# -// reference scala/collection/mutable/ArrayBuffer#``(+1). - items.foreach{ item => -// ^^^^^ reference ujson/Arr.from().(items) -// ^^^^^^^ reference scala/collection/IterableOnceExtensionMethods#foreach(). -// ^^^^ definition local26 item: T - buf += (conv(item): Value) -// ^^^ reference local25 -// ^^ reference scala/collection/mutable/Growable#`+=`(). -// ^^^^ reference ujson/Arr.from().(conv) -// ^^^^ reference local26 -// ^^^^^ reference ujson/Value# - } - Arr(buf) -// ^^^ reference ujson/Arr. -// ^^^ reference local25 - } - - def apply(items: Value*): Arr = { -// ^^^^^ definition ujson/Arr.apply(). def apply(items: Value*): Arr -// ^^^^^ definition ujson/Arr.apply().(items) items: Value* -// ^^^^^ reference ujson/Value# -// ^^^ reference ujson/Arr# - val buf = new mutable.ArrayBuffer[Value](items.length) -// ^^^ definition local27 buf: ArrayBuffer[Value] -// ^^^^^^^ reference scala/collection/mutable/ -// ^^^^^^^^^^^ reference scala/collection/mutable/ArrayBuffer# -// ^^^^^ reference ujson/Value# -// reference scala/collection/mutable/ArrayBuffer#``(+2). -// ^^^^^ reference ujson/Arr.apply().(items) -// ^^^^^^ reference scala/collection/SeqOps#length(). - items.foreach{ item => -// ^^^^^ reference ujson/Arr.apply().(items) -// ^^^^^^^ reference scala/collection/IterableOnceOps#foreach(). -// ^^^^ definition local28 item: Value - buf += item -// ^^^ reference local27 -// ^^ reference scala/collection/mutable/Growable#`+=`(). -// ^^^^ reference local28 - } - Arr(buf) -// ^^^ reference ujson/Arr. -// ^^^ reference local27 - } -} -case class Num(value: Double) extends Value -// ^^^ definition ujson/Num# case class Num(value: Double) extends Value -// ^^^ synthetic_definition ujson/Num#productElement(). def productElement(x$1: Int): Any -// ^^^ synthetic_definition ujson/Num#copy(). def copy(value: Double): Num -// ^^^ synthetic_definition ujson/Num.apply(). def apply(value: Double): Num -// ^^^ synthetic_definition ujson/Num#productElementName(). def productElementName(x$1: Int): String -// ^^^ definition ujson/Num. object Num -// definition ujson/Num#``(). def this(value: Double) -// ^^^^^ definition ujson/Num#value. val value: Double -// ^^^^^ definition ujson/Num.apply().(value) value: Double -// ^^^^^ definition ujson/Num#copy().(value) default value: Double -// ^^^^^ definition ujson/Num#``().(value) value: Double -// ^^^^^^ reference scala/Double# -// ^^^^^ reference ujson/Value# -// reference java/lang/Object#``(). -sealed abstract class Bool extends Value{ -// ^^^^ definition ujson/Bool# abstract sealed class Bool -// definition ujson/Bool#``(). def this() -// ^^^^^ reference ujson/Value# -// reference java/lang/Object#``(). - def value: Boolean -// ^^^^^ definition ujson/Bool#value(). def value: Boolean -// ^^^^^^^ reference scala/Boolean# -} -object Bool{ -// ^^^^ definition ujson/Bool. object Bool - def apply(value: Boolean): Bool = if (value) True else False -// ^^^^^ definition ujson/Bool.apply(). def apply(value: Boolean): Bool -// ^^^^^ definition ujson/Bool.apply().(value) value: Boolean -// ^^^^^^^ reference scala/Boolean# -// ^^^^ reference ujson/Bool# -// ^^^^^ reference ujson/Bool.apply().(value) -// ^^^^ reference ujson/True. -// ^^^^^ reference ujson/False. - def unapply(bool: Bool): Option[Boolean] = Some(bool.value) -// ^^^^^^^ definition ujson/Bool.unapply(). def unapply(bool: Bool): Option[Boolean] -// ^^^^ definition ujson/Bool.unapply().(bool) bool: Bool -// ^^^^ reference ujson/Bool# -// ^^^^^^ reference scala/Option# -// ^^^^^^^ reference scala/Boolean# -// ^^^^ reference scala/Some. -// ^^^^ reference ujson/Bool.unapply().(bool) -// ^^^^^ reference ujson/Bool#value(). -} -case object False extends Bool{ -// ^^^^^ definition ujson/False. case object False -// ^^^^^ synthetic_definition ujson/False.productElement(). def productElement(x$1: Int): Any -// ^^^^ reference ujson/Bool# -// reference ujson/Bool#``(). - def value = false -// ^^^^^ definition ujson/False.value(). def value: Boolean -} -case object True extends Bool{ -// ^^^^ definition ujson/True. case object True -// ^^^^ synthetic_definition ujson/True.productElement(). def productElement(x$1: Int): Any -// ^^^^ reference ujson/Bool# -// reference ujson/Bool#``(). - def value = true -// ^^^^^ definition ujson/True.value(). def value: Boolean -} -case object Null extends Value{ -// ^^^^ definition ujson/Null. case object Null -// ^^^^ synthetic_definition ujson/Null.productElement(). def productElement(x$1: Int): Any -// ^^^^^ reference ujson/Value# -// reference java/lang/Object#``(). - def value = null -// ^^^^^ definition ujson/Null.value(). def value: Null -} diff --git a/tests/snapshots/src/main/generated/ujson/package.scala b/tests/snapshots/src/main/generated/ujson/package.scala deleted file mode 100644 index e85c765ed..000000000 --- a/tests/snapshots/src/main/generated/ujson/package.scala +++ /dev/null @@ -1,302 +0,0 @@ -import upickle.core.NoOpVisitor -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^ reference upickle/core/NoOpVisitor. - -package object ujson{ -// ^^^^^ definition ujson/package. package object ujson - def transform[T](t: Readable, v: upickle.core.Visitor[_, T]) = t.transform(v) -// ^^^^^^^^^ definition ujson/package.transform(). def transform(t: Readable, v: Visitor[local0, T[): T -// ^ definition ujson/package.transform().[T] T -// ^ definition ujson/package.transform().(t) t: Readable -// ^^^^^^^^ reference ujson/Readable# -// ^ definition ujson/package.transform().(v) v: Visitor[local0, T[ -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^ reference upickle/core/Visitor# -// ^ reference ujson/package.transform().[T] -// ^ reference ujson/package.transform().(t) -// ^^^^^^^^^ reference ujson/Readable#transform(). -// ^ reference ujson/package.transform().(v) - - /** - * Read the given JSON input as a JSON struct - */ - def read(s: Readable, trace: Boolean = false): Value.Value = -// ^^^^ definition ujson/package.read(). def read(s: Readable, trace: Boolean): Value -// ^ definition ujson/package.read().(s) s: Readable -// ^^^^^^^^ reference ujson/Readable# -// ^^^^^ definition ujson/package.read().(trace) default trace: Boolean -// ^^^^^^^ reference scala/Boolean# -// ^^^^^ reference ujson/Value. -// ^^^^^ reference ujson/Value.Value# - upickle.core.TraceVisitor.withTrace(trace, Value)(transform(s, _)) -// ^^^^^^^ reference upickle/ -// ^^^^ reference upickle/core/ -// ^^^^^^^^^^^^ reference upickle/core/TraceVisitor. -// ^^^^^^^^^ reference upickle/core/TraceVisitor.withTrace(). -// ^^^^^ reference ujson/package.read().(trace) -// ^^^^^ reference ujson/Value. -// ^^^^^^^^^ reference ujson/package.transform(). -// ^ reference ujson/package.read().(s) - - def copy(t: Value.Value): Value.Value = transform(t, Value) -// ^^^^ definition ujson/package.copy(). def copy(t: Value): Value -// ^ definition ujson/package.copy().(t) t: Value -// ^^^^^ reference ujson/Value. -// ^^^^^ reference ujson/Value.Value# -// ^^^^^ reference ujson/Value. -// ^^^^^ reference ujson/Value.Value# -// ^^^^^^^^^ reference ujson/package.transform(). -// ^ reference ujson/package.copy().(t) -// ^^^^^ reference ujson/Value. - - /** - * Write the given JSON struct as a JSON String - */ - def write(t: Value.Value, -// ^^^^^ definition ujson/package.write(). def write(t: Value, indent: Int, escapeUnicode: Boolean): String -// ^ definition ujson/package.write().(t) t: Value -// ^^^^^ reference ujson/Value. -// ^^^^^ reference ujson/Value.Value# - indent: Int = -1, -// ^^^^^^ definition ujson/package.write().(indent) default indent: Int -// ^^^ reference scala/Int# - escapeUnicode: Boolean = false): String = { -// ^^^^^^^^^^^^^ definition ujson/package.write().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# -// ^^^^^^ reference scala/Predef.String# - val writer = new java.io.StringWriter -// ^^^^^^ definition local1 writer: StringWriter -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^^ reference java/io/StringWriter# -// reference java/io/StringWriter#``(). - writeTo(t, writer, indent, escapeUnicode) -// ^^^^^^^ reference ujson/package.writeTo(). -// ^ reference ujson/package.write().(t) -// ^^^^^^ reference local1 -// ^^^^^^ reference ujson/package.write().(indent) -// ^^^^^^^^^^^^^ reference ujson/package.write().(escapeUnicode) - writer.toString -// ^^^^^^ reference local1 -// ^^^^^^^^ reference java/io/StringWriter#toString(). - } - - /** - * Write the given JSON struct as a JSON String to the given Writer - */ - def writeTo(t: Value.Value, -// ^^^^^^^ definition ujson/package.writeTo(). def writeTo(t: Value, out: Writer, indent: Int, escapeUnicode: Boolean): Unit -// ^ definition ujson/package.writeTo().(t) t: Value -// ^^^^^ reference ujson/Value. -// ^^^^^ reference ujson/Value.Value# - out: java.io.Writer, -// ^^^ definition ujson/package.writeTo().(out) out: Writer -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^ reference java/io/Writer# - indent: Int = -1, -// ^^^^^^ definition ujson/package.writeTo().(indent) default indent: Int -// ^^^ reference scala/Int# - escapeUnicode: Boolean = false): Unit = { -// ^^^^^^^^^^^^^ definition ujson/package.writeTo().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# -// ^^^^ reference scala/Unit# - transform(t, Renderer(out, indent, escapeUnicode)) -// ^^^^^^^^^ reference ujson/package.transform(). -// ^ reference ujson/package.writeTo().(t) -// ^^^^^^^^ reference ujson/Renderer. -// ^^^ reference ujson/package.writeTo().(out) -// ^^^^^^ reference ujson/package.writeTo().(indent) -// ^^^^^^^^^^^^^ reference ujson/package.writeTo().(escapeUnicode) - } - def writeToOutputStream(t: Value.Value, -// ^^^^^^^^^^^^^^^^^^^ definition ujson/package.writeToOutputStream(). def writeToOutputStream(t: Value, out: OutputStream, indent: Int, escapeUnicode: Boolean): Unit -// ^ definition ujson/package.writeToOutputStream().(t) t: Value -// ^^^^^ reference ujson/Value. -// ^^^^^ reference ujson/Value.Value# - out: java.io.OutputStream, -// ^^^ definition ujson/package.writeToOutputStream().(out) out: OutputStream -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^^ reference java/io/OutputStream# - indent: Int = -1, -// ^^^^^^ definition ujson/package.writeToOutputStream().(indent) default indent: Int -// ^^^ reference scala/Int# - escapeUnicode: Boolean = false): Unit = { -// ^^^^^^^^^^^^^ definition ujson/package.writeToOutputStream().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# -// ^^^^ reference scala/Unit# - transform(t, new BaseByteRenderer(out, indent, escapeUnicode)) -// ^^^^^^^^^ reference ujson/package.transform(). -// ^ reference ujson/package.writeToOutputStream().(t) -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer# -// reference ujson/BaseByteRenderer#``(). -// ^^^ reference ujson/package.writeToOutputStream().(out) -// ^^^^^^ reference ujson/package.writeToOutputStream().(indent) -// ^^^^^^^^^^^^^ reference ujson/package.writeToOutputStream().(escapeUnicode) - } - - def writeToByteArray(t: Value.Value, -// ^^^^^^^^^^^^^^^^ definition ujson/package.writeToByteArray(). def writeToByteArray(t: Value, indent: Int, escapeUnicode: Boolean): Array[Byte] -// ^ definition ujson/package.writeToByteArray().(t) t: Value -// ^^^^^ reference ujson/Value. -// ^^^^^ reference ujson/Value.Value# - indent: Int = -1, -// ^^^^^^ definition ujson/package.writeToByteArray().(indent) default indent: Int -// ^^^ reference scala/Int# - escapeUnicode: Boolean = false) = { -// ^^^^^^^^^^^^^ definition ujson/package.writeToByteArray().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# - val baos = new java.io.ByteArrayOutputStream -// ^^^^ definition local2 baos: ByteArrayOutputStream -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^^^^^^^^^^^ reference java/io/ByteArrayOutputStream# -// reference java/io/ByteArrayOutputStream#``(). - writeToOutputStream(t, baos, indent, escapeUnicode) -// ^^^^^^^^^^^^^^^^^^^ reference ujson/package.writeToOutputStream(). -// ^ reference ujson/package.writeToByteArray().(t) -// ^^^^ reference local2 -// ^^^^^^ reference ujson/package.writeToByteArray().(indent) -// ^^^^^^^^^^^^^ reference ujson/package.writeToByteArray().(escapeUnicode) - baos.toByteArray -// ^^^^ reference local2 -// ^^^^^^^^^^^ reference java/io/ByteArrayOutputStream#toByteArray(). - } - - /** - * Parse the given JSON input, failing if it is invalid - */ - def validate(s: Readable): Unit = transform(s, NoOpVisitor) -// ^^^^^^^^ definition ujson/package.validate(). def validate(s: Readable): Unit -// ^ definition ujson/package.validate().(s) s: Readable -// ^^^^^^^^ reference ujson/Readable# -// ^^^^ reference scala/Unit# -// ^^^^^^^^^ reference ujson/package.transform(). -// ^ reference ujson/package.validate().(s) -// ^^^^^^^^^^^ reference upickle/core/NoOpVisitor. - /** - * Parse the given JSON input and write it to a string with - * the configured formatting - */ - def reformat(s: Readable, indent: Int = -1, escapeUnicode: Boolean = false): String = { -// ^^^^^^^^ definition ujson/package.reformat(). def reformat(s: Readable, indent: Int, escapeUnicode: Boolean): String -// ^ definition ujson/package.reformat().(s) s: Readable -// ^^^^^^^^ reference ujson/Readable# -// ^^^^^^ definition ujson/package.reformat().(indent) default indent: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^^ definition ujson/package.reformat().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# -// ^^^^^^ reference scala/Predef.String# - val writer = new java.io.StringWriter() -// ^^^^^^ definition local3 writer: StringWriter -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^^ reference java/io/StringWriter# -// reference java/io/StringWriter#``(). - reformatTo(s, writer, indent, escapeUnicode) -// ^^^^^^^^^^ reference ujson/package.reformatTo(). -// ^ reference ujson/package.reformat().(s) -// ^^^^^^ reference local3 -// ^^^^^^ reference ujson/package.reformat().(indent) -// ^^^^^^^^^^^^^ reference ujson/package.reformat().(escapeUnicode) - writer.toString -// ^^^^^^ reference local3 -// ^^^^^^^^ reference java/io/StringWriter#toString(). - } - /** - * Parse the given JSON input and write it to a string with - * the configured formatting to the given Writer - */ - def reformatTo(s: Readable, out: java.io.Writer, indent: Int = -1, escapeUnicode: Boolean = false): Unit = { -// ^^^^^^^^^^ definition ujson/package.reformatTo(). def reformatTo(s: Readable, out: Writer, indent: Int, escapeUnicode: Boolean): Unit -// ^ definition ujson/package.reformatTo().(s) s: Readable -// ^^^^^^^^ reference ujson/Readable# -// ^^^ definition ujson/package.reformatTo().(out) out: Writer -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^ reference java/io/Writer# -// ^^^^^^ definition ujson/package.reformatTo().(indent) default indent: Int -// ^^^ reference scala/Int# -// ^^^^^^^^^^^^^ definition ujson/package.reformatTo().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# -// ^^^^ reference scala/Unit# - transform(s, Renderer(out, indent, escapeUnicode)) -// ^^^^^^^^^ reference ujson/package.transform(). -// ^ reference ujson/package.reformatTo().(s) -// ^^^^^^^^ reference ujson/Renderer. -// ^^^ reference ujson/package.reformatTo().(out) -// ^^^^^^ reference ujson/package.reformatTo().(indent) -// ^^^^^^^^^^^^^ reference ujson/package.reformatTo().(escapeUnicode) - } - /** - * Parse the given JSON input and write it to a string with - * the configured formatting to the given Writer - */ - def reformatToOutputStream(s: Readable, -// ^^^^^^^^^^^^^^^^^^^^^^ definition ujson/package.reformatToOutputStream(). def reformatToOutputStream(s: Readable, out: OutputStream, indent: Int, escapeUnicode: Boolean): Unit -// ^ definition ujson/package.reformatToOutputStream().(s) s: Readable -// ^^^^^^^^ reference ujson/Readable# - out: java.io.OutputStream, -// ^^^ definition ujson/package.reformatToOutputStream().(out) out: OutputStream -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^^ reference java/io/OutputStream# - indent: Int = -1, -// ^^^^^^ definition ujson/package.reformatToOutputStream().(indent) default indent: Int -// ^^^ reference scala/Int# - escapeUnicode: Boolean = false): Unit = { -// ^^^^^^^^^^^^^ definition ujson/package.reformatToOutputStream().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# -// ^^^^ reference scala/Unit# - transform(s, new BaseByteRenderer(out, indent, escapeUnicode)) -// ^^^^^^^^^ reference ujson/package.transform(). -// ^ reference ujson/package.reformatToOutputStream().(s) -// ^^^^^^^^^^^^^^^^ reference ujson/BaseByteRenderer# -// reference ujson/BaseByteRenderer#``(). -// ^^^ reference ujson/package.reformatToOutputStream().(out) -// ^^^^^^ reference ujson/package.reformatToOutputStream().(indent) -// ^^^^^^^^^^^^^ reference ujson/package.reformatToOutputStream().(escapeUnicode) - } - def reformatToByteArray(s: Readable, -// ^^^^^^^^^^^^^^^^^^^ definition ujson/package.reformatToByteArray(). def reformatToByteArray(s: Readable, indent: Int, escapeUnicode: Boolean): Array[Byte] -// ^ definition ujson/package.reformatToByteArray().(s) s: Readable -// ^^^^^^^^ reference ujson/Readable# - indent: Int = -1, -// ^^^^^^ definition ujson/package.reformatToByteArray().(indent) default indent: Int -// ^^^ reference scala/Int# - escapeUnicode: Boolean = false) = { -// ^^^^^^^^^^^^^ definition ujson/package.reformatToByteArray().(escapeUnicode) default escapeUnicode: Boolean -// ^^^^^^^ reference scala/Boolean# - val baos = new java.io.ByteArrayOutputStream -// ^^^^ definition local4 baos: ByteArrayOutputStream -// ^^^^ reference java/ -// ^^ reference java/io/ -// ^^^^^^^^^^^^^^^^^^^^^ reference java/io/ByteArrayOutputStream# -// reference java/io/ByteArrayOutputStream#``(). - reformatToOutputStream(s, baos, indent, escapeUnicode) -// ^^^^^^^^^^^^^^^^^^^^^^ reference ujson/package.reformatToOutputStream(). -// ^ reference ujson/package.reformatToByteArray().(s) -// ^^^^ reference local4 -// ^^^^^^ reference ujson/package.reformatToByteArray().(indent) -// ^^^^^^^^^^^^^ reference ujson/package.reformatToByteArray().(escapeUnicode) - baos.toByteArray -// ^^^^ reference local4 -// ^^^^^^^^^^^ reference java/io/ByteArrayOutputStream#toByteArray(). - } - // End ujson - @deprecated("use ujson.Value") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - type Js = Value -// ^^ definition ujson/package.Js# type Js >: Value <: Value -// ^^^^^ reference ujson/Value# - @deprecated("use ujson.Value") -// ^^^^^^^^^^ reference scala/deprecated# -// reference scala/deprecated#``(). - val Js = Value -// ^^ definition ujson/package.Js. @deprecated val Js: -// ^^^^^ reference ujson/Value. -} diff --git a/tests/snapshots/src/main/scala/tests/LibrarySnapshotGenerator.scala b/tests/snapshots/src/main/scala/tests/LibrarySnapshotGenerator.scala index 0d6e2de4a..bcdbd8ec6 100644 --- a/tests/snapshots/src/main/scala/tests/LibrarySnapshotGenerator.scala +++ b/tests/snapshots/src/main/scala/tests/LibrarySnapshotGenerator.scala @@ -64,6 +64,7 @@ class LibrarySnapshotGenerator extends SnapshotGenerator { ) ++ providedArguments ) val root = snapshotDir.toFile().listFiles().head.toPath() + pprint.log(root) Files.walkFileTree( root, new SimpleFileVisitor[Path] { @@ -71,9 +72,11 @@ class LibrarySnapshotGenerator extends SnapshotGenerator { file: Path, attrs: BasicFileAttributes ): FileVisitResult = { + pprint.log(file) val print = new String(Files.readAllBytes(file), StandardCharsets.UTF_8) val out = context.expectDirectory.resolve(root.relativize(file)) + pprint.log(out) handler.onSnapshotTest(context, out, () => print) super.visitFile(file, attrs) } diff --git a/tests/snapshots/src/main/scala/tests/MinimizedscipSnapshotGenerator.scala b/tests/snapshots/src/main/scala/tests/MinimizedSnapshotLsifGenerator.scala similarity index 98% rename from tests/snapshots/src/main/scala/tests/MinimizedscipSnapshotGenerator.scala rename to tests/snapshots/src/main/scala/tests/MinimizedSnapshotLsifGenerator.scala index 69fb4e063..d9088b44f 100644 --- a/tests/snapshots/src/main/scala/tests/MinimizedscipSnapshotGenerator.scala +++ b/tests/snapshots/src/main/scala/tests/MinimizedSnapshotLsifGenerator.scala @@ -13,7 +13,7 @@ import com.sourcegraph.scip_java.ScipJava import munit.internal.console.AnsiColors import munit.internal.difflib.Diffs -class MinimizedScipSnapshotGenerator extends SnapshotGenerator { +class MinimizedSnapshotLsifGenerator extends SnapshotGenerator { def run(args: List[String]): Unit = { val exit = ScipJava.app.run(args) require(exit == 0) diff --git a/tests/snapshots/src/main/scala/tests/MinimizedSnapshotScipGenerator.scala b/tests/snapshots/src/main/scala/tests/MinimizedSnapshotScipGenerator.scala new file mode 100644 index 000000000..9a9b77d2c --- /dev/null +++ b/tests/snapshots/src/main/scala/tests/MinimizedSnapshotScipGenerator.scala @@ -0,0 +1,92 @@ +package tests + +import com.sourcegraph.Scip.Index +import com.sourcegraph.io.DeleteVisitor +import com.sourcegraph.scip_java.{ScipJava, ScipPrinters} +import munit.internal.console.AnsiColors +import munit.internal.difflib.Diffs + +import java.net.URI +import java.nio.charset.StandardCharsets +import java.nio.file.{Files, Paths} +import scala.collection.mutable.ListBuffer +import scala.jdk.CollectionConverters.CollectionHasAsScala +import scala.meta.internal.io.FileIO +import scala.meta.io.AbsolutePath + +class MinimizedSnapshotScipGenerator extends SnapshotGenerator { + def run(args: List[String]): Unit = { + val exit = ScipJava.app.run(args) + require(exit == 0) + } + def onFinished(context: SnapshotContext): Unit = () + override def run(context: SnapshotContext, handler: SnapshotHandler): Unit = { + onTargetroot( + context, + handler, + AbsolutePath(BuildInfo.minimizedJavaTargetroot), + AbsolutePath(BuildInfo.minimizedJavaSourceDirectory) + ) + onTargetroot( + context, + handler, + AbsolutePath(BuildInfo.minimizedScalaTargetroot), + AbsolutePath(BuildInfo.minimizedScalaSourceDirectory) + ) + } + def onTargetroot( + context: SnapshotContext, + handler: SnapshotHandler, + targetroot: AbsolutePath, + sourceDirectory: AbsolutePath + ): Unit = { + val sourceroot = AbsolutePath(BuildInfo.sourceroot) + val scipOutput = Files + .createTempDirectory("scip-java") + .resolve("index.scip") + val snapshotOutput = AbsolutePath(Files.createTempDirectory("scip-java")) + try { + run( + List( + "index-semanticdb", + "--cwd", + sourceroot.toString(), + "--output", + scipOutput.toString, + "--targetroot", + targetroot.toString() + ) + ) + val index = Index.parseFrom(Files.readAllBytes(scipOutput)) + try { + index + .getDocumentsList + .asScala + .foreach { document => + val expectOutput = context + .expectDirectory + .resolve("scip") + .resolve(Paths.get(document.getRelativePath)) + handler.onSnapshotTest( + context, + expectOutput, + () => { + val uri = URI.create( + List( + index.getMetadata.getProjectRoot.stripSuffix("/"), + document.getRelativePath + ).mkString("/") + ) + val absolutePath = AbsolutePath(Paths.get(uri)) + val text = FileIO.slurp(absolutePath, StandardCharsets.UTF_8) + ScipPrinters.printTextDocument(document, text) + } + ) + } + } finally { + Files.walkFileTree(scipOutput, new DeleteVisitor()) + Files.walkFileTree(snapshotOutput.toNIO, new DeleteVisitor()) + } + } + } +} diff --git a/tests/snapshots/src/main/scala/tests/MinimizedSnapshotGenerator.scala b/tests/snapshots/src/main/scala/tests/MinimizedSnapshotSemanticdbGenerator.scala similarity index 92% rename from tests/snapshots/src/main/scala/tests/MinimizedSnapshotGenerator.scala rename to tests/snapshots/src/main/scala/tests/MinimizedSnapshotSemanticdbGenerator.scala index 20706e788..5f2f79cd5 100644 --- a/tests/snapshots/src/main/scala/tests/MinimizedSnapshotGenerator.scala +++ b/tests/snapshots/src/main/scala/tests/MinimizedSnapshotSemanticdbGenerator.scala @@ -5,7 +5,7 @@ import scala.meta.io.AbsolutePath import com.sourcegraph.scip_java.SemanticdbPrinters import com.sourcegraph.scip_semanticdb.ScipTextDocument -class MinimizedSnapshotGenerator extends SnapshotGenerator { +class MinimizedSnapshotSemanticdbGenerator extends SnapshotGenerator { override def run(context: SnapshotContext, handler: SnapshotHandler): Unit = { val sourceroot = AbsolutePath(BuildInfo.sourceroot) val fromJavac = SemanticdbFile.fromDirectory( @@ -28,6 +28,7 @@ class MinimizedSnapshotGenerator extends SnapshotGenerator { .resolve(relativeToSourceDirectory.toNIO) val doc = ScipTextDocument .manifestOccurrencesForSyntheticSymbols(file.textDocument) + pprint.log(expectOutput) handler.onSnapshotTest( context, expectOutput, diff --git a/tests/snapshots/src/main/scala/tests/SemanticdbJavacSnapshotGenerator.scala b/tests/snapshots/src/main/scala/tests/SemanticdbJavacSnapshotGenerator.scala index a56c94173..663693d02 100644 --- a/tests/snapshots/src/main/scala/tests/SemanticdbJavacSnapshotGenerator.scala +++ b/tests/snapshots/src/main/scala/tests/SemanticdbJavacSnapshotGenerator.scala @@ -4,8 +4,9 @@ object SemanticdbJavacSnapshotGenerator extends AggregateSnapshotGenerator( List( new LibrarySnapshotGenerator(), - new MinimizedSnapshotGenerator(), - new MinimizedScipSnapshotGenerator(), + new MinimizedSnapshotSemanticdbGenerator(), + new MinimizedSnapshotScipGenerator(), + new MinimizedSnapshotLsifGenerator(), new ScipGraphSnapshotGenerator() ) ) diff --git a/tests/snapshots/src/test/scala/tests/SnapshotSuite.scala b/tests/snapshots/src/test/scala/tests/SnapshotSuite.scala index 4ae7cebf6..86921eb60 100644 --- a/tests/snapshots/src/test/scala/tests/SnapshotSuite.scala +++ b/tests/snapshots/src/test/scala/tests/SnapshotSuite.scala @@ -13,11 +13,14 @@ abstract class SnapshotSuite(generator: SnapshotGenerator) class LibrarySnapshotSuite extends SnapshotSuite(new LibrarySnapshotGenerator) -class MinimizedSnapshotSuite - extends SnapshotSuite(new MinimizedSnapshotGenerator) +class MinimizedSnapshotSemanticdbSuite + extends SnapshotSuite(new MinimizedSnapshotSemanticdbGenerator) -class MinimizedScipSnapshotSuite - extends SnapshotSuite(new MinimizedScipSnapshotGenerator) +class MinimizedSnapshotScipSuite + extends SnapshotSuite(new MinimizedSnapshotScipGenerator) + +class MinimizedSnapshotLsifSuite + extends SnapshotSuite(new MinimizedSnapshotLsifGenerator) class ScipGraphSnapshotSuite extends SnapshotSuite(new ScipGraphSnapshotGenerator)