in src/main/java/org/apache/sdap/ningester/processors/AddTimeFromGranuleName.java [43:85]
public NexusTile setTimeFromGranuleName(NexusTile inputTile) {
NexusTile.Builder outTileBuilder = NexusTile.newBuilder().mergeFrom(inputTile);
switch (inputTile.getTile().getTileTypeCase()) {
case GRID_TILE:
String granuleName = inputTile.getSummary().getGranule();
Matcher granuleNameMatcher = this.regex.matcher(granuleName);
Boolean granuleNameMatched = granuleNameMatcher.find();
if (!granuleNameMatched) {
throw new RuntimeException("regex did not match granuleName.");
}
if (granuleNameMatcher.groupCount() != 1) {
throw new RuntimeException("regex does not have exactly one capturing group.");
}
if (granuleNameMatcher.group(1).length() <= 0) {
throw new RuntimeException("group does not contain match.");
}
String dateTimeString = granuleNameMatcher.group(1);
Date dateTime = null;
try {
dateTime = dateFormat.parse(dateTimeString);
} catch (ParseException e) {
throw new RuntimeException(e);
}
Long secondsSinceEpoch = (dateTime.getTime() / 1000);
outTileBuilder.getTileBuilder().getGridTileBuilder().setTime(secondsSinceEpoch);
outTileBuilder.getSummaryBuilder().getStatsBuilder().setMinTime(secondsSinceEpoch);
outTileBuilder.getSummaryBuilder().getStatsBuilder().setMaxTime(secondsSinceEpoch);
break;
default:
throw new UnsupportedOperationException("Can only handle GridTile at this time.");
}
return outTileBuilder.build();
}