ASM #15658 - WarnGen: inclusion of watch information in marine products

Change-Id: I545d1b07444c9ca00ea2e95c4ccaed79946bbead

Former-commit-id: 2ee1ebe72d [formerly a6acf71a0a [formerly e0f6cc70bf5258d66bfa8a4ddb1daf871b6c92c5]]
Former-commit-id: a6acf71a0a
Former-commit-id: 0ed1ce5726
This commit is contained in:
David Friedman 2014-09-23 18:39:07 +00:00
parent 513fa15ea6
commit c4d6fe5af5
4 changed files with 49 additions and 54 deletions

View file

@ -59,7 +59,7 @@ public class Watch {
private List<String> partOfState; private List<String> partOfState;
private List<String> marineAreas; private String marineArea;
public Watch(String state, String action, String phenSig, String etn, public Watch(String state, String action, String phenSig, String etn,
Date startTime, Date endTime) { Date startTime, Date endTime) {
@ -135,12 +135,12 @@ public class Watch {
this.etn = etn; this.etn = etn;
} }
public List<String> getMarineAreas() { public String getMarineArea() {
return marineAreas; return marineArea;
} }
public void setMarineAreas(List<String> marineAreas) { public void setMarineArea(String marineArea) {
this.marineAreas = marineAreas; this.marineArea = marineArea;
} }
@Override @Override

View file

@ -440,19 +440,35 @@ public class WatchUtil {
List<String> partOfState = new ArrayList<String>( List<String> partOfState = new ArrayList<String>(
determineAffectedPortions(watch.getAreas())); determineAffectedPortions(watch.getAreas()));
watch.setPartOfState(partOfState); watch.setPartOfState(partOfState);
} else {
watch.setMarineAreas(determineMarineAreas(watch.getAreas()));
}
watches.add(watch); watches.add(watch);
} else {
watches.addAll(generateMarineWatchItems(watch,
determineMarineAreas(watch.getAreas())));
}
} }
// keep the code for their use in the future /* Sorts the watches based on ETN, then state. Marine areas
/* * have a null state value so they appear at the end of each
// Sorts the watches based on state name. * watch.
*/
Collections.sort(watches, new Comparator<Watch>() { Collections.sort(watches, new Comparator<Watch>() {
@Override @Override
public int compare(Watch watch1, Watch watch2) { public int compare(Watch watch1, Watch watch2) {
String etn1 = watch1.getEtn();
String etn2 = watch2.getEtn();
int c;
if (etn1 == etn2)
c = 0;
else if (etn1 == null)
return 1;
else if (etn2 == null)
return -1;
else
c = etn1.compareTo(etn2);
if (c != 0)
return c;
String state1 = watch1.getState(); String state1 = watch1.getState();
String state2 = watch2.getState(); String state2 = watch2.getState();
if (state1 == state2) if (state1 == state2)
@ -465,25 +481,6 @@ public class WatchUtil {
return state1.compareTo(state2); return state1.compareTo(state2);
} }
}); });
*/
// Sorts the watches based on ETN.
Collections.sort(watches, new Comparator<Watch>() {
@Override
public int compare(Watch watch1, Watch watch2) {
String etn1 = watch1.getEtn();
String etn2 = watch2.getEtn();
if (etn1 == etn2)
return 0;
else if (etn1 == null)
return 1;
else if (etn2 == null)
return -1;
else
return etn1.compareTo(etn2);
}
});
return watches; return watches;
} }
@ -513,6 +510,18 @@ public class WatchUtil {
return affectedPortions; return affectedPortions;
} }
private List<Watch> generateMarineWatchItems(Watch template, List<String> areas) {
ArrayList<Watch> result = new ArrayList<Watch>();
for (String area: areas) {
Watch watch = new Watch(template.getState(), template.getAction(),
template.getPhenSig(), template.getEtn(),
template.getStartTime(), template.getEndTime());
watch.setMarineArea(area);
result.add(watch);
}
return result;
}
private List<String> determineMarineAreas(List<String> areas) { private List<String> determineMarineAreas(List<String> areas) {
HashSet<Pair<Integer, String>> groupedAreas = new HashSet<Pair<Integer,String>>(); HashSet<Pair<Integer, String>> groupedAreas = new HashSet<Pair<Integer,String>>();
for (String area : areas) { for (String area : areas) {

View file

@ -230,10 +230,10 @@ ${currTime}##
#set($lastTime = ${currTime}) #set($lastTime = ${currTime})
#end #end
#end #end
#if(!${watch.marineAreas}) #if(!${watch.marineArea})
#areaFormat(${watch.partOfState} true false true)${watch.state}## #areaFormat(${watch.partOfState} true false true)${watch.state}##
#else #else
#formatMarineAreas(${watch.marineAreas}) #formatMarineArea(${watch.marineArea})
#end #end
#set($lastEtn = ${watch.etn}) #set($lastEtn = ${watch.etn})
#end #end
@ -291,10 +291,10 @@ ${currTime}##
#set($lastTime = ${currTime}) #set($lastTime = ${currTime})
#end #end
#end #end
#if(!${watch.marineAreas}) #if(!${watch.marineArea})
#areaFormat(${watch.partOfState} true false true)${watch.state}## #areaFormat(${watch.partOfState} true false true)${watch.state}##
#else #else
#formatMarineAreas(${watch.marineAreas}) #formatMarineArea(${watch.marineArea})
#end #end
#set($lastEtn = ${watch.etn}) #set($lastEtn = ${watch.etn})
#end #end
@ -304,23 +304,9 @@ ${currTime}##
#end #end
########END MACRO ########END MACRO
#macro(formatMarineAreas $marineAreas) #macro(formatMarineArea $marineArea)
#set($macount = 0)
#set($numMarineAreas = ${list.size(${marineAreas})})
#foreach(${marineArea} in ${marineAreas})
#set($macount = $macount + 1)
#if(${marineArea}=="THE ADJACENT COASTAL WATERS" && $macount > 1)
OTHER ADJACENT COASTAL WATERS##
#else
${marineArea}## ${marineArea}##
#end #end
#if($macount == $numMarineAreas - 1)
AND ##
#elseif($macount < $numMarineAreas)
...##
#end
#end
#end
########END MACRO ########END MACRO
#macro(printcoords $coordinates $list) #macro(printcoords $coordinates $list)

View file

@ -13,12 +13,12 @@
values passed to the template. values passed to the template.
--> -->
<zoneWordingConfig> <zoneWordingConfig>
<entry match="^LEZ.*" replace="THE ADJACENT COASTAL WATERS OF LAKE ERIE" /> <entry match="^LEZ.*" replace="THE ADJACENT WATERS OF LAKE ERIE" />
<entry match="^LHZ.*" replace="THE ADJACENT COASTAL WATERS OF LAKE HURON" /> <entry match="^LHZ.*" replace="THE ADJACENT WATERS OF LAKE HURON" />
<entry match="^LMZ.*" replace="THE ADJACENT COASTAL WATERS OF LAKE MICHIGAN" /> <entry match="^LMZ.*" replace="THE ADJACENT WATERS OF LAKE MICHIGAN" />
<entry match="^LOZ.*" replace="THE ADJACENT COASTAL WATERS OF LAKE ONTARIO" /> <entry match="^LOZ.*" replace="THE ADJACENT WATERS OF LAKE ONTARIO" />
<entry match="^LSZ.*" replace="THE ADJACENT COASTAL WATERS OF LAKE SUPERIOR" /> <entry match="^LSZ.*" replace="THE ADJACENT WATERS OF LAKE SUPERIOR" />
<entry match="^LCZ.*" replace="THE ADJACENT COASTAL WATERS OF LAKE SAINT CLAIRE" /> <entry match="^LCZ.*" replace="THE ADJACENT WATERS OF LAKE SAINT CLAIRE" />
<entry match="^SLZ.*" replace="" /> <!-- Saint Lawrence River --> <entry match="^SLZ.*" replace="" /> <!-- Saint Lawrence River -->
<entry match="^.*" replace="THE ADJACENT COASTAL WATERS" /> <entry match="^.*" replace="THE ADJACENT COASTAL WATERS" />
</zoneWordingConfig> </zoneWordingConfig>