generate tile id processor added with tests
Project: http://git-wip-us.apache.org/repos/asf/incubator-sdap-ningester/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-sdap-ningester/commit/fe29b3a5 Tree: http://git-wip-us.apache.org/repos/asf/incubator-sdap-ningester/tree/fe29b3a5 Diff: http://git-wip-us.apache.org/repos/asf/incubator-sdap-ningester/diff/fe29b3a5 Branch: refs/heads/master Commit: fe29b3a5de3de53afcdf426c79b9a813d508fa31 Parents: 42a3379 Author: Frank Greguska <[email protected]> Authored: Tue Jan 2 16:18:35 2018 -0800 Committer: Frank Greguska <[email protected]> Committed: Tue Jan 2 16:18:35 2018 -0800 ---------------------------------------------------------------------- .../ningester/processors/GenerateTileId.java | 36 ++++++++++ .../processors/TestGenerateTileId.java | 76 ++++++++++++++++++++ 2 files changed, 112 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-sdap-ningester/blob/fe29b3a5/src/main/java/gov/nasa/jpl/nexus/ningester/processors/GenerateTileId.java ---------------------------------------------------------------------- diff --git a/src/main/java/gov/nasa/jpl/nexus/ningester/processors/GenerateTileId.java b/src/main/java/gov/nasa/jpl/nexus/ningester/processors/GenerateTileId.java new file mode 100644 index 0000000..3d28ce5 --- /dev/null +++ b/src/main/java/gov/nasa/jpl/nexus/ningester/processors/GenerateTileId.java @@ -0,0 +1,36 @@ +/***************************************************************************** + * Copyright (c) 2018 Jet Propulsion Laboratory, + * California Institute of Technology. All rights reserved + *****************************************************************************/ + +package gov.nasa.jpl.nexus.ningester.processors; + +import org.nasa.jpl.nexus.ingest.wiretypes.NexusContent; + +import java.util.UUID; + +public class GenerateTileId { + + private String salt = ""; + + public void setSalt(String salt) { + this.salt = salt; + } + + public NexusContent.NexusTile setTileId(NexusContent.NexusTile inputTile) { + + NexusContent.NexusTile.Builder outTileBuilder = NexusContent.NexusTile.newBuilder().mergeFrom(inputTile); + String granuleFileName = inputTile.getSummary().getGranule(); + String granuleName = granuleFileName.substring(0, granuleFileName.length() - 3); + String spec = inputTile.getSummary().getSectionSpec(); + + String tileId = UUID.nameUUIDFromBytes((granuleName + spec + salt).getBytes()).toString(); + outTileBuilder.getSummaryBuilder().setTileId(tileId); + outTileBuilder.getTileBuilder().setTileId(tileId); + + return outTileBuilder.build(); + } + + +} + http://git-wip-us.apache.org/repos/asf/incubator-sdap-ningester/blob/fe29b3a5/src/test/java/gov/nasa/jpl/nexus/ningester/processors/TestGenerateTileId.java ---------------------------------------------------------------------- diff --git a/src/test/java/gov/nasa/jpl/nexus/ningester/processors/TestGenerateTileId.java b/src/test/java/gov/nasa/jpl/nexus/ningester/processors/TestGenerateTileId.java new file mode 100644 index 0000000..abcbc1b --- /dev/null +++ b/src/test/java/gov/nasa/jpl/nexus/ningester/processors/TestGenerateTileId.java @@ -0,0 +1,76 @@ +/***************************************************************************** + * Copyright (c) 2018 Jet Propulsion Laboratory, + * California Institute of Technology. All rights reserved + *****************************************************************************/ + +package gov.nasa.jpl.nexus.ningester.processors; + +import org.junit.Test; +import org.nasa.jpl.nexus.ingest.wiretypes.NexusContent; + +import java.util.UUID; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +public class TestGenerateTileId { + + + @Test + public void testGenerateId(){ + + String granuleFileName = "19960421120000-NCEI-L4_GHRSST-SSTblend-AVHRR_OI-GLOB-v02.0-fv02.0.nc"; + String sectionSpec = "time:0:1,lat:140:160,lon:640:680"; + + String expectedId = "c031a9c4-9e1d-32e9-9d5c-d2497ce74920"; + + NexusContent.NexusTile inputTile = NexusContent.NexusTile.newBuilder() + .setSummary( + NexusContent.TileSummary.newBuilder() + .setGranule(granuleFileName) + .setSectionSpec(sectionSpec) + .build() + ) + .setTile(NexusContent.TileData.newBuilder()) + .build(); + + GenerateTileId processor = new GenerateTileId(); + + NexusContent.NexusTile result = processor.setTileId(inputTile); + + assertThat(result.getSummary().getTileId(), is(expectedId)); + assertThat(result.getTile().getTileId(), is(expectedId)); + + } + + @Test + public void testGenerateIdWithSalt(){ + + String granuleFileName = "CCMP_Wind_Analysis_19990928_V02.0_L3.0_RSS.nc"; + String sectionSpec = "time:3:4,longitude:174:261,latitude:152:190"; + String salt = "wind_u"; + + String expectedId = "48da50ef-e92c-3562-89f9-470561a06482"; + + NexusContent.NexusTile inputTile = NexusContent.NexusTile.newBuilder() + .setSummary( + NexusContent.TileSummary.newBuilder() + .setGranule(granuleFileName) + .setSectionSpec(sectionSpec) + .build() + ) + .setTile(NexusContent.TileData.newBuilder()) + .build(); + + GenerateTileId processor = new GenerateTileId(); + processor.setSalt(salt); + + NexusContent.NexusTile result = processor.setTileId(inputTile); + + assertThat(result.getSummary().getTileId(), is(expectedId)); + assertThat(result.getTile().getTileId(), is(expectedId)); + + } + +} +
