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

View file

@ -440,19 +440,35 @@ public class WatchUtil {
List<String> partOfState = new ArrayList<String>(
determineAffectedPortions(watch.getAreas()));
watch.setPartOfState(partOfState);
} else {
watch.setMarineAreas(determineMarineAreas(watch.getAreas()));
}
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 state name.
/* Sorts the watches based on ETN, then state. Marine areas
* have a null state value so they appear at the end of each
* watch.
*/
Collections.sort(watches, new Comparator<Watch>() {
@Override
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 state2 = watch2.getState();
if (state1 == state2)
@ -465,25 +481,6 @@ public class WatchUtil {
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;
}
@ -513,6 +510,18 @@ public class WatchUtil {
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) {
HashSet<Pair<Integer, String>> groupedAreas = new HashSet<Pair<Integer,String>>();
for (String area : areas) {

View file

@ -230,10 +230,10 @@ ${currTime}##
#set($lastTime = ${currTime})
#end
#end
#if(!${watch.marineAreas})
#if(!${watch.marineArea})
#areaFormat(${watch.partOfState} true false true)${watch.state}##
#else
#formatMarineAreas(${watch.marineAreas})
#formatMarineArea(${watch.marineArea})
#end
#set($lastEtn = ${watch.etn})
#end
@ -291,10 +291,10 @@ ${currTime}##
#set($lastTime = ${currTime})
#end
#end
#if(!${watch.marineAreas})
#if(!${watch.marineArea})
#areaFormat(${watch.partOfState} true false true)${watch.state}##
#else
#formatMarineAreas(${watch.marineAreas})
#formatMarineArea(${watch.marineArea})
#end
#set($lastEtn = ${watch.etn})
#end
@ -304,23 +304,9 @@ ${currTime}##
#end
########END MACRO
#macro(formatMarineAreas $marineAreas)
#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
#macro(formatMarineArea $marineArea)
${marineArea}##
#end
#if($macount == $numMarineAreas - 1)
AND ##
#elseif($macount < $numMarineAreas)
...##
#end
#end
#end
########END MACRO
#macro(printcoords $coordinates $list)

View file

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