public GraphFactoryImpl(LongIndex[] newLongIndexes, NodePoolFactory newNodePoolFactory,
IteratorTrackingCollectionFactory newCollectionFactory) {
this.longIndexes = newLongIndexes;
this.nodePool = newNodePoolFactory.createNewNodePool();
this.graphHandlers = createGraphHandlers(newLongIndexes);
Localizer localizer = new LocalizerImpl(nodePool, new StringNodeMapperFactoryImpl().createMapper());
this.iteratorFactory = new CopyingLocalIteratorFactory(graphHandlers, localizer, newCollectionFactory);
this.readWriteGraph = new ReadWriteGraphImpl(longIndexes, nodePool, iteratorFactory);
GraphValueFactory valueFactory = new GraphValueFactoryImpl(nodePool, localizer);
ResourceFactory resourceFactory = new ResourceFactoryImpl(readWriteGraph, valueFactory);
this.elementFactory = new GraphElementFactoryImpl(resourceFactory, localizer, valueFactory);