Skip to content

Commit 838eb4c

Browse files
authoredMar 1, 2025··
Revert breaking signature change: ProtoEncoder (#283)
In #278 I overeagerly changed the type signature of ProtoEncoder from 4 type parameters to 3. Turns out, this can break existing code. Having an unused type param is no big deal, so I'm fine with reintroducing it just for back-compat.
1 parent 8b98c4d commit 838eb4c

File tree

6 files changed

+14
-7
lines changed

6 files changed

+14
-7
lines changed
 

‎core/src/main/scala/eu/ostrzyciel/jelly/core/ConverterFactory.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ trait ConverterFactory[
4343
]:
4444
import ConverterFactory.*
4545

46-
final type TEncoder = ProtoEncoder[TNode, TTriple, TQuad]
46+
final type TEncoder = ProtoEncoder[TNode, TTriple, TQuad, ?]
4747
final type NsHandler = NamespaceHandler[TNode]
4848
final val defaultNsHandler: NsHandler = (_, _) => ()
4949

‎core/src/main/scala/eu/ostrzyciel/jelly/core/ProtoEncoder.scala

+8-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,14 @@ object ProtoEncoder:
2626
maybeRowBuffer: Option[mutable.Buffer[RdfStreamRow]] = None,
2727
)
2828

29-
trait ProtoEncoder[TNode, -TTriple, -TQuad]
29+
/**
30+
* Base trait for RDF stream encoders.
31+
* @tparam TNode type of RDF nodes in the library
32+
* @tparam TTriple type of triple statements in the library
33+
* @tparam TQuad type of quad statements in the library
34+
* @tparam TQuoted Unused since 2.7.0. Can be set to `Nothing` or `?`.
35+
*/
36+
trait ProtoEncoder[TNode, -TTriple, -TQuad, -TQuoted]
3037
extends ProtoEncoderBase[TNode, TTriple, TQuad] with RowBufferAppender:
3138

3239
/**

‎core/src/main/scala/eu/ostrzyciel/jelly/core/internal/ProtoEncoderImpl.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ private[core] object ProtoEncoderImpl:
2323
private[core] final class ProtoEncoderImpl[TNode, -TTriple, -TQuad](
2424
protected val converter: ProtoEncoderConverter[TNode, TTriple, TQuad],
2525
params: ProtoEncoder.Params,
26-
) extends ProtoEncoder[TNode, TTriple, TQuad]:
26+
) extends ProtoEncoder[TNode, TTriple, TQuad, ?]:
2727

2828
import ProtoEncoderImpl.*
2929

‎jena/src/main/scala/eu/ostrzyciel/jelly/convert/jena/JenaProtoEncoder.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ import org.apache.jena.sparql.core.Quad
77
/**
88
* Type alias for Jena-specific proto encoder, for convenience and backward compatibility.
99
*/
10-
type JenaProtoEncoder = ProtoEncoder[Node, Triple, Quad]
10+
type JenaProtoEncoder = ProtoEncoder[Node, Triple, Quad, ?]

‎rdf4j/src/main/scala/eu/ostrzyciel/jelly/convert/rdf4j/Rdf4jProtoEncoder.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ import org.eclipse.rdf4j.model.{Statement, Value}
66
/**
77
* Type alias for RDF4J-specific proto encoder, for convenience and backward compatibility.
88
*/
9-
type Rdf4jProtoEncoder = ProtoEncoder[Value, Statement, Statement]
9+
type Rdf4jProtoEncoder = ProtoEncoder[Value, Statement, Statement, ?]

‎stream/src/main/scala/eu/ostrzyciel/jelly/stream/impl/EncoderFlowBuilder.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ final class EncoderFlowBuilderImpl[TNode, TTriple, TQuad]
4949
(using factory: ConverterFactory[?, ?, TNode, ?, TTriple, TQuad]):
5050
import ProtoEncoder.Params
5151

52-
private type TEncoder = ProtoEncoder[TNode, TTriple, TQuad]
52+
private type TEncoder = ProtoEncoder[TNode, TTriple, TQuad, ?]
5353

5454
private val emptyParams = Params(null)
5555

@@ -394,7 +394,7 @@ final class EncoderFlowBuilderImpl[TNode, TTriple, TQuad]
394394
logicalType = if opt.logicalType.isUnspecified then lst else opt.logicalType
395395
)
396396

397-
private def graphAsIterable[TEncoder <: ProtoEncoder[TNode, TTriple, ?]](encoder: TEncoder):
397+
private def graphAsIterable[TEncoder <: ProtoEncoder[TNode, TTriple, ?, ?]](encoder: TEncoder):
398398
((TNode, Iterable[TTriple])) => Iterable[RdfStreamRow] =
399399
(graphName: TNode, triples: Iterable[TTriple]) =>
400400
encoder.startGraph(graphName)

0 commit comments

Comments
 (0)
Please sign in to comment.