Merge "Issue #189 initial checkin of parameter plugin Change-Id: I6c99e88751c0b7913145801e0f0fb4efed8a281a" into Unified_Grid

Former-commit-id: 8c6a9c6719 [formerly 2c39f2e584] [formerly 54b7b9ed09 [formerly a0ec82d660d95f6d8e0866d03ccc6fa97b361a71]]
Former-commit-id: 54b7b9ed09
Former-commit-id: 7f93237af0
This commit is contained in:
Richard Peter 2012-09-12 11:45:08 -05:00 committed by Gerrit Code Review
commit 41eb2f3d9a
25 changed files with 2328 additions and 0 deletions

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.raytheon.uf.common.parameter</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View file

@ -0,0 +1,8 @@
#Tue Jan 31 13:33:35 CST 2012
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6

View file

@ -0,0 +1,20 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Parameter
Bundle-SymbolicName: com.raytheon.uf.common.parameter
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: RAYTHEON
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Eclipse-BuddyPolicy: registered, ext, global
Eclipse-RegisterBuddy: com.raytheon.uf.common.serialization
Import-Package: com.raytheon.uf.common.dataplugin.annotations,
com.raytheon.uf.common.dataplugin.persist,
com.raytheon.uf.common.localization,
com.raytheon.uf.common.serialization,
com.raytheon.uf.common.serialization.annotations,
com.raytheon.uf.common.status,
javax.measure.converter,
javax.measure.unit,
javax.persistence
Export-Package: com.raytheon.uf.common.parameter,
com.raytheon.uf.common.parameter.mapping

View file

@ -0,0 +1 @@
com.raytheon.uf.common.parameter.Parameter

View file

@ -0,0 +1,4 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.

View file

