Bryce's point makes perfect sense. The argument graphDb().createNode() gives 
the constructor an instance of Node, which contains a reference to the 
database, so there is no real need to additionally supply the database instance.
Of course his example would have been less confusing if he'd written:

Node indexedNode = graphDb().createNode(); 
SortedTree st = new SortedTree( graphDb(), indexedNode, new IdComparator(), 
true, RelTypes.INDEXED_RELATIONSHIP.name() );

> From: [email protected]
> Date: Fri, 16 Sep 2011 15:22:27 +0200
> To: [email protected]
> Subject: Re: [Neo4j] Neo4j graph collections introduction of NodeCollection   
> interface
> 
> Also,
> since you can do node.getGraphDatabase(), I think we don't need to
> pass in the graphdb instance in
> new SortedTree( graphDb(), graphDb().createNode(), new IdComparator(),
> true, RelTypes.INDEXED_RELATIONSHIP.name() );
> ?
> 
> Cheers,
> 
> /peter neubauer
> 
> GTalk:      neubauer.peter
> Skype       peter.neubauer
> Phone       +46 704 106975
> LinkedIn   http://www.linkedin.com/in/neubauer
> Twitter      http://twitter.com/peterneubauer
> 
> http://www.neo4j.org               - Your high performance graph database.
> http://startupbootcamp.org/    - Ă–resund - Innovation happens HERE.
> http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.
> 
> 
> 
> On Fri, Sep 16, 2011 at 7:37 AM, Bryce <[email protected]> wrote:
> > Hi,
> >
> > I had mentioned in a previous thread that I was working on introducing a
> > NodeCollection interface to remove the dependency from IndexedRelationship
> > to SortedTree.  I have an initial cut of this up now in my github repo:
> > https://github.com/brycenz/graph-collections
> >
> > It would be great to get community feedback on this as I think that having a
> > well designed and common NodeCollection interface would help for multiple
> > use cases, e.g. sortedTreeNodeCollection.addAll(linkedListNodeCollection)
> > doing exactly what you think it would.
> >
> > IndexedRelationship now takes a node to index relationships from, a
> > relationship type, and a direction, as well as a NodeCollection at creation
> > time.  As in the unit tests this then leads to:
> >
> > Node indexedNode = graphDb().createNode();
> > SortedTree st = new SortedTree( graphDb(), graphDb().createNode(), new
> > IdComparator(), true, RelTypes.INDEXED_RELATIONSHIP.name() );
> >
> > IndexedRelationship ir = new IndexedRelationship( indexedNode,
> > RelTypes.INDEXED_RELATIONSHIP, Direction.OUTGOING, st );
> >
> > To create the IndexedRelationship.  To later add nodes to the relationship
> > you need to create an instance of IndexedRelationship without the
> > NodeCollection:
> >
> > IndexedRelationship ir = new IndexedRelationship( indexedNode,
> > RelTypes.INDEXED_RELATIONSHIP, Direction.OUTGOING );
> >
> >
> > What this means from a NodeCollection implementation point of view is that
> > firstly it needs to use the NodeCollection.RelationshipType.VALUE
> > relationship to connect from its internal data structure to the nodes being
> > added to the collection, and it needs to be able to recreate itself from a
> > base node that is passed into a constructor (that only takes the base node).
> >  A node collection also needs to store its class name on the base node for
> > later construction purposes, as well as any other data required to recreate
> > the NodeCollection instance (in the case of SortedTree this is the
> > comparator class, the tree name, and whether it is a unique index.
> >
> > Niels, you may want to have a good look over SortedTree, I have made a few
> > changes to it, mainly around introduction of a base node, and changing of
> > the end value relationships.  This could be cleaned up better, but I wanted
> > to start with minimal changes.
> >
> > Both IndexedRelationship and IndexedRelationshipExpander have no
> > dependencies on SortedTree now, and should work with any properly
> > implemented NodeCollection.  I will be putting together a paged linked list
> > NodeCollection next to try this.
> >
> > Some future thoughts for NodeCollection, addition of as many of the
> > java.util.Collection methods (e.g. addAll, removeAll, retainAll, contains,
> > containsAll) as well as an abstract base NodeCollection to help provide
> > non-optimised support for these methods.
> >
> > Cheers
> > Bryce
> > _______________________________________________
> > Neo4j mailing list
> > [email protected]
> > https://lists.neo4j.org/mailman/listinfo/user
> >
> _______________________________________________
> Neo4j mailing list
> [email protected]
> https://lists.neo4j.org/mailman/listinfo/user
                                          
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to