class PathProxy implements Path {

    @Override
    public Iterator<PropertyContainer> iterator()
    {
        return new Iterator<PropertyContainer>()
        {
            int i;
            boolean relationship;

            @Override
            public boolean hasNext()
            {
                return i < relationships.length || !relationship;
            }

            @Override
            public PropertyContainer next()
            {
                if ( relationship )
                {
                    relationship = false;
                    return relationship( i++ );
                }
                else
                {
                    relationship = true;
                    return new NodeProxy( proxySPI, nodes[i] );
                }
            }
        };
    }

    public  PathProxy( EmbeddedProxySPI proxySPI, long[] nodes, long[] relationships, int[] directedTypes );

}