@ -0,0 +1,257 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.common.parameter;
import java.text.ParseException;
import javax.measure.converter.UnitConverter;
import javax.measure.unit.Unit;
import javax.measure.unit.UnitFormat;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import com.raytheon.uf.common.dataplugin.annotations.DataURI;
import com.raytheon.uf.common.dataplugin.persist.PersistableDataObject;
import com.raytheon.uf.common.serialization.ISerializableObject;
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
/**
*
* Defines a parameter as a unique abbreviation, a human readable name, and a
* unit.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Jan 12, 2012 bsteffen Initial creation
*
* </pre>
*
* @author bsteffen
* @version 1.0
*/
@DynamicSerialize
@Entity
@Table(name = "parameter")
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement
public class Parameter extends PersistableDataObject implements
ISerializableObject {
private static final long serialVersionUID = 4866022583462757340L;
@Id
@DynamicSerializeElement
@XmlElement
@DataURI(position = 0)
private String abbreviation;
@Column(nullable = false)
@DynamicSerializeElement
@XmlElement
private String name;
@Column(name = "unit")
@DynamicSerializeElement
@XmlElement(name = "unit")
private String unitString = "";
private transient Unit<?> unit = null;
public Parameter() {
}
public Parameter(String abbreviation) {
this.abbreviation = abbreviation;
this.name = abbreviation;
}
public Parameter(String abbreviation, Unit<?> unit) {
this(abbreviation);
this.setUnit(unit);
}
public Parameter(String abbrevation, String name) {
this(abbrevation);
this.name = name;
}
public Parameter(String abbrevation, String name, Unit<?> unit) {
this(abbrevation, name);
this.setUnit(unit);
}
public Parameter(String abbrevation, String name, String unitString) {
this(abbrevation, name);
this.setUnitString(unitString);
}
public String getAbbreviation() {
return abbreviation;
}
public void setAbbreviation(String abbreviation) {
this.abbreviation = abbreviation;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUnitString() {
return unitString;
}
public void setUnitString(String unitString) {
this.unitString = unitString;
this.unit = null;
}
public Unit<?> getUnit() {
if (unit == null) {
if (unitString != null && unitString.length() > 0) {
try {
unit = (Unit<?>) UnitFormat.getUCUMInstance().parseObject(
unitString);
} catch (ParseException e) {
// UFStatus.getHandler().handle(Priority.WARN,
// "Unable to parse Parameter unit string: " + unitString);
unit = Unit.ONE;
}
} else {
unit = Unit.ONE;
}
}
return unit;
}
public void setUnit(Unit<?> unit) {
this.unit = unit;
if (unit.equals(Unit.ONE) || unit == null) {
this.unitString = "";
} else {
this.unitString = UnitFormat.getUCUMInstance().format(unit);
}
}
/**
* Compare the unit and unit string of two parameters and return a converter
* or null if they are incompatible. In addition to checking the units for
* convertability it will also return an IdentityConverter if the
* unitStrings are equal, even if they are not parseable as a unit object.
*
* @param sourceParameter
* @param destParameter
* @return a converter that can convert the units of sourceParameter to the
* units of destParameter
*/
public static UnitConverter compareUnits(Parameter sourceParameter,
Parameter destParameter) {
String srcString = sourceParameter.getUnitString();
String destString = destParameter.getUnitString();
Unit<?> srcUnit = sourceParameter.getUnit();
Unit<?> destUnit = destParameter.getUnit();
if (srcString == null) {
if (destString == null) {
// Both strings are null, that is the same units
return UnitConverter.IDENTITY;
} else {
// src string is null and dest is not, not compatible.
return null;
}
} else if (srcString.equals(destString)) {
// unit strings are equal, thay are the same
return UnitConverter.IDENTITY;
} else if (srcUnit == null || destUnit == null) {
// One or both units are null and the strings are different, not
// compatible
return null;
} else if (srcUnit.isCompatible(destUnit)) {
// regular unit converter
return srcUnit.getConverterTo(destUnit);
} else {
// strings are different and units are incompatible.
return null;
}
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((abbreviation == null) ? 0 : abbreviation.hashCode());
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result
+ ((unitString == null) ? 0 : unitString.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Parameter other = (Parameter) obj;
if (abbreviation == null) {
if (other.abbreviation != null)
return false;
} else if (!abbreviation.equals(other.abbreviation))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (unitString == null) {
if (other.unitString != null)
return false;
} else if (!unitString.equals(other.unitString))
return false;
return true;
}
@Override
public String toString() {
return "Parameter [abbreviation=" + abbreviation + ", name=" + name
+ ", unitString=" + unitString + "]";
}
}

View file

@ -0,0 +1,121 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.common.parameter;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import com.raytheon.uf.common.localization.IPathManager;
import com.raytheon.uf.common.localization.LocalizationContext;
import com.raytheon.uf.common.localization.LocalizationFile;
import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
/**
* Provides utility method for accessing the set of parameters that are defined
* in localization.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 5, 2012 bsteffen Initial creation
*
* </pre>
*
* @author bsteffen
* @version 1.0
*/
public class ParameterDefinitions {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(ParameterDefinitions.class);
private static List<Parameter> parameters;
public static synchronized List<Parameter> getParameters() {
if (parameters == null) {
parameters = new ArrayList<Parameter>();
Unmarshaller unmarshaller = null;
try {
JAXBContext context = JAXBContext
.newInstance(ParameterList.class);
unmarshaller = context.createUnmarshaller();
} catch (JAXBException e) {
statusHandler
.error("Error creating Context for parameter defintions, no parameter defintions will be used.",
e);
}
if (unmarshaller != null) {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext commonStaticBase = pathMgr.getContext(
LocalizationContext.LocalizationType.COMMON_STATIC,
LocalizationContext.LocalizationLevel.BASE);
LocalizationContext commonStaticSite = pathMgr.getContext(
LocalizationContext.LocalizationType.COMMON_STATIC,
LocalizationContext.LocalizationLevel.SITE);
LocalizationFile[] files = pathMgr.listFiles(
new LocalizationContext[] { commonStaticSite,
commonStaticBase }, "parameter"
+ IPathManager.SEPARATOR + "definition",
new String[] { ".xml" }, true, true);
for (LocalizationFile file : files) {
if (file == null || !file.exists()
|| file.getFile().length() < 0) {
continue;
}
Object obj = null;
try {
obj = unmarshaller.unmarshal(file.getFile());
} catch (JAXBException e) {
statusHandler
.error("Error reading parameter defintions: "
+ file.getName() + " has been ignored.",
e);
continue;
}
if (obj instanceof ParameterList) {
ParameterList list = (ParameterList) obj;
if (list.getParameters() != null) {
parameters.addAll(list.getParameters());
}
} else {
statusHandler
.error("Error reading parameter defintions: "
+ file.getName() + " was a "
+ obj.getClass().getSimpleName());
}
}
}
}
return parameters;
}
}

View file

@ -0,0 +1,60 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.common.parameter;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
/**
* A XMLSerializeable list of parameters.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Mar 22, 2012 bsteffen Initial creation
*
* </pre>
*
* @author bsteffen
* @version 1.0
*/
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement
public class ParameterList {
@XmlElement(name = "parameter")
private List<Parameter> parameters;
public List<Parameter> getParameters() {
return parameters;
}
public void setParameters(List<Parameter> parameters) {
this.parameters = parameters;
}
}

View file

@ -0,0 +1,78 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.common.parameter.mapping;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlValue;
/**
* Parameter Alias definition, base should be a well defined parameter
* abbreviation in a parameter definition file and alias is an alternative
* parameter abbreviation that can be used to describe the same parameter.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Mar 22, 2012 bsteffen Initial creation
*
* </pre>
*
* @author bsteffen
* @version 1.0
*/
@XmlAccessorType(XmlAccessType.NONE)
public class ParameterAlias {
@XmlAttribute
private String base;
@XmlValue
private String alias;
public ParameterAlias() {
}
public ParameterAlias(String base, String alias) {
this.base = base;
this.alias = alias;
}
public String getBase() {
return base;
}
public void setBase(String base) {
this.base = base;
}
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
}

View file

@ -0,0 +1,211 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.common.parameter.mapping;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import com.raytheon.uf.common.parameter.Parameter;
/**
*
* A ParameterAliasList represents a set of alternative abbreviations for a
* parameter. This list defines the alternatives within a namespace so that it
* is possible to match aliases for only a specific group. Parent namespaces can
* be used to bring all aliases from another list into this namespace.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Mar 22, 2012 bsteffen Initial creation
*
* </pre>
*
* @author bsteffen
* @version 1.0
*/
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement
public class ParameterAliasList {
/**
* The parent namespace is used if a parameter lookup within this namespace
* fails.
*/
@XmlAttribute
private List<String> parentNamespace;
/**
* A name for this group of parameter aliases
*/
@XmlAttribute
private String namespace;
/**
* The actual alias definitions for the list
*/
@XmlElement(name = "alias")
private List<ParameterAlias> aliasList = new ArrayList<ParameterAlias>();
/**
* Map an alias name to a parameter
*/
private Map<String, Parameter> map = new HashMap<String, Parameter>();
/**
* maps a lower case alias name to a parameter for case insensitive searches
*/
private Map<String, Parameter> lowerCaseMap = new HashMap<String, Parameter>();
/**
* maps parameters to thier alias name
*/
private Map<Parameter, String> reverseMap = new HashMap<Parameter, String>();
/**
* a list of the parent list corresponding to the parent namespaces.
*/
private List<ParameterAliasList> parentList = new ArrayList<ParameterAliasList>();
public ParameterAliasList() {
}
public ParameterAliasList(String name) {
this.namespace = name;
}
public List<String> getParentNamespace() {
return parentNamespace;
}
public void setParentNamespace(List<String> parentNamespace) {
this.parentNamespace = parentNamespace;
}
public String getNamespace() {
return namespace;
}
public void setNamespace(String namespace) {
this.namespace = namespace;
}
public List<ParameterAlias> getAliasList() {
return aliasList;
}
public void setAliasList(List<ParameterAlias> aliasList) {
this.aliasList = aliasList;
}
public void addAlias(ParameterAlias alias) {
this.aliasList.add(alias);
}
public Parameter lookupParameter(String alias) {
Parameter p = map.get(alias);
if (p == null) {
// If I don't have it then check my parents.
for (ParameterAliasList parent : parentList) {
p = parent.lookupParameter(alias);
if (p != null) {
break;
}
}
}
return p;
}
public Parameter lookupParameterCaseInsensitive(String alias) {
Parameter p = lowerCaseMap.get(alias.toLowerCase());
if (p == null) {
// If I don't have it then check my parents.
for (ParameterAliasList parent : parentList) {
p = parent.lookupParameterCaseInsensitive(alias);
if (p != null) {
break;
}
}
}
return p;
}
public String lookupAlias(Parameter parameter) {
String alias = reverseMap.get(parameter);
if (alias == null) {
for (ParameterAliasList parent : parentList) {
alias = parent.lookupAlias(parameter);
if (alias != null) {
break;
}
}
}
return alias;
}
/**
* @param pl
*/
public void addParent(ParameterAliasList parent) {
parentList.add(parent);
}
public void resolve(Map<String, Parameter> globalMap) {
for (ParameterAlias alias : aliasList) {
Parameter parameter = globalMap.get(alias.getBase());
if (parameter == null) {
continue;
}
map.put(alias.getAlias(), parameter);
lowerCaseMap.put(alias.getAlias().toLowerCase(), parameter);
reverseMap.put(parameter, alias.getAlias());
if (!globalMap.containsKey(alias.getAlias())) {
globalMap.put(alias.getAlias(), parameter);
}
}
}
public void merge(ParameterAliasList list) {
if (list.getParentNamespace() != null) {
for (String parent : list.getParentNamespace()) {
if (!parentNamespace.contains(parent)) {
parentNamespace.add(parent);
}
}
}
if (list.getAliasList() != null) {
for (ParameterAlias alias : list.getAliasList()) {
aliasList.add(alias);
}
}
}
}

View file

@ -0,0 +1,308 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.common.parameter.mapping;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import com.raytheon.uf.common.localization.IPathManager;
import com.raytheon.uf.common.localization.LocalizationContext;
import com.raytheon.uf.common.localization.LocalizationFile;
import com.raytheon.uf.common.localization.PathManagerFactory;
import com.raytheon.uf.common.parameter.Parameter;
import com.raytheon.uf.common.parameter.ParameterDefinitions;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
/**
* This class can be used to map parameters between different parameter naming
* conventions. There is a system wide base naming convention defined in the
* parameter definition file. All other naming conventions can be defined as a
* set of abbreviations that alias these base parameters. The aliases for a
* single naming convention are grouped within a namespace.
*
* For any namespace the base parameter that matches an abbreviation can be
* found by looking up the parameter in the namespace. If the namespace is
* unknown it is also possible to do a full search of all namespaces to find any
* parameter that matches an abbreviation.
*
* Given a base parameter, it is also possible to lookup an alias within a given
* namespace.
*
* There are two namespaces that recieve special treatment. The "base" namespace
* will contain all parameter abbreviations from the parameter definition files.
* The "deprecated" namespace should contain any parameters that were at one
* time in base but have been replaced. If any class is doing lookups based off
* standard parameters, they may want to check "deprecated" to determine if the
* base set has changed.
*
* Here are some examples of how this class might be used:
*
* 1) To look up a base parameter that is defined by the TMP abbreviation in the
* grib namespace:<br>
* ParameterMapper.getInstance().lookupParameter("grib","TMP");
*
* 2) To look up a base parameter that is defined by the "TMP" abbreviation in
* any namespace:<br>
* ParameterMapper.getInstance().lookupParameter("TMP");
*
* 3) To find the parameter abbreviation in the "cf" namespace that matches the
* "TMP" abbreviation from the grib namespace<br>
* Parameter p = ParameterMapper.getInstance().lookupParameter("grib","TMP");<br>
* String cfAbbrev = ParameterMapper.getInstance().lookupAlias(p,"cf");<br>
*
* 4) To check if the "T" is a base parameter or a deprecated parameter:<br>
*
* <pre>
* Parameter p = ParameterMapper.getInstance().lookupParameter("base","T");
* if (p != null){
* System.out.println("T is a base parameter");
* }else{
* p = ParameterMapper.getInstance().lookupParameter("deprecated","T");
* if(p != null){
* System.out.println("T is deprecated, it has been replaced with " + p.getAbbreviation());
* }
* }<br>
* </pre>
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Mar 22, 2012 bsteffen Initial creation
*
* </pre>
*
* @author bsteffen
* @version 1.0
*/
public class ParameterMapper {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(ParameterMapper.class);
private Map<String, Parameter> map = new HashMap<String, Parameter>();
private Map<String, ParameterAliasList> namespaceMap = new HashMap<String, ParameterAliasList>();
private ParameterMapper() {
Unmarshaller unmarshaller = null;
try {
JAXBContext context = JAXBContext
.newInstance(ParameterAliasList.class);
unmarshaller = context.createUnmarshaller();
} catch (JAXBException e) {
statusHandler
.error("Error creating Context for parameter mapper, no parameter aliases will be used.",
e);
}
if (unmarshaller != null) {
IPathManager pathMgr = PathManagerFactory.getPathManager();
LocalizationContext commonStaticBase = pathMgr.getContext(
LocalizationContext.LocalizationType.COMMON_STATIC,
LocalizationContext.LocalizationLevel.BASE);
LocalizationContext commonStaticSite = pathMgr.getContext(
LocalizationContext.LocalizationType.COMMON_STATIC,
LocalizationContext.LocalizationLevel.SITE);
// First fill the map with well defined parameters.
ParameterAliasList baseList = new ParameterAliasList("base");
for (Parameter p : ParameterDefinitions.getParameters()) {
baseList.addAlias(new ParameterAlias(p.getAbbreviation(), p
.getAbbreviation()));
map.put(p.getAbbreviation(), p);
}
// read in the namespace map
LocalizationFile[] files = pathMgr.listFiles(
new LocalizationContext[] { commonStaticSite,
commonStaticBase }, "parameter"
+ IPathManager.SEPARATOR + "alias",
new String[] { ".xml" }, true, true);
List<ParameterAliasList> aliasLists = new ArrayList<ParameterAliasList>(
files.length);
for (LocalizationFile file : files) {
if (file == null || !file.exists()
|| file.getFile().length() < 0) {
continue;
}
Object obj = null;
try {
obj = unmarshaller.unmarshal(file.getFile());
} catch (JAXBException e) {
statusHandler.error("Error reading parameter aliases: "
+ file.getName() + " has been ignored.", e);
}
if (obj instanceof ParameterAliasList) {
ParameterAliasList list = (ParameterAliasList) obj;
aliasLists.add(list);
if (list.getNamespace() != null) {
ParameterAliasList realList = namespaceMap.get(list
.getNamespace());
if (realList == null) {
namespaceMap.put(list.getNamespace(), list);
} else {
realList.merge(list);
aliasLists.remove(list);
}
}
} else if (obj != null) {
statusHandler.error("Error reading parameter aliases: "
+ file.getName() + " was a "
+ obj.getClass().getSimpleName());
}
}
namespaceMap.put(baseList.getNamespace(), baseList);
aliasLists.add(baseList);
// Fill in lower case entries for a case insensitve namespace map
Map<String, ParameterAliasList> lowerCaseNSMap = new HashMap<String, ParameterAliasList>();
for (Entry<String, ParameterAliasList> entry : namespaceMap
.entrySet()) {
String lowerCase = entry.getKey().toLowerCase();
if (!namespaceMap.containsKey(lowerCase)
&& !lowerCaseNSMap.containsKey(lowerCase)) {
lowerCaseNSMap.put(lowerCase, entry.getValue());
}
}
namespaceMap.putAll(lowerCaseNSMap);
// If there is a deprecated namespace it should take priority over
// all other.
ParameterAliasList depList = namespaceMap.get("deprecated");
if (depList != null) {
resolve(depList);
aliasLists.remove(depList);
}
// Add all other namespaces to the map.
for (ParameterAliasList list : aliasLists) {
resolve(list);
}
// Finally fill in lower case entries for a case insensitve search
Map<String, Parameter> lowerCaseMap = new HashMap<String, Parameter>();
for (Entry<String, Parameter> entry : map.entrySet()) {
String lowerCase = entry.getKey().toLowerCase();
if (!map.containsKey(lowerCase)
&& !lowerCaseMap.containsKey(lowerCase)) {
lowerCaseMap.put(lowerCase, entry.getValue());
}
}
map.putAll(lowerCaseMap);
}
}
private void resolve(ParameterAliasList list) {
if (list.getParentNamespace() != null) {
for (String parent : list.getParentNamespace()) {
ParameterAliasList pl = namespaceMap.get(parent);
if (pl != null) {
list.addParent(pl);
}
}
}
list.resolve(map);
}
/**
* Find the parameter with an alias defined in the provided namespace.
*
* @param namespace
* - the defined alias namespace to look for the parameter
* @param alias
* - the name of an alias defined in the namespace
* @return the defined parameter or null if the namespace or alias is
* undefined
*/
public Parameter lookupParameter(String namespace, String alias) {
if (alias == null) {
return null;
}
ParameterAliasList list = namespaceMap.get(namespace);
if (list == null) {
list = namespaceMap.get(namespace.toLowerCase());
if (list == null) {
return null;
}
}
Parameter p = list.lookupParameter(alias);
if (p == null) {
p = list.lookupParameterCaseInsensitive(alias);
}
return p;
}
/**
* Look up a parameter from an abbreviation. First the base namespace is
* searched, then the deprecated namespace, and then all other namespaces in
* an unspecified order. If the abbreviation is not defined in any namespace
* a case insensitive search is performed.
*
* @param alias
* - an abbreviation for a parameter
* @return The parameter that matches or is aliased to the provided alias or
* null if it is not found.
*/
public Parameter lookupParameter(String alias) {
Parameter p = map.get(alias);
if (p == null) {
p = map.get(alias.toLowerCase());
}
return p;
}
/**
* Lookup an alias abbreviation for a parameter within a given namespace. If
* multiple aliases for that parameter are in the given namespace, only one
* will be returned.
*
* @param parameter
* - The base parameter to find an alias for
* @param namespace
* - The namespace in which to look for an alias.
* @return an alias abbreviation or null if none is found.
*/
public String lookupAlias(Parameter parameter, String namespace) {
ParameterAliasList ns = namespaceMap.get(namespace);
if (ns == null) {
ns = namespaceMap.get(namespace.toLowerCase());
if (ns == null) {
return null;
}
}
return ns.lookupAlias(parameter);
}
private static ParameterMapper instance;
public static synchronized ParameterMapper getInstance() {
if (instance == null) {
instance = new ParameterMapper();
}
return instance;
}
}

View file

@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<parameterAliasList namespace="cf">
<!-- http://cf-pcmdi.llnl.gov/ -->
<alias base="AV">atmosphere_absolute_vorticity</alias>
<alias base="CDCON">convective_cloud_area_fraction</alias>
<alias base="CP">convective_precipitation_amount</alias>
<alias base="DpT">dew_point_temperature</alias>
<alias base="DpD">dew_point_depression</alias>
<alias base="WVDIR">direction_of_wind_wave_velocity</alias>
<alias base="SWDIR">direction_of_swell_wave_velocity</alias>
<alias base="EPT">pseudo_equivalent_potential_temperature</alias>
<alias base="EVP">water_evaporation_amount </alias>
<alias base="GH">geopotential_height</alias>
<alias base="GeH">altitude</alias>
<alias base="HCDC">high_cloud_area_fraction</alias>
<alias base="ICETK">sea_ice_thickness</alias>
<alias base="MIXR">humidity_mixing_ratio</alias>
<alias base="LAPR">air_temperature_lapse_rate</alias>
<alias base="LCDC">low_cloud_area_fraction</alias>
<alias base="LgSP">large_scale_precipitation_amount</alias>
<alias base="LHF">surface_upward_latent_heat_flux</alias>
<alias base="WVPER">wind_wave_period</alias>
<alias base="SWPER">swell_wave_period</alias>
<alias base="MCDC">medium_cloud_area_fraction</alias>
<alias base="P">air_pressure</alias>
<alias base="PMSL">air_pressure_at_sea_level</alias>
<alias base="PoT">air_potential_temperature</alias>
<alias base="PR">precipitation_flux</alias>
<alias base="PRESA">air_pressure_anomaly</alias>
<alias base="PW">atmosphere_water_vapour_content</alias>
<alias base="RH">relative_humidity</alias>
<alias base="SATD">water_vapour_saturation_deficit</alias>
<alias base="SWELL">significant_height_of_swell_waves</alias>
<alias base="WVHGT">significant_height_of_wind_waves</alias>
<alias base="SnD">surface_snow_thickness</alias>
<alias base="SH">specific_humidity</alias>
<alias base="SHF">surface_upward_sensible_heat_flux</alias>
<alias base="TSOIL">soil_temperature</alias>
<alias base="T">air_temperature</alias>
<alias base="Ta">air_temperature_anomaly</alias>
<alias base="ThP">thunderstorm_probability</alias>
<alias base="TCC">cloud_area_fraction </alias>
<alias base="TP">precipitation_amount</alias>
<alias base="uW">eastward_wind</alias>
<alias base="vW">northward_wind</alias>
<alias base="VAPP">water_vapour_pressure</alias>
<alias base="VWSH">wind_speed_shear</alias>
<alias base="PVV">vertical_air_velocity_expressed_as_tendency_of_pressure</alias>
<alias base="Vis">visibility_in_air</alias>
<alias base="VTMP">virtual_temperature</alias>
<alias base="WEASD">surface_snow_amount</alias>
<alias base="WMIXE">wind_mixing_energy_flux_into_ocean</alias>
<alias base="WD">wind_from_direction</alias>
<alias base="WS">wind_speed</alias>
<alias base="WGS">wind_speed_of_gust</alias>
</parameterAliasList>

View file

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<parameterAliasList namespace="GEMPAK">
<alias base="WGH">HGHT5</alias>
<alias base="AV">AVOR</alias>
<alias base="CRAIN">WXTR</alias>
<alias base="CFRZR">WXTZ</alias>
<alias base="CICEP">WXTP</alias>
<alias base="CSNOW">WXTS</alias>
<alias base="CWAT">CWTR</alias>
<alias base="CAPE">CAPE</alias>
<alias base="CIn">CINH</alias>
<alias base="CDCON">CCLD</alias>
<alias base="CP1hr">C01M</alias>
<alias base="CP3hr">C03M</alias>
<alias base="CP6hr">C06M</alias>
<alias base="CP9hr">C09M</alias>
<alias base="CP12hr">C12M</alias>
<alias base="CPRAT">C12M</alias>
<alias base="DpT">DWPK</alias>
<alias base="DpD">DPDK</alias>
<alias base="WVDIR">DRCTWW</alias>
<alias base="SWDIR">DRCTSW</alias>
<alias base="EPT">THTE</alias>
<alias base="EVP">EVAP</alias>
<alias base="GH">HGHT</alias>
<alias base="GeH">DIST</alias>
<alias base="HIdx">HEAT</alias>
<alias base="HCDC">CLDH</alias>
<alias base="ICETK">ICET</alias>
<alias base="MIXR">MIXR</alias>
<alias base="LAPR">LAPS</alias>
<alias base="LCDC">CLDL</alias>
<alias base="LgSP1hr">S01M</alias>
<alias base="LgSP3hr">S03M</alias>
<alias base="LHF">FXLH</alias>
<alias base="MnT">TMNK</alias>
<alias base="WVPER">PERDWW</alias>
<alias base="SWPER">PERDSW</alias>
<alias base="MCDC">CLDM</alias>
<alias base="MxT">TMXK</alias>
<alias base="PLI">LIFT</alias>
<alias base="P">PRES</alias>
<alias base="PMSL">PMSL</alias>
<alias base="EMSP">EMSL</alias>
<alias base="MMSP">MMSL</alias>
<alias base="PoT">THTA</alias>
<alias base="PR">PCPR</alias>
<alias base="PRESA">PRESA</alias>
<alias base="DIRPW">DRCTPW</alias>
<alias base="PERPW">PERDPW</alias>
<alias base="CPOFP">POPZ</alias>
<alias base="CPOZP">POPF</alias>
<alias base="PVORT">PVOR</alias>
<alias base="PEVAP">PEVAP</alias>
<alias base="PEVPR">PEVP</alias>
<alias base="PW">PWTR</alias>
<alias base="RH">RELH</alias>
<alias base="SATD">SATD</alias>
<alias base="DIRSW">DRCTSW</alias>
<alias base="PERSW">PERDSW</alias>
<alias base="SWELL">HGHTSW</alias>
<alias base="WVHGT">HGHTWW</alias>
<alias base="SCP">SCVR</alias>
<alias base="SnD">SNDM</alias>
<alias base="SH">SPFH</alias>
<alias base="SHF">FXSH</alias>
<alias base="TSOIL">SLTK</alias>
<alias base="Heli">HLCY</alias>
<alias base="SLI">LIFT</alias>
<alias base="T">TMPK</alias>
<alias base="Ta">TMPKA</alias>
<alias base="ThP">TSTM</alias>
<alias base="TCC">CLD</alias>
<alias base="TP1hr">P01M</alias>
<alias base="TP3hr">P03M</alias>
<alias base="TP6hr">P06M</alias>
<alias base="TP9hr">P09M</alias>
<alias base="TP12hr">P12M</alias>
<alias base="TP18hr">P18M</alias>
<alias base="TP24hr">P24M</alias>
<alias base="TP48hr">P48M</alias>
<alias base="USTM">USTRM</alias>
<alias base="VSTM">VSTRM</alias>
<alias base="uW">UREL</alias>
<alias base="vW">VREL</alias>
<alias base="VAPP">VAPR</alias>
<alias base="VWSH">VWSH</alias>
<alias base="PVV">OMEG</alias>
<alias base="Vis">VSBY</alias>
<alias base="VPT">THTV</alias>
<alias base="VTMP">TVRK</alias>
<alias base="WEASD">SWEM</alias>
<alias base="WMIXE">ENRG</alias>
<alias base="WD">DRCT</alias>
<alias base="WS">SPED</alias>
<alias base="WGS">GUST</alias>
</parameterAliasList>

View file

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<parameterAliasList namespace="GrADS">
<!-- Parameters defined for surface level -->
<alias base="CAPE">capesfc</alias>
<alias base="CIn">cinsfc</alias>
<alias base="CFRZR">cfrzrsfc</alias>
<alias base="CRAIN">crainsfc</alias>
<alias base="CICEP">cicepsfc</alias>
<alias base="CSNOW">csnowsfc</alias>
<alias base="CP">cpratsfc</alias>
<alias base="WVDIR">wvdirsfc</alias>
<alias base="DIRSW">dirswsfc</alias>
<alias base="DIRPW">dirpwsfc</alias>
<alias base="EPT">epotsfc</alias>
<alias base="GH">hgtsfc</alias>
<alias base="Heli">hlcysfc</alias>
<alias base="LgSP">ncpcpsfc</alias>
<alias base="WVPER">wvpersfc</alias>
<alias base="PERSW">perswsfc</alias>
<alias base="PERPW">perpwsfc</alias>
<alias base="PR">pratesfc</alias>
<alias base="P">pressfc</alias>
<alias base="SCP">snowcsfc</alias>
<alias base="SnD">snodsfc</alias>
<alias base="SLI">lftxsfc</alias>
<alias base="T">tmpsfc</alias>
<alias base="TP">apcpsfc</alias>
<alias base="uW">ugrdsfc</alias>
<alias base="vW">vgrdsfc</alias>
<alias base="Vis">vissfc</alias>
<alias base="WD">wdirsfc</alias>
<alias base="WGS">gustsfc</alias>
<alias base="WS">windsfc</alias>
<alias base="WEASD">weasdsfc</alias>
<!-- Parameters defined for pressure levels -->
<alias base="AV">absvprs</alias>
<alias base="DpT">dptprs</alias>
<alias base="GH">hgtprs</alias>
<alias base="RH">rhprs</alias>
<alias base="uW">ugrdprs</alias>
<alias base="vW">vgrdprs</alias>
<alias base="PVV">vvelprs</alias>
<alias base="SH">spfhprs</alias>
<alias base="T">tmpprs</alias>
<!-- Parameters defined for 2 meters above ground -->
<alias base="AV">absvprs</alias>
<alias base="DpT">dpt2m</alias>
<alias base="DpD">depr2m</alias>
<alias base="PoT">pot2m</alias>
<alias base="RH">rh2m</alias>
<alias base="uW">ugrd2m</alias>
<alias base="vW">vgrd2m</alias>
<alias base="SH">spfh2m</alias>
<alias base="T">tmp2m</alias>
<!-- Parameters defined for tropopause -->
<alias base="PoT">pottrop</alias>
<alias base="GH">hgttrop</alias>
<alias base="P">prestrop</alias>
<alias base="T">tmptrop</alias>
<alias base="uW">ugrdtrop</alias>
<alias base="vW">vgrdtrop</alias>
<!-- Parameters defined for Max Wind Layer -->
<alias base="GH">hgtmwl</alias>
<alias base="P">presmwl</alias>
<alias base="T">tmpmwl</alias>
<alias base="uW">ugrdmwl</alias>
<alias base="vW">vgrdmwl</alias>
<!-- Parameters defined for 10 meters above ground -->
<alias base="uW">ugrd10m</alias>
<alias base="vW">vgrd10m</alias>
<alias base="WD">wdir10m</alias>
<alias base="WS">wind10m</alias>
<!-- Parameters defined for Atmospheric Column -->
<alias base="CWAT">cwatclm</alias>
<alias base="PW">pwatclm</alias>
<alias base="RH">rhclm</alias>
<alias base="TCC">tcdcclm</alias>
<!-- Parameters defined for Cloud Layers -->
<alias base="HCDC">tcdchcll</alias>
<alias base="LCDC">tcdclcll</alias>
<alias base="MCDC">tcdcmcll</alias>
<!-- Parameters defined for Mean Sea Level -->
<alias base="PMSL">prmslmsl</alias>
<alias base="EMSP">msletmsl</alias>
<!-- Parameters defined at 500mb -->
<alias base="AV">absv500mb</alias>
<alias base="WGH">no5wavh500mb</alias>
</parameterAliasList>

View file

@ -0,0 +1,104 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<parameterAliasList namespace="grib">
<alias base="WGH">5WAVH</alias>
<alias base="AV">ABSV</alias>
<alias base="CRAIN">CRAIN</alias>
<alias base="CFRZR">CFRZR</alias>
<alias base="CICEP">CICEP</alias>
<alias base="CSNOW">CSNOW</alias>
<alias base="CWAT">CWAT</alias>
<alias base="CAPE">CAPE</alias>
<alias base="CIn">CIN</alias>
<alias base="CDCON">CDCON</alias>
<alias base="CP">ACPCP</alias>
<alias base="CPRAT">CPRAT</alias>
<alias base="DpT">DPT</alias>
<alias base="DpD">DEPR</alias>
<alias base="WVDIR">WVDIR</alias>
<alias base="SWDIR">SWDIR</alias>
<alias base="EPT">EPOT</alias>
<alias base="EVP">EVP</alias>
<alias base="GH">HGT</alias>
<alias base="GeH">DIST</alias>
<alias base="HIdx">HTX</alias>
<alias base="HCDC">HCDC</alias>
<alias base="ICETK">ICETK</alias>
<alias base="MIXR">MIXR</alias>
<alias base="LAPR">LAPR</alias>
<alias base="LCDC">LCDC</alias>
<alias base="LgSP">NCPCP</alias>
<alias base="LHF">LHTFL</alias>
<alias base="MnT">TMIN</alias>
<alias base="WVPER">WVPER</alias>
<alias base="SWPER">SWPER</alias>
<alias base="MCDC">MCDC</alias>
<alias base="TMAX">TMXK</alias>
<alias base="PLI">PLI</alias>
<alias base="P">PRES</alias>
<alias base="PMSL">PRMSL</alias>
<alias base="EMSP">MSLET</alias>
<alias base="MMSP">MSLPM</alias>
<alias base="PoT">POT</alias>
<alias base="PR">PRATE</alias>
<alias base="PRESA">PRESA</alias>
<alias base="DIRPW">DIRPW</alias>
<alias base="PERPW">PERPW</alias>
<alias base="CPOFP">CPOFP</alias>
<alias base="CPOZP">CPOZP</alias>
<alias base="PVORT">PV</alias>
<alias base="PEVAP">PEVAP</alias>
<alias base="PEVPR">PEVPR</alias>
<alias base="PW">PWAT</alias>
<alias base="RH">RH</alias>
<alias base="SATD">SATD</alias>
<alias base="DIRSW">DIRSW</alias>
<alias base="PERSW">PERSW</alias>
<alias base="SWELL">SWELL</alias>
<alias base="WVHGT">WVHGT</alias>
<alias base="SCP">SNOWC</alias>
<alias base="SnD">SNOD</alias>
<alias base="SH">SPFH</alias>
<alias base="SHF">SHTFL</alias>
<alias base="TSOIL">TSOIL</alias>
<alias base="Heli">HLCY</alias>
<alias base="SLI">SLI</alias>
<alias base="T">TMP</alias>
<alias base="Ta">TMPA</alias>
<alias base="ThP">TSTM</alias>
<alias base="TCC">TCDC</alias>
<alias base="TP">APCP</alias>
<alias base="USTM">USTM</alias>
<alias base="VSTM">VSTM</alias>
<alias base="uW">UGRD</alias>
<alias base="vW">VGRD</alias>
<alias base="VAPP">VAPP</alias>
<alias base="VWSH">VWSH</alias>
<alias base="PVV">VVEL</alias>
<alias base="Vis">VIS</alias>
<alias base="VPT">VPTMP</alias>
<alias base="VTMP">VTMP</alias>
<alias base="WEASD">WEASD</alias>
<alias base="WMIXE">WMIXE</alias>
<alias base="WD">WDIR</alias>
<alias base="WS">WIND</alias>
<alias base="WGS">WGS</alias>
</parameterAliasList>

View file

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization.
Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340
________________________Mail_Stop_B8
________________________Omaha,_NE_68106
________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
further_licensing_information.
-->
<parameterAliasList namespace="sedris">
<!-- http://www.sedris.org/ -->
<alias base="AV">WIND_ABSOLUTE_VORTICITY</alias>
<alias base="CFRZR">FREEZING_RAIN_PRESENT</alias>
<alias base="CWAT">CLOUD_LIQUID_WATER_CONTENT</alias>
<alias base="CDCON">CONVECTIVE_CLOUD_LAYER</alias>
<alias base="CP">CONVECTIVE_PRECIPITATION_DENSITY</alias>
<alias base="DpT">DEW_POINT_TEMPERATURE</alias>
<alias base="DpD">DEW_POINT_DEPRESSION</alias>
<alias base="WVDIR">WIND_WAVE_DIRECTION</alias>
<alias base="SWDIR">MEAN_SWELL_WAVE_DIRECTION</alias>
<alias base="EPT">EQUIV_POTENTIAL_TEMPERATURE</alias>
<alias base="GH">GEOPOTENTIAL_ALTITUDE</alias>
<alias base="HIdx">TEMPERATURE_HEAT_INDEX</alias>
<alias base="HCDC">HIGH_CLOUD_COVERAGE</alias>
<alias base="ICETK">ICE_LAYER_THICKNESS</alias>
<alias base="MIXR">MIXING_RATIO</alias>
<alias base="LAPR">TEMPERATURE_LAPSE_RATE</alias>
<alias base="LCDC">LOW_CLOUD_COVERAGE</alias>
<alias base="LgSP">LARGE_SCALE_PRECIPITATION</alias>
<alias base="LHF">LATENT_HEAT_FLUX</alias>
<alias base="MnT">MINIMUM_AIR_TEMPERATURE</alias>
<alias base="WVPER">MEAN_WIND_WAVE_PERIOD</alias>
<alias base="SWPER">MEAN_SWELL_WAVE_PERIOD</alias>
<alias base="MCDC">MIDDLE_CLOUD_COVERAGE</alias>
<alias base="MxT">MAXIMUM_AIR_TEMPERATURE</alias>
<alias base="P">ATM_PRESSURE</alias>
<alias base="PMSL">ATM_PRESSURE_REDUCED_MSL</alias>
<alias base="PoT">POTENTIAL_AIR_TEMPERATURE</alias>
<alias base="PR">PRECIPITATION_RATE</alias>
<alias base="DIRPW">PRIMARY_WAVE_DIRECTION</alias>
<alias base="PERPW">MEAN_PRIMARY_WAVE_PERIOD</alias>
<alias base="PVORT">WIND_POTENTIAL_VORTICITY</alias>
<alias base="PEVAP">EVAPORATION_POTENTIAL</alias>
<alias base="PW">PRECIPITABLE_WATER</alias>
<alias base="RH">RELATIVE_HUMIDITY</alias>
<alias base="DIRSW">SECONDARY_WAVE_DIRECTION</alias>
<alias base="PERSW">MEAN_SECONDARY_WAVE_PERIOD</alias>
<alias base="SWELL">SIFNIF_SWELL_WAVE_HEIGHT</alias>
<alias base="WVHGT">SIFNIF_WIND_WAVE_HEIGHT</alias>
<alias base="SCP">SNOW_GROUND_COVER_FRACTION</alias>
<alias base="SnD">SNOW_ONLY_DEPTH</alias>
<alias base="SH">SPECIFIC_HUMIDITY</alias>
<alias base="SHF">SENSIBLE_HEAT_FLUX</alias>
<alias base="TSOIL">SOIL_TEMPERATURE</alias>
<alias base="Heli">STORM_RELATIVE_HELICITY</alias>
<alias base="T">AIR_TEMPERATURE</alias>
<alias base="ThP">THUNDERSTORM_PROBABILITY</alias>
<alias base="TCC">TOTAL_CLOUD_COVERAGE</alias>
<alias base="TP">ACCUM_PRECIP</alias>
<alias base="TP3hr">ACCUM_PRECIP_3_HOUR</alias>
<alias base="TP6hr">ACCUM_PRECIP_6_HOUR</alias>
<alias base="TP24hr">ACCUM_PRECIP_24_HOUR</alias>
<alias base="uW">WIND_SPEED_U</alias>
<alias base="vW">WIND_SPEED_V</alias>
<alias base="VWSH">WIND_SHEAR_VERTICAL</alias>
<alias base="PVV">WIND_OMEGA</alias>
<alias base="Vis">VISIBILITY_DISTANCE</alias>
<alias base="VPT">VIRTUAL_POTENTIAL_TEMPERATURE</alias>
<alias base="VTMP">VIRTUAL_AIR_TEMPERATURE</alias>
<alias base="WEASD">SNOW_ACCUM_DEPTH_EQUIVALENT</alias>
<alias base="WD">WIND_DIRECTION</alias>
<alias base="WS">WIND_SPEED</alias>
<alias base="WGS">WIND_GUST_SPEED</alias>
</parameterAliasList>

View file

@ -0,0 +1,502 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- This_software_was_developed_and_/_or_modified_by_Raytheon_Company, pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA This_software_product_contains_export-restricted_data_whose
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
an_export_license_or_other_authorization. Contractor_Name:________Raytheon_Company
Contractor_Address:_____6825_Pine_Street,_Suite_340 ________________________Mail_Stop_B8
________________________Omaha,_NE_68106 ________________________402.291.0100
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for further_licensing_information. -->
<parameterList>
<!-- Defines the parameters that are considered well defined. Not all parameters
in the database are guaranteed to be in this file since it is possible for
an ingest plugin to specify new parameters. Defining a parameter here will
cause all data to be stored using the given unit and also makes it possible
to use that parameter in the parameter mapping framework. In the long term,
all new parameters should be added here to avoid conflicts that could occur
if two ingest plugins use the same abbreviation for different parameters. -->
<parameter>
<name>5-Wave Geopotential Height</name>
<abbreviation>WGH</abbreviation>
<unit>gpm</unit>
</parameter>
<parameter>
<name>Absolute Vorticity</name>
<abbreviation>AV</abbreviation>
<unit>/s</unit>
</parameter>
<parameter>
<name>Categorical Rain</name>
<abbreviation>CRAIN</abbreviation>
<unit>bit</unit>
</parameter>
<parameter>
<name>Categorical Freezing Rain</name>
<abbreviation>CFRZR</abbreviation>
<unit>bit</unit>
</parameter>
<parameter>
<name>Categorical Ice Pellets</name>
<abbreviation>CICEP</abbreviation>
<unit>bit</unit>
</parameter>
<parameter>
<name>Categorical Snow</name>
<abbreviation>CSNOW</abbreviation>
<unit>bit</unit>
</parameter>
<parameter>
<name>Cloud Water</name>
<abbreviation>CWAT</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Convective Available Potential Energy</name>
<abbreviation>CAPE</abbreviation>
<unit>J/kg</unit>
</parameter>
<parameter>
<name>Convective Inhibition</name>
<abbreviation>CIn</abbreviation>
<unit>J/kg</unit>
</parameter>
<parameter>
<name>Convective Cloud Cover</name>
<abbreviation>CDCON</abbreviation>
<unit>%</unit>
</parameter>
<parameter>
<name>Convective Precipitation</name>
<abbreviation>CP</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Convective Precipitation(1 hour)</name>
<abbreviation>CP1hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Convective Precipitation(3 hours)</name>
<abbreviation>CP3hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Convective Precipitation(6 hours)</name>
<abbreviation>CP6hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Convective Precipitation(9 hours)</name>
<abbreviation>CP9hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Convective Precipitation(12 hours)</name>
<abbreviation>CP12hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Convective Precipitation Rate</name>
<abbreviation>CPRAT</abbreviation>
<unit>mm/s</unit>
</parameter>
<parameter>
<name>Dew Point Depression</name>
<abbreviation>DpD</abbreviation>
<unit>K</unit>
</parameter>
<parameter>
<name>Dew Point Temperature</name>
<abbreviation>DpT</abbreviation>
<unit>K</unit>
</parameter>
<parameter>
<name>Direction of Wind Waves</name>
<abbreviation>WVDIR</abbreviation>
<unit>deg</unit>
</parameter>
<parameter>
<name>Direction of Swell Waves</name>
<abbreviation>SWDIR</abbreviation>
<unit>deg</unit>
</parameter>
<parameter>
<name>Equivalent Potential Temperature</name>
<abbreviation>EPT</abbreviation>
<unit>K</unit>
</parameter>
<parameter>
<name>Evaporation</name>
<abbreviation>EVP</abbreviation>
<unit>kg/m^2</unit>
</parameter>
<parameter>
<name>Geometric Height</name>
<abbreviation>GeH</abbreviation>
<unit>m</unit>
</parameter>
<parameter>
<name>Geopotential Height</name>
<abbreviation>GH</abbreviation>
<unit>gpm</unit>
</parameter>
<parameter>
<name>Heat Index</name>
<abbreviation>HIdx</abbreviation>
<unit>K</unit>
</parameter>
<parameter>
<name>High Cloud Cover</name>
<abbreviation>HCDC</abbreviation>
<unit>%</unit>
</parameter>
<parameter>
<name>Humidity Mixing Ratio</name>
<abbreviation>MIXR</abbreviation>
<unit>kg/kg</unit>
</parameter>
<parameter>
<name>Ice Thickness</name>
<abbreviation>ICETK</abbreviation>
<unit>m</unit>
</parameter>
<parameter>
<name>Lapse Rate</name>
<abbreviation>LAPR</abbreviation>
<unit>K/m</unit>
</parameter>
<parameter>
<name>Large Scale Precipitation</name>
<abbreviation>LgSP</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Large Scale Precipitation(1 hour)</name>
<abbreviation>LgSP1hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Large Scale Precipitation(3 hour)</name>
<abbreviation>LgSP3hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Latent Heat Flux</name>
<abbreviation>LHF</abbreviation>
<unit>W/m^2</unit>
</parameter>
<parameter>
<name>Low Cloud Cover</name>
<abbreviation>LCDC</abbreviation>
<unit>%</unit>
</parameter>
<parameter>
<name>Minimum Temperature</name>
<abbreviation>MnT</abbreviation>
<unit>K</unit>
</parameter>
<parameter>
<name>Mean Period of Wind Waves</name>
<abbreviation>WVPER</abbreviation>
<unit>s</unit>
</parameter>
<parameter>
<name>Mean Period of Swell Waves</name>
<abbreviation>SWPER</abbreviation>
<unit>s</unit>
</parameter>
<parameter>
<name>Medium Cloud Cover</name>
<abbreviation>MCDC</abbreviation>
<unit>%</unit>
</parameter>
<parameter>
<name>Maximum Temperature</name>
<abbreviation>MxT</abbreviation>
<unit>K</unit>
</parameter>
<parameter>
<name>Parcel Lifted Index (to 500 mb)</name>
<abbreviation>PLI</abbreviation>
<unit>K</unit>
</parameter>
<parameter>
<name>Potential Temperature</name>
<abbreviation>PoT</abbreviation>
<unit>K</unit>
</parameter>
<parameter>
<name>Pressure Anomaly</name>
<abbreviation>PRESA</abbreviation>
<unit>Pa</unit>
</parameter>
<parameter>
<name>Pressure</name>
<abbreviation>P</abbreviation>
<unit>Pa</unit>
</parameter>
<parameter>
<name>Pressure Reduced to MSL</name>
<abbreviation>PMSL</abbreviation>
<unit>Pa</unit>
</parameter>
<parameter>
<name>MSLP (ETA Reduction)</name>
<abbreviation>EMSP</abbreviation>
<unit>Pa</unit>
</parameter>
<parameter>
<name>MSLP (MAPS Reduction)</name>
<abbreviation>MMSP</abbreviation>
<unit>Pa</unit>
</parameter>
<parameter>
<name>Primary Wave Direction</name>
<abbreviation>DIRPW</abbreviation>
<unit>deg</unit>
</parameter>
<parameter>
<name>Primary Wave Mean Period</name>
<abbreviation>PERPW</abbreviation>
<unit>s</unit>
</parameter>
<parameter>
<name>Precipitation Rate</name>
<abbreviation>PR</abbreviation>
<unit>mm/s</unit>
</parameter>
<parameter>
<name>Probability of Frozen Precip</name>
<abbreviation>CPOFP</abbreviation>
<unit>%</unit>
</parameter>
<parameter>
<name>Probability of Freezing Precip</name>
<abbreviation>CPOZP</abbreviation>
<unit>%</unit>
</parameter>
<parameter>
<name>Potential Evaporation</name>
<abbreviation>PEVAP</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Potential Evaporation Rate</name>
<abbreviation>PEVPR</abbreviation>
<unit>W/m^2</unit>
</parameter>
<parameter>
<name>Potential Vorticity</name>
<abbreviation>PVORT</abbreviation>
<unit>m^2*kg^-1*s^-1</unit>
</parameter>
<parameter>
<name>Precipitable Water</name>
<abbreviation>PW</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Relative Humidity</name>
<abbreviation>RH</abbreviation>
<unit>%</unit>
</parameter>
<parameter>
<name>Sensible Heat Flux</name>
<abbreviation>SHF</abbreviation>
<unit>W/m^2</unit>
</parameter>
<parameter>
<name>Saturation Deficit</name>
<abbreviation>SATD</abbreviation>
<unit>Pa</unit>
</parameter>
<parameter>
<name>Secondary Wave Direction</name>
<abbreviation>DIRSW</abbreviation>
<unit>deg</unit>
</parameter>
<parameter>
<name>Secondary Wave Mean Period</name>
<abbreviation>PERSW</abbreviation>
<unit>s</unit>
</parameter>
<parameter>
<name>Significant Height of Wind Waves</name>
<abbreviation>WVHGT</abbreviation>
<unit>m</unit>
</parameter>
<parameter>
<name>Significant Height of Swell Waves</name>
<abbreviation>SWELL</abbreviation>
<unit>m</unit>
</parameter>
<parameter>
<name>Snow Cover</name>
<abbreviation>SCP</abbreviation>
<unit>%</unit>
</parameter>
<parameter>
<name>Snow Depth</name>
<abbreviation>SnD</abbreviation>
<unit>m</unit>
</parameter>
<parameter>
<name>Soil Temperature</name>
<abbreviation>TSOIL</abbreviation>
<unit>K</unit>
</parameter>
<parameter>
<name>Specific Humidity</name>
<abbreviation>SH</abbreviation>
<unit>%</unit>
</parameter>
<parameter>
<name>Storm Relative Helicity</name>
<abbreviation>Heli</abbreviation>
<unit>m^2/s^2</unit>
</parameter>
<parameter>
<name>Surface Lifted Index</name>
<abbreviation>SLI</abbreviation>
<unit>K</unit>
</parameter>
<parameter>
<name>Temperature</name>
<abbreviation>T</abbreviation>
<unit>K</unit>
</parameter>
<parameter>
<name>Total Cloud Cover</name>
<abbreviation>TCC</abbreviation>
<unit>%</unit>
</parameter>
<parameter>
<name>Temperature Anomaly</name>
<abbreviation>Ta</abbreviation>
<unit>K</unit>
</parameter>
<parameter>
<name>Thunderstorm Probability</name>
<abbreviation>ThP</abbreviation>
<unit>%</unit>
</parameter>
<parameter>
<name>Total Precipitation</name>
<abbreviation>TP</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Total Precipitation(1 hour)</name>
<abbreviation>TP1hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Total Precipitation(3 hours)</name>
<abbreviation>TP3hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Total Precipitation(6 hours)</name>
<abbreviation>TP6hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Total Precipitation(9 hours)</name>
<abbreviation>TP9hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Total Precipitation(12 hours)</name>
<abbreviation>TP12hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Total Precipitation(18 hours)</name>
<abbreviation>TP18hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Total Precipitation(24 hours)</name>
<abbreviation>TP24hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Total Precipitation(48 hours)</name>
<abbreviation>TP48hr</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>U-Component of Storm Motion</name>
<abbreviation>USTM</abbreviation>
<unit>m/s</unit>
</parameter>
<parameter>
<name>V-Component of Storm Motion</name>
<abbreviation>VSTM</abbreviation>
<unit>m/s</unit>
</parameter>
<parameter>
<name>U-Component of Wind</name>
<abbreviation>uW</abbreviation>
<unit>m/s</unit>
</parameter>
<parameter>
<name>V-Component of Wind</name>
<abbreviation>vW</abbreviation>
<unit>m/s</unit>
</parameter>
<parameter>
<name>Vapor Pressure</name>
<abbreviation>VAPP</abbreviation>
<unit>Pa</unit>
</parameter>
<parameter>
<name>Vertical Speed Shear</name>
<abbreviation>VWSH</abbreviation>
<unit>/s</unit>
</parameter>
<parameter>
<name>Vertical Velocity Pressure</name>
<abbreviation>PVV</abbreviation>
<unit>Pa/s</unit>
</parameter>
<parameter>
<name>Visibility</name>
<abbreviation>Vis</abbreviation>
<unit>m</unit>
</parameter>
<parameter>
<name>Virtual Potential Temperature</name>
<abbreviation>VPT</abbreviation>
<unit>K</unit>
</parameter>
<parameter>
<name>Virtual Temperature</name>
<abbreviation>VTMP</abbreviation>
<unit>K</unit>
</parameter>
<parameter>
<name>Water Equivalent of Accumulated Snow Depth</name>
<abbreviation>WEASD</abbreviation>
<unit>mm</unit>
</parameter>
<parameter>
<name>Wind Direction (from which blowing)</name>
<abbreviation>WD</abbreviation>
<unit>deg</unit>
</parameter>
<parameter>
<name>Wind Mixing Energy</name>
<abbreviation>WMIXE</abbreviation>
<unit>J</unit>
</parameter>
<parameter>
<name>Wind Speed</name>
<abbreviation>WS</abbreviation>
<unit>m/s</unit>
</parameter>
<parameter>
<name>Wind Gust Speed</name>
<abbreviation>WGS</abbreviation>
<unit>m/s</unit>
</parameter>
</parameterList>

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.raytheon.uf.edex.parameter</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View file

@ -0,0 +1,8 @@
#Tue Jan 31 13:38:02 CST 2012
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6

View file

@ -0,0 +1,23 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Parameter
Bundle-SymbolicName: com.raytheon.uf.edex.parameter
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: RAYTHEON
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: com.raytheon.edex.db.dao,
com.raytheon.uf.common.dataplugin,
com.raytheon.uf.common.datastorage,
com.raytheon.uf.common.parameter,
com.raytheon.uf.common.status,
com.raytheon.uf.edex.core,
com.raytheon.uf.edex.database,
com.raytheon.uf.edex.database.dao,
com.raytheon.uf.edex.database.plugin,
javax.measure.unit,
org.apache.commons.logging,
org.hibernate,
org.hibernate.criterion,
org.springframework.dao.support,
org.springframework.orm.hibernate3.support
Export-Package: com.raytheon.uf.edex.parameter

View file

@ -0,0 +1,6 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.,\
res/
src.includes = res/

View file

@ -0,0 +1,17 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="parameterProperties" class="com.raytheon.uf.edex.database.DatabasePluginProperties">
<property name="pluginName" value="parameter" />
<property name="pluginFQN" value="com.raytheon.uf.common.parameter" />
<property name="database" value="metadata" />
</bean>
<bean id="parameterRegistered" factory-bean="dbPluginRegistry" factory-method="register">
<constructor-arg value="com.raytheon.uf.common.parameter"/>
<constructor-arg ref="parameterProperties"/>
</bean>
</beans>

View file

@ -0,0 +1,147 @@
/**
* This software was developed and / or modified by Raytheon Company,
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
*
* U.S. EXPORT CONTROLLED TECHNICAL DATA
* This software product contains export-restricted data whose
* export/transfer/disclosure is restricted by U.S. law. Dissemination
* to non-U.S. persons whether in the United States or abroad requires
* an export license or other authorization.
*
* Contractor Name: Raytheon Company
* Contractor Address: 6825 Pine Street, Suite 340
* Mail Stop B8
* Omaha, NE 68106
* 402.291.0100
*
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.edex.parameter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
import com.raytheon.uf.common.parameter.Parameter;
import com.raytheon.uf.common.parameter.ParameterDefinitions;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.edex.database.dao.CoreDao;
import com.raytheon.uf.edex.database.dao.DaoConfig;
/**
*
* Cache the parameters defined in the database to avoid repeated lookups.
*
* <pre>
*
* SOFTWARE HISTORY
*
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Mar 7, 2012 bsteffen Initial creation
*
* </pre>
*
* @author bsteffen
* @version 1.0
*/
public class ParameterLookup {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(ParameterLookup.class);
private static ParameterLookup instance;
public static ParameterLookup getInstance() {
if (instance == null) {
instance = new ParameterLookup();
}
return instance;
}
private final CoreDao dao;
private final Map<String, Parameter> parameterMap = new HashMap<String, Parameter>();
private ParameterLookup() {
dao = new CoreDao(DaoConfig.forClass(Parameter.class));
for (Parameter parameter : ParameterDefinitions.getParameters()) {
lookupParameter(parameter, true);
}
}
/**
* lookup a parameter in the database and optionally add it if it does not
* exist.
*
* @param parameter
* @param create
* @return
*/
public synchronized Parameter lookupParameter(Parameter parameter,
boolean create) {
synchronized (parameterMap) {
Parameter result = parameterMap.get(parameter.getAbbreviation());
if (result == null) {
result = checkDatabase(parameter, true);
}
return result;
}
}
private Parameter checkDatabase(Parameter parameter, boolean create) {
Parameter rval = null;
Session sess = null;
Transaction trans = null;
try {
sess = dao.getSessionFactory().openSession();
trans = sess.beginTransaction();
Criteria crit = sess.createCriteria(Parameter.class);
Criterion nameCrit = Restrictions.eq("abbreviation",
parameter.getAbbreviation());
crit.add(nameCrit);
List<?> vals = crit.list();
if (vals.size() > 0) {
rval = (Parameter) vals.get(0);
} else if (create) {
sess.saveOrUpdate(parameter);
rval = parameter;
}
trans.commit();
} catch (Exception e) {
statusHandler.error("Error occurred looking up Parameter["
+ parameter.getAbbreviation() + "]", e);
if (trans != null) {
try {
trans.rollback();
} catch (Exception e1) {
statusHandler.error(
"Error occurred rolling back transaction", e);
}
}
} finally {
if (sess != null) {
try {
sess.close();
} catch (Exception e) {
statusHandler.error("Error occurred closing session", e);
}
}
}
return rval;
}
}