@@ -46,8 +46,8 @@ public final class DatasetVersionDifference {
4646 private List <FileMetadata > changedVariableMetadata = new ArrayList <>();
4747 private List <FileMetadata []> replacedFiles = new ArrayList <>();
4848 private List <String []> changedTermsAccess = new ArrayList <>();
49- private List <Object [] > summaryDataForNote = new ArrayList <>();
50- private List <Object [] > blockDataForNote = new ArrayList <>();
49+ private List <SummaryNote > summaryDataForNote = new ArrayList <>();
50+ private List <SummaryNote > blockDataForNote = new ArrayList <>();
5151
5252 private List <DifferenceSummaryGroup > differenceSummaryGroups = new ArrayList <>();
5353
@@ -300,32 +300,33 @@ private void addToSummary(DatasetField dsfo, DatasetField dsfn) {
300300
301301 private void updateBlockSummary (DatasetField dsf , int added , int deleted , int changed ) {
302302 boolean addedToAll = false ;
303- for (Object [] blockList : blockDataForNote ) {
304- DatasetField dsft = (DatasetField ) blockList [0 ];
303+ for (SummaryNote blockList : blockDataForNote ) {
304+
305+ DatasetField dsft = blockList .dsfo ;
305306 if (dsft .getDatasetFieldType ().getMetadataBlock ().equals (dsf .getDatasetFieldType ().getMetadataBlock ())) {
306- blockList [ 1 ] = ( Integer ) blockList [ 1 ] + added ;
307- blockList [ 2 ] = ( Integer ) blockList [ 2 ] + deleted ;
308- blockList [ 3 ] = ( Integer ) blockList [ 3 ] + changed ;
307+ blockList . added = blockList . added + added ;
308+ blockList . deleted = blockList . deleted + deleted ;
309+ blockList . changed = blockList . changed + changed ;
309310 addedToAll = true ;
310311 }
311312 }
312313 if (!addedToAll ) {
313- Object [] newArray = new Object [ 4 ] ;
314- newArray [ 0 ] = dsf ;
315- newArray [ 1 ] = added ;
316- newArray [ 2 ] = deleted ;
317- newArray [ 3 ] = changed ;
318- blockDataForNote .add (newArray );
314+ SummaryNote newNote = new SummaryNote () ;
315+ newNote . dsfo = dsf ;
316+ newNote . added = added ;
317+ newNote . deleted = deleted ;
318+ newNote . changed = changed ;
319+ blockDataForNote .add (newNote );
319320 }
320321 }
321322
322- private void addToNoteSummary (DatasetField dsfo , int added , int deleted , int changed ) {
323- Object [] noteArray = new Object [ 4 ] ;
324- noteArray [ 0 ] = dsfo ;
325- noteArray [ 1 ] = added ;
326- noteArray [ 2 ] = deleted ;
327- noteArray [ 3 ] = changed ;
328- summaryDataForNote .add (noteArray );
323+ private void addToNoteSummary (DatasetField dsfo , Integer added , Integer deleted , Integer changed ) {
324+ SummaryNote summaryNote = new SummaryNote () ;
325+ summaryNote . dsfo = dsfo ;
326+ summaryNote . added = added ;
327+ summaryNote . deleted = deleted ;
328+ summaryNote . changed = changed ;
329+ summaryDataForNote .add (summaryNote );
329330 }
330331
331332 static boolean compareVarGroup (FileMetadata fmdo , FileMetadata fmdn ) {
@@ -363,14 +364,19 @@ public static Map<String,List<String>> compareFileMetadatas(FileMetadata fmdo, F
363364 List .of (StringUtil .nullToEmpty (fmdo .getDescription ()), StringUtil .nullToEmpty (fmdn .getDescription ())));
364365 }
365366
366- if (!StringUtils .equals (fmdo .getCategoriesByName ().toString (), fmdn .getCategoriesByName ().toString ())) {
367+ if (!StringUtils .equals (StringUtil . nullToEmpty ( fmdo .getCategoriesByName ().toString ()), StringUtil . nullToEmpty ( fmdn .getCategoriesByName ().toString () ))) {
367368 fileMetadataChanged .put ("Categories" ,
368369 List .of (fmdo .getCategoriesByName ().toString (), fmdn .getCategoriesByName ().toString ()));
369370 }
370371
371- if (!StringUtils .equals (fmdo .getLabel (), fmdn .getLabel ())) {
372+ if (!StringUtils .equals (StringUtil . nullToEmpty ( fmdo .getLabel ()), StringUtil . nullToEmpty ( fmdn .getLabel () ))) {
372373 fileMetadataChanged .put ("Label" ,
373- List .of (fmdo .getLabel (), fmdn .getLabel ()));
374+ List .of (StringUtil .nullToEmpty (fmdo .getLabel ()), StringUtil .nullToEmpty (fmdn .getLabel ())));
375+ }
376+
377+ if (!StringUtils .equals (StringUtil .nullToEmpty (fmdo .getDirectoryLabel ()), StringUtil .nullToEmpty (fmdn .getDirectoryLabel ()))) {
378+ fileMetadataChanged .put ("File Path" ,
379+ List .of (StringUtil .nullToEmpty (fmdo .getDirectoryLabel ()), StringUtil .nullToEmpty (fmdn .getDirectoryLabel ())));
374380 }
375381
376382 if (!StringUtils .equals (StringUtil .nullToEmpty (fmdo .getProvFreeForm ()), StringUtil .nullToEmpty (fmdn .getProvFreeForm ()))) {
@@ -464,6 +470,8 @@ private void compareValues(DatasetField originalField, DatasetField newField, bo
464470 }
465471 }
466472 }
473+
474+
467475
468476 public String getFileNote () {
469477 String retString = "" ;
@@ -568,19 +576,19 @@ public void setChangedFileMetadata(List<FileMetadata> changedFileMetadata) {
568576 this .changedFileMetadata = changedFileMetadata ;
569577 }
570578
571- public List <Object [] > getSummaryDataForNote () {
579+ public List <SummaryNote > getSummaryDataForNote () {
572580 return summaryDataForNote ;
573581 }
574582
575- public List <Object [] > getBlockDataForNote () {
583+ public List <SummaryNote > getBlockDataForNote () {
576584 return blockDataForNote ;
577585 }
578586
579- public void setSummaryDataForNote (List <Object [] > summaryDataForNote ) {
587+ public void setSummaryDataForNote (List <SummaryNote > summaryDataForNote ) {
580588 this .summaryDataForNote = summaryDataForNote ;
581589 }
582590
583- public void setBlockDataForNote (List <Object [] > blockDataForNote ) {
591+ public void setBlockDataForNote (List <SummaryNote > blockDataForNote ) {
584592 this .blockDataForNote = blockDataForNote ;
585593 }
586594
@@ -1205,6 +1213,47 @@ public List<DifferenceSummaryItem> getDifferenceSummaryItems() {
12051213 public void setDifferenceSummaryItems (List <DifferenceSummaryItem > differenceSummaryItems ) {
12061214 this .differenceSummaryItems = differenceSummaryItems ;
12071215 }
1216+ }
1217+
1218+ public class SummaryNote {
1219+ DatasetField dsfo ;
1220+ Integer added ;
1221+ Integer deleted ;
1222+ Integer changed ;
1223+
1224+ public void setDatasetField (DatasetField dsfIn ){
1225+ dsfo = dsfIn ;
1226+ }
1227+
1228+ public DatasetField getDatasetField (){
1229+ return dsfo ;
1230+ }
1231+
1232+ public void setAdded (Integer addin ){
1233+ added = addin ;
1234+ }
1235+
1236+ public Integer getAdded (){
1237+ return added ;
1238+ }
1239+
1240+ public void setDeleted (Integer delin ){
1241+ deleted = delin ;
1242+ }
1243+
1244+ public Integer getDeleted (){
1245+ return deleted ;
1246+ }
1247+
1248+ public void setChanged (Integer changedin ){
1249+ changed = changedin ;
1250+ }
1251+
1252+ public Integer getChanged (){
1253+ return changed ;
1254+ }
1255+
1256+
12081257 }
12091258
12101259 public class DifferenceSummaryItem {
@@ -1641,6 +1690,93 @@ List<FileMetadata> getChangedVariableMetadata() {
16411690 List <FileMetadata []> getReplacedFiles () {
16421691 return replacedFiles ;
16431692 }
1693+
1694+ public JsonObjectBuilder getSummaryDifferenceAsJson (){
1695+
1696+ JsonObjectBuilder jobVersion = new NullSafeJsonBuilder ();
1697+
1698+ JsonObjectBuilder jobDsfOnCreate = new NullSafeJsonBuilder ();
1699+
1700+
1701+ for (SummaryNote sn : this .summaryDataForNote ) {
1702+ jobDsfOnCreate .add ( sn .getDatasetField ().getDatasetFieldType ().getDisplayName (), getSummaryNoteAsJson (sn ));
1703+ }
1704+
1705+ if (!this .summaryDataForNote .isEmpty ()){
1706+
1707+ jobVersion .add ("Citation Metadata" , jobDsfOnCreate );
1708+
1709+ }
1710+
1711+ for (SummaryNote sn : this .getBlockDataForNote ()){
1712+ String mdbDisplayName = sn .getDatasetField ().getDatasetFieldType ().getMetadataBlock ().getDisplayName ();
1713+ if (mdbDisplayName .equals ("Citation Metadata" )){
1714+ mdbDisplayName = "Additional Citation Metadata" ;
1715+ }
1716+ jobVersion .add ( mdbDisplayName , getSummaryNoteAsJson (sn ));
1717+ }
1718+
1719+ jobVersion .add ("files" , getFileSummaryAsJson ());
1720+
1721+ if (!this .changedTermsAccess .isEmpty ()) {
1722+ jobVersion .add ("termsAccessChanged" , true );
1723+ } else {
1724+ jobVersion .add ("termsAccessChanged" , false );
1725+ }
1726+
1727+ return jobVersion ;
1728+ }
1729+
1730+ private JsonObjectBuilder getSummaryNoteAsJson (SummaryNote sn ){
1731+ JsonObjectBuilder job = new NullSafeJsonBuilder ();
1732+ //job.add("datasetFieldType", sn.getDatasetField().getDatasetFieldType().getDisplayName());
1733+ job .add ("added" , sn .added );
1734+ job .add ("deleted" , sn .deleted );
1735+ job .add ("changed" , sn .changed );
1736+ return job ;
1737+ }
1738+
1739+ private JsonObjectBuilder getFileSummaryAsJson (){
1740+ JsonObjectBuilder job = new NullSafeJsonBuilder ();
1741+
1742+ if (!addedFiles .isEmpty ()) {
1743+ job .add ("added" , addedFiles .size ());
1744+
1745+ } else {
1746+ job .add ("added" , 0 );
1747+ }
1748+
1749+ if (!removedFiles .isEmpty ()) {
1750+ job .add ("removed" , removedFiles .size ());
1751+
1752+ } else {
1753+ job .add ("removed" , 0 );
1754+ }
1755+
1756+ if (!replacedFiles .isEmpty ()) {
1757+ job .add ("replaced" , replacedFiles .size ());
1758+
1759+ } else {
1760+ job .add ("replaced" , 0 );
1761+ }
1762+
1763+ if (!changedFileMetadata .isEmpty ()) {
1764+ job .add ("changedFileMetaData" , changedFileMetadata .size ());
1765+
1766+ } else {
1767+ job .add ("changedFileMetaData" , 0 );
1768+ }
1769+
1770+ if (!changedVariableMetadata .isEmpty ()) {
1771+ job .add ("changedVariableMetadata" , changedVariableMetadata .size ());
1772+
1773+ } else {
1774+ job .add ("changedVariableMetadata" , 0 );
1775+ }
1776+
1777+ return job ;
1778+ }
1779+
16441780 public JsonObjectBuilder compareVersionsAsJson () {
16451781 JsonObjectBuilder job = new NullSafeJsonBuilder ();
16461782 JsonObjectBuilder jobVersion = new NullSafeJsonBuilder ();
0 commit comments