Skip to content

Commit

Permalink
Extracted interface for Neo4jPack
Browse files Browse the repository at this point in the history
To make it easier to plug different version that, for example, supports
new types, like point, geometry or date.
  • Loading branch information
lutovich committed Jan 9, 2018
1 parent 5b87ea0 commit 8f9e85d
Show file tree
Hide file tree
Showing 14 changed files with 775 additions and 715 deletions.
Expand Up @@ -20,6 +20,7 @@
package org.neo4j.bolt.transport; package org.neo4j.bolt.transport;


import org.neo4j.bolt.BoltChannel; import org.neo4j.bolt.BoltChannel;
import org.neo4j.bolt.v1.messaging.Neo4jPackV1;
import org.neo4j.bolt.v1.runtime.BoltWorker; import org.neo4j.bolt.v1.runtime.BoltWorker;
import org.neo4j.bolt.v1.runtime.WorkerFactory; import org.neo4j.bolt.v1.runtime.WorkerFactory;
import org.neo4j.bolt.v1.transport.BoltMessagingProtocolV1Handler; import org.neo4j.bolt.v1.transport.BoltMessagingProtocolV1Handler;
Expand All @@ -45,7 +46,7 @@ public BoltMessagingProtocolHandler create( long protocolVersion, BoltChannel ch
if ( protocolVersion == BoltMessagingProtocolV1Handler.VERSION ) if ( protocolVersion == BoltMessagingProtocolV1Handler.VERSION )
{ {
BoltWorker worker = workerFactory.newWorker( channel ); BoltWorker worker = workerFactory.newWorker( channel );
return new BoltMessagingProtocolV1Handler( channel, worker, throttleGroup, logService ); return new BoltMessagingProtocolV1Handler( channel, new Neo4jPackV1(), worker, throttleGroup, logService );
} }
else else
{ {
Expand Down
Expand Up @@ -20,18 +20,11 @@
package org.neo4j.bolt.v1.messaging; package org.neo4j.bolt.v1.messaging;


import java.io.IOException; import java.io.IOException;
import java.util.function.Supplier;


import org.neo4j.bolt.logging.BoltMessageLogger; import org.neo4j.bolt.logging.BoltMessageLogger;
import org.neo4j.cypher.result.QueryResult; import org.neo4j.cypher.result.QueryResult;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.spatial.Point;
import org.neo4j.kernel.impl.util.BaseToObjectValueWriter;
import org.neo4j.kernel.api.exceptions.Status; import org.neo4j.kernel.api.exceptions.Status;
import org.neo4j.values.AnyValue; import org.neo4j.values.AnyValue;
import org.neo4j.values.utils.PrettyPrinter;
import org.neo4j.values.storable.CoordinateReferenceSystem;
import org.neo4j.values.virtual.MapValue; import org.neo4j.values.virtual.MapValue;


import static org.neo4j.bolt.v1.messaging.BoltResponseMessage.FAILURE; import static org.neo4j.bolt.v1.messaging.BoltResponseMessage.FAILURE;
Expand Down Expand Up @@ -92,16 +85,6 @@ public void onSuccess( MapValue metadata ) throws IOException
onMessageComplete.onMessageComplete(); onMessageComplete.onMessageComplete();
} }


private Supplier<String> metadataSupplier( MapValue metadata )
{
return () ->
{
PrettyPrinter printer = new PrettyPrinter();
metadata.writeTo( printer );
return printer.value();
};
}

@Override @Override
public void onIgnored() throws IOException public void onIgnored() throws IOException
{ {
Expand Down Expand Up @@ -138,30 +121,4 @@ public void flush() throws IOException
{ {
packer.flush(); packer.flush();
} }

private class MapToObjectWriter extends BaseToObjectValueWriter<RuntimeException>
{

private UnsupportedOperationException exception =
new UnsupportedOperationException( "Functionality not implemented." );

@Override
protected Node newNodeProxyById( long id )
{
throw exception;
}

@Override
protected Relationship newRelationshipProxyById( long id )
{
throw exception;
}

@Override
protected Point newPoint( CoordinateReferenceSystem crs, double[] coordinate )
{
throw exception;
}
}

} }

0 comments on commit 8f9e85d

Please sign in to comment.