Merge "Issue #1598 Make GridParamInfoLookup filter on extension. Change-Id: I6f045d8cdd7233b767f5403e56ec364737d73744" into development

Former-commit-id: 7b223be1a91cd67792d43865514867e6a12dfa7f
This commit is contained in:
Richard Peter 2013-02-18 15:36:41 -06:00 committed by Gerrit Code Review
commit 77157e3c6c

View file

@ -19,7 +19,6 @@
**/ **/
package com.raytheon.edex.plugin.gfe.paraminfo; package com.raytheon.edex.plugin.gfe.paraminfo;
import java.io.File;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
@ -37,6 +36,7 @@ import com.raytheon.uf.common.dataplugin.grid.mapping.DatasetIdMapper;
import com.raytheon.uf.common.localization.IPathManager; import com.raytheon.uf.common.localization.IPathManager;
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel; import com.raytheon.uf.common.localization.LocalizationContext.LocalizationLevel;
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType; import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
import com.raytheon.uf.common.localization.LocalizationFile;
import com.raytheon.uf.common.localization.PathManagerFactory; import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.common.status.IUFStatusHandler; import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus; import com.raytheon.uf.common.status.UFStatus;
@ -56,6 +56,8 @@ import com.raytheon.uf.common.util.mapping.MultipleMappingException;
* Jan 25, 2012 DR 14305 ryu Read site parameterInfo files * Jan 25, 2012 DR 14305 ryu Read site parameterInfo files
* Sep 12, 2012 #1117 dgilling Implement method to retrieve all * Sep 12, 2012 #1117 dgilling Implement method to retrieve all
* parm names for a given model. * parm names for a given model.
* Feb 15, 2013 1598 bsteffen Make GridParamInfoLookup filter on
* extension.
* *
* </pre> * </pre>
* *
@ -92,7 +94,7 @@ public class GridParamInfoLookup {
init(); init();
} }
private synchronized GridParamInfo getGribParamInfo(String mappedModel) { private GridParamInfo getGridParamInfo(String mappedModel) {
String paramInfoName = null; String paramInfoName = null;
try { try {
paramInfoName = DatasetIdMapper.getInstance().lookupAliasOrNull( paramInfoName = DatasetIdMapper.getInstance().lookupAliasOrNull(
@ -121,31 +123,27 @@ public class GridParamInfoLookup {
* The parameter name * The parameter name
* @return The parameter information * @return The parameter information
*/ */
public synchronized ParameterInfo getParameterInfo(String mappedModel, public ParameterInfo getParameterInfo(String mappedModel, String parameter) {
String parameter) { GridParamInfo modelInfo = getGridParamInfo(mappedModel);
GridParamInfo modelInfo = getGribParamInfo(mappedModel);
if (modelInfo == null) { if (modelInfo == null) {
return null; return null;
} }
ParameterInfo parameterInfo = modelInfo.getParameterInfo(parameter); ParameterInfo parameterInfo = modelInfo.getParameterInfo(parameter);
if (parameterInfo == null) {
return null;
}
return parameterInfo; return parameterInfo;
} }
public synchronized List<TimeRange> getParameterTimes(String mappedModel, public List<TimeRange> getParameterTimes(String mappedModel, Date refTime) {
Date refTime) { GridParamInfo modelInfo = getGridParamInfo(mappedModel);
GridParamInfo modelInfo = getGribParamInfo(mappedModel);
if (modelInfo == null) { if (modelInfo == null) {
return Collections.emptyList(); return Collections.emptyList();
} }
return modelInfo.getAvailableTimes(refTime); return modelInfo.getAvailableTimes(refTime);
} }
public synchronized Collection<String> getParmNames(String mappedModel) { public Collection<String> getParmNames(String mappedModel) {
GridParamInfo modelInfo = getGribParamInfo(mappedModel); GridParamInfo modelInfo = getGridParamInfo(mappedModel);
if (modelInfo == null) { if (modelInfo == null) {
return Collections.emptyList(); return Collections.emptyList();
} }
@ -173,70 +171,45 @@ public class GridParamInfoLookup {
return; return;
} }
IPathManager pm = PathManagerFactory.getPathManager(); IPathManager pm = PathManagerFactory.getPathManager();
File infoDir = pm.getFile(pm.getContext(LocalizationType.EDEX_STATIC,
LocalizationLevel.BASE), "/grid/parameterInfo");
File[] files = infoDir.listFiles();
for (File file : files) { LocalizationFile[] files = pm.listFiles(
pm.getLocalSearchHierarchy(LocalizationType.EDEX_STATIC),
"grid" + IPathManager.SEPARATOR + "parameterInfo",
new String[] { ".xml" }, true, true);
for (LocalizationFile file : files) {
try { try {
GridParamInfo paramInfo = (GridParamInfo) um.unmarshal(file); GridParamInfo paramInfo = (GridParamInfo) um.unmarshal(file
modelParamMap .getFile());
.put(file.getName().replace(".xml", ""), paramInfo); String key = file.getName().replace(".xml", "");
if (!modelParamMap.containsKey(key)) {
modelParamMap.put(key, paramInfo);
}
} catch (JAXBException e) { } catch (JAXBException e) {
statusHandler.handle(Priority.PROBLEM, statusHandler.handle(Priority.PROBLEM,
"Error unmarshalling grid parameter information", e); "Error unmarshalling grid parameter information", e);
} }
} }
// Read SITE level files. // Deprecated grib SITE level files.
File siteDir = pm.getFile(pm.getContext(LocalizationType.EDEX_STATIC, files = pm.listFiles(pm.getContext(LocalizationType.EDEX_STATIC,
LocalizationLevel.SITE), "/grid/parameterInfo"); LocalizationLevel.SITE), "grib" + IPathManager.SEPARATOR
if (siteDir.exists()) { + "parameterInfo", new String[] { ".xml" }, true, true);
files = siteDir.listFiles(); for (LocalizationFile file : files) {
for (File file : files) { String name = file.getName().replace(".xml", "");
String name = file.getName().replace(".xml", ""); // Do not override grid files.
// Do not override BASE files. if (modelParamMap.get(name) != null) {
if (modelParamMap.get(name) != null) { continue;
continue; }
}
try { try {
GridParamInfo paramInfo = (GridParamInfo) um GridParamInfo paramInfo = (GridParamInfo) um.unmarshal(file
.unmarshal(file); .getFile());
modelParamMap.put(name, paramInfo); modelParamMap.put(name, paramInfo);
} catch (JAXBException e) { } catch (JAXBException e) {
statusHandler statusHandler.handle(Priority.PROBLEM,
.handle(Priority.PROBLEM, "Error unmarshalling grid parameter information", e);
"Error unmarshalling grid parameter information",
e);
}
} }
} }
// Deprecated grib SITE level files.
File siteGribDir = pm.getFile(pm.getContext(LocalizationType.EDEX_STATIC,
LocalizationLevel.SITE), "/grib/parameterInfo");
if (siteGribDir.exists()) {
files = siteGribDir.listFiles();
for (File file : files) {
String name = file.getName().replace(".xml", "");
// Do not override BASE files.
if (modelParamMap.get(name) != null) {
continue;
}
try {
GridParamInfo paramInfo = (GridParamInfo) um
.unmarshal(file);
modelParamMap.put(name, paramInfo);
} catch (JAXBException e) {
statusHandler
.handle(Priority.PROBLEM,
"Error unmarshalling grid parameter information",
e);
}
}
}
} }
} }