package com.ldbc.driver.workloads.ldbc.snb.bi;
import com.ldbc.driver.Operation;
import com.ldbc.driver.SerializingMarshallingException;
import java.util.ArrayList;
import java.util.List;
public class LdbcSnbBiQuery3TagEvolution extends Operation<List<LdbcSnbBiQuery3TagEvolutionResult>>
{
public static final int TYPE = 3;
public static final int DEFAULT_LIMIT = 100;
private final long range1Start;
private final long range1End;
private final long range2Start;
private final long range2End;
private final int limit;
public LdbcSnbBiQuery3TagEvolution( long range1Start, long range1End, long range2Start, long range2End, int limit )
{
this.range1Start = range1Start;
this.range1End = range1End;
this.range2Start = range2Start;
this.range2End = range2End;
this.limit = limit;
}
public long range1Start()
{
return range1Start;
}
public long range1End()
{
return range1End;
}
public long range2Start()
{
return range2Start;
}
public long range2End()
{
return range2End;
}
public int limit()
{
return limit;
}
@Override
public String toString()
{
return "LdbcSnbBiQuery3TagEvolution{" +
"range1Start=" + range1Start +
", range1End=" + range1End +
", range2Start=" + range2Start +
", range2End=" + range2End +
'}';
}
@Override
public boolean equals( Object o )
{
if ( this == o )
{ return true; }
if ( o == null || getClass() != o.getClass() )
{ return false; }
LdbcSnbBiQuery3TagEvolution that = (LdbcSnbBiQuery3TagEvolution) o;
if ( range1Start != that.range1Start )
{ return false; }
if ( range1End != that.range1End )
{ return false; }
if ( range2Start != that.range2Start )
{ return false; }
return range2End == that.range2End;
}
@Override
public int hashCode()
{
int result = (int) (range1Start ^ (range1Start >>> 32));
result = 31 * result + (int) (range1End ^ (range1End >>> 32));
result = 31 * result + (int) (range2Start ^ (range2Start >>> 32));
result = 31 * result + (int) (range2End ^ (range2End >>> 32));
return result;
}
@Override
public List<LdbcSnbBiQuery3TagEvolutionResult> marshalResult( String serializedResults )
throws SerializingMarshallingException
{
List<List<Object>> resultsAsList = SerializationUtil.marshalListOfLists( serializedResults );
List<LdbcSnbBiQuery3TagEvolutionResult> result = new ArrayList<>();
for ( int i = 0; i < resultsAsList.size(); i++ )
{
List<Object> row = resultsAsList.get( i );
String tag = (String) row.get( 0 );
int countA = ((Number) row.get( 1 )).intValue();
int countB = ((Number) row.get( 2 )).intValue();
int difference = ((Number) row.get( 3 )).intValue();
result.add(
new LdbcSnbBiQuery3TagEvolutionResult(
tag,
countA,
countB,
difference
)
);
}
return result;
}
@Override
public String serializeResult( Object resultsObject ) throws SerializingMarshallingException
{
List<LdbcSnbBiQuery3TagEvolutionResult> result = (List<LdbcSnbBiQuery3TagEvolutionResult>) resultsObject;
List<List<Object>> resultsFields = new ArrayList<>();
for ( int i = 0; i < result.size(); i++ )
{
LdbcSnbBiQuery3TagEvolutionResult row = result.get( i );
List<Object> resultFields = new ArrayList<>();
resultFields.add( row.tag() );
resultFields.add( row.countA() );
resultFields.add( row.countB() );
resultFields.add( row.difference() );
resultsFields.add( resultFields );
}
return SerializationUtil.toJson( resultsFields );
}
@Override
public int type()
{
return TYPE;
}
}