protected GribCollectionProto.TimeCoordUnion writeTimeCoordUnionProto( TimeCoordUnion tcu, int index) throws IOException { GribCollectionProto.TimeCoordUnion.Builder b = GribCollectionProto.TimeCoordUnion.newBuilder(); b.setCode(index); b.setUnit(tcu.getUnits()); if (tcu.isInterval()) { for (TimeCoord.Tinv tinv : tcu.getIntervals()) { b.addValues((float) tinv.getBounds1()); b.addBound((float) tinv.getBounds2()); } } else { for (int value : tcu.getCoords()) b.addValues((float) value); } for (TimeCoordUnion.Val val : tcu.getValues()) { b.addPartition(val.getPartition()); b.addIndex(val.getIndex()); } return b.build(); }