public void addCoords ( List < Coordinate > coords , PartitionCollectionMutable . Partition part ) { Coordinate runtime = null ; for ( Coordinate coord : coords ) { switch ( coord . getType ( ) ) { case runtime : CoordinateRuntime rtime = ( CoordinateRuntime ) coord ; if ( runtimeBuilder == null ) runtimeBuilder = new CoordinateRuntime . Builder2 ( rtime . getTimeUnits ( ) ) ; runtimeBuilder . addAll ( coord ) ; runtime = coord ; if ( debugPartitionErrors && ! duplicateRuntimeMessage && part != null ) testDuplicateRuntime ( rtime , part ) ; break ; case time : CoordinateTime time = ( CoordinateTime ) coord ; if ( timeBuilder == null ) timeBuilder = new CoordinateTime . Builder2 ( coord . getCode ( ) , time . getTimeUnit ( ) , time . getRefDate ( ) ) ; timeBuilder . addAll ( coord ) ; break ; case timeIntv : CoordinateTimeIntv timeIntv = ( CoordinateTimeIntv ) coord ; if ( timeIntvBuilder == null ) timeIntvBuilder = new CoordinateTimeIntv . Builder2 ( null , coord . getCode ( ) , timeIntv . getTimeUnit ( ) , timeIntv . getRefDate ( ) ) ; timeIntvBuilder . addAll ( intervalFilter ( ( CoordinateTimeIntv ) coord ) ) ; break ; case time2D : CoordinateTime2D time2D = ( CoordinateTime2D ) coord ; if ( time2DBuilder == null ) time2DBuilder = new CoordinateTime2DUnionizer ( time2D . isTimeInterval ( ) , time2D . getTimeUnit ( ) , coord . getCode ( ) , false , logger ) ; time2DBuilder . addAll ( time2D ) ; // debug CoordinateRuntime runtimeFrom2D = time2D . getRuntimeCoordinate ( ) ; if ( ! runtimeFrom2D . equals ( runtime ) ) logger . warn ( "HEY CoordinateUnionizer runtimes not equal" ) ; break ; case ens : if ( ensBuilder == null ) ensBuilder = new CoordinateEns . Builder2 ( coord . getCode ( ) ) ; ensBuilder . addAll ( coord ) ; break ; case vert : CoordinateVert vertCoord = ( CoordinateVert ) coord ; if ( vertBuilder == null ) vertBuilder = new CoordinateVert . Builder2 ( coord . getCode ( ) , vertCoord . getVertUnit ( ) ) ; vertBuilder . addAll ( coord ) ; break ; } } }
only one message per CoordinatePartitionUnionizer instance