File tree 3 files changed +10
-34
lines changed 3 files changed +10
-34
lines changed Original file line number Diff line number Diff line change @@ -12,31 +12,21 @@ trait RDF:
12
12
13
13
type R = rdf.type
14
14
15
- type rNode <: Matchable
16
- type rURI <: rNode
17
- type Node <: rNode
18
- type URI <: Node & rURI
15
+ type Node <: Matchable
16
+ type URI <: Node
19
17
20
18
given rops : ROps [R ]
21
-
22
19
end RDF
23
20
24
21
object RDF :
25
- type rNode [R <: RDF ] <: Matchable = R match
26
- case GetRelNode [n] => n & Matchable
27
-
28
- type rURI [R <: RDF ] <: rNode[R ] = R match
29
- case GetRelURI [n] => n & rNode[R ]
30
-
31
- type Node [R <: RDF ] <: rNode[R ] = R match
32
- case GetNode [n] => n & rNode[R ]
22
+
23
+ type Node [R <: RDF ] = R match
24
+ case GetNode [n] => n
33
25
34
26
type URI [R <: RDF ] <: Node [R ] = R match
35
- case GetURI [u] => u & Node [R ] & rURI[ R ]
27
+ case GetURI [u] => u & Node [R ]
36
28
37
- private type GetRelNode [N <: Matchable ] = RDF { type rNode = N }
38
29
private type GetNode [N ] = RDF { type Node = N }
39
- private type GetRelURI [U ] = RDF { type rURI = U }
40
30
private type GetURI [U ] = RDF { type URI = U }
41
31
42
32
end RDF
Original file line number Diff line number Diff line change @@ -10,35 +10,23 @@ object ClassTypes {
10
10
def value : String
11
11
12
12
abstract class Uri extends Node
13
- abstract class BNode extends Node
14
- abstract class Lit extends Node
15
13
16
14
trait IFactory :
17
- def mkBNode (): BNode
18
15
def mkUri (u : String ): Uri
19
- def mkLit (u : String ): Lit
20
16
21
17
def getFactory : IFactory = AFactory
22
18
23
19
private object AFactory extends IFactory :
24
- var bnode : Int = 0
25
- def mkBNode (): BNode =
26
- bnode = bnode + 1
27
- new BNode { def value = bnode.toString }
28
20
def mkUri (u : String ): Uri =
29
21
new Uri { def value = u }
30
- def mkLit (u : String ): Lit =
31
- new Lit { def value = u }
32
22
}
33
23
34
24
object ClassRDF extends generic.RDF :
35
25
import class_based .ClassTypes as cz
36
26
import generic .*
37
27
38
- override opaque type rNode <: Matchable = cz.Node
39
- override opaque type rURI <: rNode = cz.Uri
40
- override opaque type Node <: rNode = cz.Node
41
- override opaque type URI <: Node & rURI = cz.Uri
28
+ override opaque type Node <: Matchable = cz.Node
29
+ override opaque type URI <: Node = cz.Uri
42
30
43
31
given rops : generic.ROps [R ] with
44
32
override def mkUri (str : String ): Try [RDF .URI [R ]] = Try (
Original file line number Diff line number Diff line change @@ -8,10 +8,8 @@ import generic.*
8
8
// todo, put back example using traits only to see if Java is the problem
9
9
object TraitBasedRDF extends RDF :
10
10
lazy val factory : rdfscala.ScalaMkNodes = rdfscala.SimpleScalaNodeFactory
11
- override opaque type rNode <: Matchable = rdfscala.TstNode
12
- override opaque type rURI <: rNode = rdfscala.URI
13
- override opaque type Node <: rNode = rdfscala.TstNode
14
- override opaque type URI <: Node & rURI = rdfscala.URI
11
+ override opaque type Node <: Matchable = rdfscala.TstNode
12
+ override opaque type URI <: Node = rdfscala.URI
15
13
16
14
given rops : ROps [R ] with
17
15
override def mkUri (str : String ): Try [RDF .URI [R ]] = Try (
You can’t perform that action at this time.
0 commit comments