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 LdbcSnbBiQuery1PostingSummary extends Operation<List<LdbcSnbBiQuery1PostingSummaryResult>> { public static final int TYPE = 1; private final long date; public LdbcSnbBiQuery1PostingSummary( long date ) { this.date = date; } public long date() { return date; } @Override public String toString() { return "LdbcSnbBiQuery1PostingSummary{" + "date=" + date + '}'; } @Override public boolean equals( Object o ) { if ( this == o ) { return true; } if ( o == null || getClass() != o.getClass() ) { return false; } LdbcSnbBiQuery1PostingSummary that = (LdbcSnbBiQuery1PostingSummary) o; return date == that.date; } @Override public int hashCode() { return (int) (date ^ (date >>> 32)); } @Override public List<LdbcSnbBiQuery1PostingSummaryResult> marshalResult( String serializedResults ) throws SerializingMarshallingException { List<List<Object>> resultsAsList = SerializationUtil.marshalListOfLists( serializedResults ); List<LdbcSnbBiQuery1PostingSummaryResult> results = new ArrayList<>(); for ( int i = 0; i < resultsAsList.size(); i++ ) { List<Object> resultAsList = resultsAsList.get( i ); int year = ((Number) resultAsList.get( 0 )).intValue(); boolean isReply = (boolean) resultAsList.get( 1 ); int messageLengthCategory = ((Number) resultAsList.get( 2 )).intValue(); long messageCount = ((Number) resultAsList.get( 3 )).longValue(); long messageLengthMean = ((Number) resultAsList.get( 4 )).longValue(); long messageLengthSum = ((Number) resultAsList.get( 5 )).longValue(); float percentOfTotalMessageCount = ((Number) resultAsList.get( 6 )).floatValue(); results.add( new LdbcSnbBiQuery1PostingSummaryResult( year, isReply, messageLengthCategory, messageCount, messageLengthMean, messageLengthSum, percentOfTotalMessageCount ) ); } return results; } @Override public String serializeResult( Object resultsObject ) throws SerializingMarshallingException { List<LdbcSnbBiQuery1PostingSummaryResult> result = (List<LdbcSnbBiQuery1PostingSummaryResult>) resultsObject; List<List<Object>> resultsFields = new ArrayList<>(); for ( int i = 0; i < result.size(); i++ ) { LdbcSnbBiQuery1PostingSummaryResult row = result.get( i ); List<Object> resultFields = new ArrayList<>(); resultFields.add( row.year() ); resultFields.add( row.isComment() ); resultFields.add( row.messageLengthCategory() ); resultFields.add( row.messageCount() ); resultFields.add( row.messageLengthMean() ); resultFields.add( row.messageLengthSum() ); resultFields.add( row.percentOfTotalMessageCount() ); resultsFields.add( resultFields ); } return SerializationUtil.toJson( resultsFields ); } @Override public int type() { return TYPE; } }