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));
+
+    }
+
+}
+

Reply via email to