You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by bb...@apache.org on 2011/06/22 21:59:49 UTC
svn commit: r1138602 - in
/incubator/clerezza/trunk/parent/rdf.scala.utils/src:
main/scala/org/apache/clerezza/rdf/scala/utils/EasyGraph.scala
test/scala/org/apache/clerezza/rdf/scala/utils/EasyGraphTest.scala
Author: bblfish
Date: Wed Jun 22 19:59:49 2011
New Revision: 1138602
URL: http://svn.apache.org/viewvc?rev=1138602&view=rev
Log:
CLEREZZA-510 fix a merge issue
Modified:
incubator/clerezza/trunk/parent/rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/EasyGraph.scala
incubator/clerezza/trunk/parent/rdf.scala.utils/src/test/scala/org/apache/clerezza/rdf/scala/utils/EasyGraphTest.scala
Modified: incubator/clerezza/trunk/parent/rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/EasyGraph.scala
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/EasyGraph.scala?rev=1138602&r1=1138601&r2=1138602&view=diff
==============================================================================
--- incubator/clerezza/trunk/parent/rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/EasyGraph.scala (original)
+++ incubator/clerezza/trunk/parent/rdf.scala.utils/src/main/scala/org/apache/clerezza/rdf/scala/utils/EasyGraph.scala Wed Jun 22 19:59:49 2011
@@ -21,16 +21,15 @@ package org.apache.clerezza.rdf.scala.ut
import org.apache.clerezza.rdf.core._
import impl._
-import org.apache.clerezza.rdf.ontologies.RDF
import java.math.BigInteger
import java.lang.Boolean
import java.net.{URL, URI}
import org.apache.clerezza.rdf.core._
-import reflect.Apply
-import org.apache.clerezza.rdf.utils.{UnionMGraph, GraphNode}
-import java.util.Date
+import org.apache.clerezza.rdf.utils.UnionMGraph
+import org.apache.clerezza.rdf.utils.GraphNode
import scala.collection.mutable.HashMap
-import scala.Option
+import org.apache.clerezza.rdf.ontologies.{XSD, RDF}
+import java.util.{HashSet, Date}
object EasyGraph {
@@ -38,12 +37,8 @@ object EasyGraph {
implicit def string2litBuilder(str: String) = new EzLiteral(str)
- implicit def string2lit(str: String) = litFactory.createTypedLiteral(str)
-
implicit def lit2String(lit: Literal) = lit.getLexicalForm
- implicit def litBuilder2lit(litBuilder: EzLiteral) = litFactory.createTypedLiteral(litBuilder.lexicalForm)
-
implicit def date2lit(date: Date) = litFactory.createTypedLiteral(date)
implicit def int2lit(int: Int) = litFactory.createTypedLiteral(int)
@@ -75,13 +70,13 @@ object EasyGraph {
* An Easy Literal, contains functions for mapping literals to other literals, ie from String literals to
* typed literals.
*/
-case class EzLiteral(lexicalForm: String) {
+class EzLiteral(lexicalForm: String) extends TypedLiteral {
+ def unapply(lexical: String) = lexical
/**
* @return a plain literal with language specified by lang
*/
- //TODO get a better name for this
def lang(lang: Lang) = new PlainLiteralImpl(lexicalForm, lang)
def lang(lang: Symbol) = new PlainLiteralImpl(lexicalForm, new Language(lang.name)) //todo lookup in LangId instead
@@ -90,6 +85,18 @@ case class EzLiteral(lexicalForm: String
def uri = new UriRef(lexicalForm)
def getLexicalForm = lexicalForm
+
+ override def equals(other: Any) = {
+ other match {
+ case olit: TypedLiteral => (olit eq this) || (olit.getLexicalForm == lexicalForm && olit.getDataType == this.getDataType)
+ case ostr: String => ostr == lexicalForm
+ case _ => false
+ }
+ }
+
+ override def hashCode() = lexicalForm.hashCode()
+
+ def getDataType = XSD.string
}
@@ -103,21 +110,21 @@ case class EzLiteral(lexicalForm: String
@deprecated("Don't use yet other than for trying out this class as it may be merged with another class or changed dramatically." +
" Send feedback to CLEREZZA-510. ")
-class EasyGraph(val graph: TripleCollection) extends SimpleMGraph(graph) {
+class EasyGraph(val graph: HashSet[Triple]) extends SimpleMGraph(graph) {
val namedBnodes = new HashMap[String,EasyGraphNode]
/*
* because we can't jump straight to super constructor in Scala we need to
* create the collection here
**/
- def this() = this (new SimpleMGraph())
+ def this() = this (new HashSet[Triple])
def +=(other: Graph) = {
if (graph ne other) graph.addAll(other)
}
def bnode: EasyGraphNode = {
- new EasyGraphNode(new BNode(), graph)
+ new EasyGraphNode(new BNode(), this)
}
def bnode(name: String): EasyGraphNode = {
@@ -171,10 +178,10 @@ class EasyGraph(val graph: TripleCollect
*/
class EasyGraphNode(val ref: NonLiteral, val graph: TripleCollection) extends GraphNode(ref, graph) {
- lazy val easyGraph = graph match {
- case eg: EasyGraph => eg
- case other: TripleCollection => new EasyGraph(graph)
- }
+// lazy val easyGraph = graph match {
+// case eg: EasyGraph => eg
+// case other: TripleCollection => new EasyGraph(graph)
+// }
/*
* create an EasyGraphNode from this one where the backing graph is protected from writes by a new
Modified: incubator/clerezza/trunk/parent/rdf.scala.utils/src/test/scala/org/apache/clerezza/rdf/scala/utils/EasyGraphTest.scala
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/rdf.scala.utils/src/test/scala/org/apache/clerezza/rdf/scala/utils/EasyGraphTest.scala?rev=1138602&r1=1138601&r2=1138602&view=diff
==============================================================================
--- incubator/clerezza/trunk/parent/rdf.scala.utils/src/test/scala/org/apache/clerezza/rdf/scala/utils/EasyGraphTest.scala (original)
+++ incubator/clerezza/trunk/parent/rdf.scala.utils/src/test/scala/org/apache/clerezza/rdf/scala/utils/EasyGraphTest.scala Wed Jun 22 19:59:49 2011
@@ -20,10 +20,9 @@ package org.apache.clerezza.rdf.scala.ut
import org.apache.clerezza.rdf.utils._
import org.apache.clerezza.rdf.ontologies._
-import Preamble._
-import org.apache.clerezza.rdf.core._
-import impl.{TypedLiteralImpl, TripleImpl, SimpleMGraph, PlainLiteralImpl}
import org.junit._
+import org.apache.clerezza.rdf.core._
+import impl.{TypedLiteralImpl, PlainLiteralImpl, SimpleMGraph, TripleImpl}
class EasyGraphTest {
@@ -64,6 +63,7 @@ class EasyGraphTest {
gr.add(new TripleImpl(danny,FOAF.knows, reto))
gr.add(new TripleImpl(henry,FOAF.name,new PlainLiteralImpl("Henry Story")))
+ gr.add(new TripleImpl(henry,FOAF.currentProject,new UriRef("http://webid.info/")))
gr.add(new TripleImpl(henry,RDF.`type`, FOAF.Person))
gr.add(new TripleImpl(henry,FOAF.knows, danny))
gr.add(new TripleImpl(henry,FOAF.knows, reto))
@@ -77,18 +77,21 @@ class EasyGraphTest {
}
@Test
- def plainChracter {
-/*
- val g = new EasyGraph(simpleMGraph)
- val sub = g.bnode
- ( g.u("http://bblfish.net/#hjs") a FOAF.Person
- has FOAF.name to {"Henry Story"}
- )
-
- Assert.assertEquals(tinyGraph, simpleMGraph.getGraph)
-*/
+ def testEquality {
+ val gr = new SimpleMGraph
+
+ val reto= new BNode()
+ gr.add(new TripleImpl(reto,RDF.`type`, FOAF.Person))
+
+ val ez = new EasyGraph()
+ ez.bnode â FOAF.Person
+
+ Assert.assertEquals("the two graphs should be of same size",gr.size(),ez.size())
+ Assert.assertTrue("the two graphs should be equals",gr.getGraph.equals(ez.getGraph)) //mutable graphs cannot be compared for equality
+
}
+
@Test
def usingSymbolicArrows {
import org.apache.clerezza.rdf.scala.utils.EasyGraph._
@@ -100,26 +103,29 @@ class EasyGraphTest {
â FOAF.name ⶠ"Reto Bachman-Gmür".lang(rm)
â FOAF.title ⶠ"Mr"
â FOAF.currentProject ⶠ"http://clerezza.org/".uri
- â FOAF.knows ⶠ(ez.u("http://bblfish.net/#hjs") â FOAF.Person
+ â FOAF.knows ⶠ(
+ ez.u("http://bblfish.net/#hjs") â FOAF.Person
â FOAF.name ⶠ"Henry Story"
â FOAF.currentProject ⶠ"http://webid.info/".uri
- âµ identity â ( ez.bnode â RSAPublicKey
+ âµ identity â (
+ ez.bnode â RSAPublicKey
â modulus ⶠ65537
â public_exponent ⶠ(bblfishModulus^^hex) // brackets needed due to precedence
)
â FOAF.knows ⶠez.bnode("reto")
â FOAF.knows ⶠez.bnode("danny")
)
- â FOAF.knows ⶠ(ez.bnode("danny") â FOAF.Person
- â FOAF.name ⶠ"Danny Ayers".lang('en)
+ â FOAF.knows ⶠ(
+ ez.bnode("danny") â FOAF.Person
+ â FOAF.name ⶠ"Danny Ayers".lang(en)
â FOAF.knows ⶠ"http://bblfish.net/#hjs".uri //knows
â FOAF.knows ⶠez.bnode("reto")
)
)
- Assert.assertEquals("Both graphs should have the same size",tinyGraph.size, ez.size)
- Assert.assertEquals("Both graphs should contain exactly the same triples", tinyGraph, ez.getGraph)
+ Assert.assertEquals("the two graphs should be of same size",tinyGraph.size(),ez.size())
+ Assert.assertTrue("Both graphs should contain exactly the same triples",tinyGraph.equals(ez.getGraph))
ez.bnode("danny") â FOAF.name ⶠ"George"
- Assert.assertFalse("Added one more triple, so graphs should no longer be equal",tinyGraph.equals(ez.getGraph))
+ Assert.assertFalse("Added one more triple, so graphs should no longer be equal", tinyGraph.equals(ez.getGraph))
}
@Test
@@ -133,24 +139,26 @@ class EasyGraphTest {
-- FOAF.name --> "Reto Bachman-Gmür".lang(rm)
-- FOAF.title --> "Mr"
-- FOAF.currentProject --> "http://clerezza.org/".uri
- -- FOAF.knows --> ( ez.u("http://bblfish.net/#hjs").a(FOAF.Person)
+ -- FOAF.knows --> (
+ ez.u("http://bblfish.net/#hjs").a(FOAF.Person)
-- FOAF.name --> "Henry Story"
-- FOAF.currentProject --> "http://webid.info/".uri
- -<- identity -- ( ez.bnode.a(RSAPublicKey) //. notation because of precedence of operators
+ -<- identity -- (
+ ez.bnode.a(RSAPublicKey) //. notation because of precedence of operators
-- modulus --> 65537
-- public_exponent --> (bblfishModulus^^hex) // brackets needed due to precedence
- )
+ )
-- FOAF.knows --> ez.bnode("reto")
-- FOAF.knows --> ez.bnode("danny")
)
-- FOAF.knows --> (ez.bnode("danny").a(FOAF.Person)
- -- FOAF.name --> "Danny Ayers".lang('en)
+ -- FOAF.name --> "Danny Ayers".lang(en)
-- FOAF.knows --> "http://bblfish.net/#hjs".uri //knows
-- FOAF.knows --> ez.bnode("reto")
)
)
- Assert.assertEquals("Both graphs should have the same size",tinyGraph.size, ez.size)
- Assert.assertEquals("Both graphs should contain exactly the same triples",tinyGraph, ez.getGraph)
+ Assert.assertEquals("the two graphs should be of same size",tinyGraph.size(),ez.size())
+ Assert.assertTrue("Both graphs should contain exactly the same triples",tinyGraph.equals(ez.getGraph))
ez.bnode("danny") -- FOAF.name --> "George"
Assert.assertFalse("Added one more triple, so graphs should no longer be equal",tinyGraph.equals(ez.getGraph))