Issue #2725 deriv param to common stage 1

* Removing viz dependencys from derivparam
** Move LevelUtilities to common
** Use spring instead of eclipse plugin extentions
   to configure derived parameter function types
** Use RequestRouter instead of ThriftClient so
   we can use IServerRequest objects in both CAVE
   and EDEX

The next stage will be to clean up exceptions in
derived parameters to stop using VizException and
VizCommunicationException.


Former-commit-id: 604ae156f8b235e2e1736863b419547289403240
This commit is contained in:
Everett Kladstrup 2014-01-21 13:59:05 -06:00
parent b88eaeb73e
commit bd50a38d87
17 changed files with 205 additions and 166 deletions

View file

@ -39,6 +39,7 @@ import com.raytheon.uf.common.dataplugin.PluginDataObject;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapping;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.dataplugin.level.util.LevelUtilities;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
import com.raytheon.uf.common.geospatial.MapUtil;
@ -52,7 +53,6 @@ import com.raytheon.uf.common.time.TimeRange;
import com.raytheon.uf.common.time.util.TimeUtil;
import com.raytheon.uf.viz.core.datastructure.DataCubeContainer;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.level.LevelUtilities;
import com.raytheon.uf.viz.core.rsc.DisplayType;
import com.raytheon.uf.viz.objectiveanalysis.rsc.OAGridTransformer;
import com.raytheon.uf.viz.xy.timeseries.adapter.AbstractTimeSeriesAdapter;

View file

@ -3,4 +3,4 @@ output.. = bin/
bin.includes = META-INF/,\
.,\
localization/,\
plugin.xml
res/

View file

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
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.
-->
<?eclipse version="3.2"?>
<plugin>
<extension
point="com.raytheon.uf.viz.derivparam.functionType">
<functionType
adapter="com.raytheon.uf.viz.derivparam.python.DerivParamPythonFunctionAdapter"
extension="py"
name="Python">
</functionType>
</extension>
</plugin>

View file

@ -0,0 +1,14 @@
<beans xmlns="http://www.springframework.org/schema/beans"
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-3.1.xsd">
<bean id="pythonDerParFunctionAdapter"
class="com.raytheon.uf.viz.derivparam.python.DerivParamPythonFunctionAdapter" />
<bean id="registeredPythonDerParFunctionAdapter"
class="com.raytheon.uf.viz.derivparam.library.DerivedParameterGenerator"
factory-method="addFunctionAdapter">
<constructor-arg ref="pythonDerParFunctionAdapter" />
</bean>
</beans>

View file

@ -49,6 +49,8 @@ import com.raytheon.uf.viz.derivparam.library.DerivedParameterGenerator;
* Dec 16, 2010 mschenke Initial creation
* Jun 04, 2013 2041 bsteffen Switch derived parameters to use
* concurrent python for threading.
* Jan 30, 2014 #2725 ekladstrup Add name and extention get methods
* after removing RCP extention point
*
* </pre>
*
@ -158,4 +160,25 @@ public class DerivParamPythonFunctionAdapter implements
}
}
/*
* (non-Javadoc)
*
* @see com.raytheon.uf.viz.derivparam.IDerivParamFunctionAdapter#getName()
*/
@Override
public String getName() {
return "Python";
}
/*
* (non-Javadoc)
*
* @see
* com.raytheon.uf.viz.derivparam.IDerivParamFunctionAdapter#getExtension()
*/
@Override
public String getExtension() {
return "py";
}
}

View file

@ -37,7 +37,8 @@ import com.raytheon.uf.viz.derivparam.DerivParamFunctionType.FunctionArgument;
* Dec 16, 2010 mschenke Initial creation
* Jun 04, 2013 2041 bsteffen Switch derived parameters to use
* concurrent python for threading.
*
* Jan 30, 2014 #2725 ekladstrup Add name and extention get methods
* after removing RCP extention point
* </pre>
*
* @author mschenke
@ -86,4 +87,18 @@ public interface IDerivParamFunctionAdapter {
* Stop the adapter and any child threads.
*/
public void shutdown();
/**
* Return the name of the function type
*
* @return
*/
public String getName();
/**
* Return the file extension of the function type
*
* @return
*/
public String getExtension();
}

View file

@ -37,11 +37,11 @@ import com.raytheon.uf.common.dataquery.responses.DbQueryResponse;
import com.raytheon.uf.common.dataquery.responses.DbQueryResponseSet;
import com.raytheon.uf.common.datastorage.Request;
import com.raytheon.uf.common.datastorage.records.IDataRecord;
import com.raytheon.uf.common.serialization.comm.RequestRouter;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.viz.core.datastructure.DefaultDataCubeAdapter;
import com.raytheon.uf.viz.core.datastructure.VizDataCubeException;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.requests.ThriftClient;
import com.raytheon.uf.viz.derivparam.inv.AvailabilityContainer;
import com.raytheon.uf.viz.derivparam.inv.MetadataContainer;
import com.raytheon.uf.viz.derivparam.inv.TimeAndSpace;
@ -60,6 +60,7 @@ import com.raytheon.uf.viz.derivparam.tree.AbstractRequestableNode;
* Jan 30, 2012 mschenke Initial creation
* Feb 25, 2013 1659 bsteffen Stop derived parameters from sending
* empty requests for cached times
* Jan 30, 2014 #2725 ekladstrup Remove usage of ThriftClient
*
* </pre>
*
@ -125,8 +126,13 @@ public abstract class AbstractDataCubeAdapter extends DefaultDataCubeAdapter {
if (!fullList.isEmpty()) {
DbQueryRequestSet requestSet = new DbQueryRequestSet();
requestSet.setQueries(fullList.toArray(new DbQueryRequest[0]));
DbQueryResponseSet responseSet = (DbQueryResponseSet) ThriftClient
.sendRequest(requestSet);
DbQueryResponseSet responseSet;
try {
responseSet = (DbQueryResponseSet) RequestRouter
.route(requestSet);
} catch (Exception e) {
throw new VizException(e);
}
responses = responseSet.getResults();
}
int responseIndex = 0;

View file

@ -36,6 +36,7 @@ import java.util.concurrent.BlockingQueue;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.LevelFactory;
import com.raytheon.uf.common.dataplugin.level.util.LevelUtilities;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.derivparam.tree.AbstractNode;
import com.raytheon.uf.common.derivparam.tree.DataTree;
@ -48,7 +49,6 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.DataTime;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.level.LevelUtilities;
import com.raytheon.uf.viz.derivparam.data.AbstractRequestableData;
import com.raytheon.uf.viz.derivparam.data.FloatRequestableData;
import com.raytheon.uf.viz.derivparam.library.DerivParamConstantField;
@ -84,6 +84,8 @@ import com.raytheon.uf.viz.derivparam.tree.UnionLevelNode;
* ------------- -------- ----------- --------------------------
* Mar 17, 2010 bsteffen Initial creation
* Jan 23, 2014 2711 bsteffen Get all levels from LevelFactory.
* Jan 30, 2014 #2725 ekladstrup handle different exceptions for moving
* derived parameters to common
*
* </pre>
*
@ -933,10 +935,14 @@ public abstract class AbstractInventory implements DerivParamUpdateListener {
endCount += 1;
nodes.add(target);
}
SortedSet<Level> levels = LevelUtilities
.getOrderedSetOfStandardLevels(
level.getMasterLevel().getName()).subSet(
lowerLevel, false, upperLevel, false);
SortedSet<Level> levels = null;
try {
levels = LevelUtilities.getOrderedSetOfStandardLevels(
level.getMasterLevel().getName()).subSet(
lowerLevel, false, upperLevel, false);
} catch ( CommunicationException e ) {
throw new VizCommunicationException(e);
}
for (Level fieldLevel : levels) {
target = resolveNode(sourceNode, param, fieldLevel, stack,
nodata);
@ -1070,15 +1076,19 @@ public abstract class AbstractInventory implements DerivParamUpdateListener {
}
} else {
SortedSet<Level> levels = null;
if (type == LevelType.Upper) {
levels = LevelUtilities.getOrderedSetOfStandardLevels(
level.getMasterLevel().getName()).tailSet(level,
false);
} else {
levels = LevelUtilities
.getOrderedSetOfStandardLevels(
level.getMasterLevel().getName())
.headSet(level, false).descendingSet();
try {
if (type == LevelType.Upper) {
levels = LevelUtilities.getOrderedSetOfStandardLevels(
level.getMasterLevel().getName()).tailSet(
level, false);
} else {
levels = LevelUtilities
.getOrderedSetOfStandardLevels(
level.getMasterLevel().getName())
.headSet(level, false).descendingSet();
}
} catch ( CommunicationException e ) {
throw new VizCommunicationException(e);
}
for (Level l : levels) {
target = resolveNode(fieldSourceNode, fieldParamAbbrev, l,

View file

@ -34,8 +34,8 @@ import com.raytheon.uf.common.dataquery.requests.DbQueryRequestSet;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.responses.DbQueryResponse;
import com.raytheon.uf.common.dataquery.responses.DbQueryResponseSet;
import com.raytheon.uf.common.serialization.comm.RequestRouter;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.requests.ThriftClient;
import com.raytheon.uf.viz.derivparam.tree.AbstractBaseDataNode;
import com.raytheon.uf.viz.derivparam.tree.AbstractDerivedDataNode;
import com.raytheon.uf.viz.derivparam.tree.AbstractRequestableNode;
@ -56,6 +56,7 @@ import com.raytheon.uf.viz.derivparam.tree.AbstractRequestableNode.Dependency;
* Apr 11, 2012 bsteffen Initial creation
* Feb 25, 2013 1659 bsteffen Stop derived parameters from sending
* empty requests for cached times
* Jan 30, 2014 #2725 ekladstrup remove usage of ThriftClient
*
* </pre>
*
@ -178,8 +179,13 @@ public class AvailabilityContainer {
if (!requests.isEmpty()) {
DbQueryRequestSet requestSet = new DbQueryRequestSet();
requestSet.setQueries(requests.toArray(new DbQueryRequest[0]));
DbQueryResponseSet responseSet = (DbQueryResponseSet) ThriftClient
.sendRequest(requestSet);
DbQueryResponseSet responseSet;
try {
responseSet = (DbQueryResponseSet) RequestRouter
.route(requestSet);
} catch (Exception e) {
throw new VizException(e);
}
DbQueryResponse[] responses = responseSet.getResults();
for (int i = 0; i < responses.length; i++) {

View file

@ -32,8 +32,8 @@ import com.raytheon.uf.common.dataquery.requests.DbQueryRequest;
import com.raytheon.uf.common.dataquery.requests.DbQueryRequestSet;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.responses.DbQueryResponseSet;
import com.raytheon.uf.common.serialization.comm.RequestRouter;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.requests.ThriftClient;
import com.raytheon.uf.viz.derivparam.data.AbstractRequestableData;
import com.raytheon.uf.viz.derivparam.tree.AbstractBaseDataNode;
import com.raytheon.uf.viz.derivparam.tree.AbstractDerivedDataNode;
@ -52,6 +52,7 @@ import com.raytheon.uf.viz.derivparam.tree.AbstractRequestableNode.Dependency;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* Apr 11, 2012 bsteffen Initial creation
* Jan 30, 2014 #2725 ekladstrup remove usage of ThriftClient
*
* </pre>
*
@ -223,8 +224,12 @@ public class MetadataContainer {
}
DbQueryRequestSet requestSet = new DbQueryRequestSet();
requestSet.setQueries(requests.toArray(new DbQueryRequest[0]));
DbQueryResponseSet responseSet = (DbQueryResponseSet) ThriftClient
.sendRequest(requestSet);
DbQueryResponseSet responseSet;
try {
responseSet = (DbQueryResponseSet) RequestRouter.route(requestSet);
} catch (Exception e) {
throw new VizException(e);
}
for (int i = 0; i < nodes.size(); i++) {
AbstractBaseDataNode node = nodes.get(i);
dataCache.put(node, node.getData(originalConstraints,

View file

@ -29,21 +29,12 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.measure.unit.Unit;
import javax.xml.bind.JAXBException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.ui.services.IDisposable;
import com.raytheon.uf.common.datastorage.records.IDataRecord;
import com.raytheon.uf.common.localization.FileUpdatedMessage;
import com.raytheon.uf.common.localization.ILocalizationFileObserver;
@ -56,7 +47,6 @@ import com.raytheon.uf.common.serialization.JAXBManager;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.Activator;
import com.raytheon.uf.viz.derivparam.DerivParamFunctionType;
import com.raytheon.uf.viz.derivparam.IDerivParamFunctionAdapter;
import com.raytheon.uf.viz.derivparam.library.DerivParamMethod.MethodType;
@ -80,6 +70,9 @@ import com.raytheon.uf.viz.derivparam.library.DerivParamMethod.MethodType;
* concurrent python for threading.
* Nov 19, 2013 2361 njensen Only shutdown if initialized
* Jan 14, 2014 2661 bsteffen Shutdown using uf.viz.core.Activator
* Jan 30, 2014 #2725 ekladstrup Refactor to remove dependencies on
* eclipse runtime and support some configuration
* through spring
*
* </pre>
*
@ -102,8 +95,6 @@ public class DerivedParameterGenerator implements ILocalizationFileObserver {
public static final String XML_DIR = DERIV_PARAM_DIR + File.separator
+ DEFINITIONS;
private static final String EXTENSION = "com.raytheon.uf.viz.derivparam.functionType";
public static interface DerivParamUpdateListener {
public void updateDerParLibrary(
Map<String, DerivParamDesc> derParLibrary);
@ -123,21 +114,10 @@ public class DerivedParameterGenerator implements ILocalizationFileObserver {
private String extension = null;
private Job notifyJob = new Job("Notify Derived Parameter Listeners") {
protected static List<DerivParamFunctionType> functionTypes = new ArrayList<DerivParamFunctionType>(
1);
@Override
protected IStatus run(IProgressMonitor arg0) {
Collection<DerivParamUpdateListener> l = null;
synchronized (listeners) {
l = new ArrayList<DerivParamUpdateListener>(listeners);
}
for (DerivParamUpdateListener listener : l) {
listener.updateDerParLibrary(derParLibrary);
}
return Status.OK_STATUS;
}
};
protected ExecutorService execService = null;
public static synchronized DerivedParameterGenerator getInstance() {
if (instance == null) {
@ -146,34 +126,24 @@ public class DerivedParameterGenerator implements ILocalizationFileObserver {
return instance;
}
/**
* Create a function type from the adapter and add it to the function type
* list
*
* @param adapter
* @return the adapter
*/
public static IDerivParamFunctionAdapter addFunctionAdapter(
IDerivParamFunctionAdapter adapter) {
DerivParamFunctionType functionType = new DerivParamFunctionType();
functionType.setName(adapter.getName());
functionType.setExtension(adapter.getExtension());
functionType.setAdapter(adapter);
functionTypes.add(functionType);
return adapter;
}
public static DerivParamFunctionType[] getFunctionTypes() {
List<DerivParamFunctionType> functionTypes = new ArrayList<DerivParamFunctionType>();
IExtensionRegistry registry = Platform.getExtensionRegistry();
if (registry != null) {
IExtensionPoint point = registry.getExtensionPoint(EXTENSION);
IExtension[] extensions = point.getExtensions();
for (IExtension ext : extensions) {
IConfigurationElement[] config = ext.getConfigurationElements();
for (IConfigurationElement cfg : config) {
try {
DerivParamFunctionType functionType = new DerivParamFunctionType();
functionType.setName(cfg.getAttribute("name"));
functionType
.setExtension(cfg.getAttribute("extension"));
functionType
.setAdapter((IDerivParamFunctionAdapter) cfg
.createExecutableExtension("adapter"));
functionTypes.add(functionType);
} catch (Throwable t) {
statusHandler.handle(Priority.DEBUG,
t.getLocalizedMessage(), t);
}
}
}
}
return functionTypes.toArray(new DerivParamFunctionType[0]);
}
@ -189,6 +159,10 @@ public class DerivedParameterGenerator implements ILocalizationFileObserver {
}
private DerivedParameterGenerator() {
// We shouldn't every be running more than one job at a time anyway, but
// use an executor service just in case we want to tweak things later.
execService = Executors.newSingleThreadExecutor();
DerivParamFunctionType[] functionTypes = getFunctionTypes();
if (functionTypes == null || functionTypes.length == 0) {
@ -196,16 +170,9 @@ public class DerivedParameterGenerator implements ILocalizationFileObserver {
"Error creating derived parameter function type,"
+ " derived paramters will not be available");
}
Activator.getDefault().registerDisposable(new IDisposable() {
@Override
public void dispose() {
shutdown();
}
});
this.adapter = functionTypes[0].getAdapter();
this.extension = functionTypes[0].getExtension();
notifyJob.setSystem(true);
LocalizationFile dir = PathManagerFactory.getPathManager()
.getStaticLocalizationFile(DERIV_PARAM_DIR);
if (dir != null) {
@ -306,7 +273,7 @@ public class DerivedParameterGenerator implements ILocalizationFileObserver {
this.derParLibrary = derParLibrary;
adapter.init();
notifyJob.schedule();
scheduleNotifyJob(listeners, derParLibrary);
System.out.println("time to init derived parameters: "
+ (System.currentTimeMillis() - start) + "ms");
@ -314,6 +281,33 @@ public class DerivedParameterGenerator implements ILocalizationFileObserver {
}
}
/**
* Run the notification thread in the executor service.
*
* @param theListeners
* @param theDerParLibrary
*/
protected void scheduleNotifyJob(
final Set<DerivParamUpdateListener> theListeners,
final Map<String, DerivParamDesc> theDerParLibrary) {
Thread notifyJob = new Thread() {
@Override
public void run() {
Collection<DerivParamUpdateListener> l = null;
synchronized (listeners) {
l = new ArrayList<DerivParamUpdateListener>(listeners);
}
for (DerivParamUpdateListener listener : l) {
listener.updateDerParLibrary(derParLibrary);
}
}
};
execService.submit(notifyJob);
}
public Map<String, DerivParamDesc> getLibrary() {
initLibrary();
return derParLibrary;

View file

@ -33,6 +33,7 @@ import java.util.Map.Entry;
import java.util.NavigableSet;
import java.util.Set;
import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.grid.GridConstants;
import com.raytheon.uf.common.dataplugin.grid.GridInfoConstants;
import com.raytheon.uf.common.dataplugin.grid.GridInfoRecord;
@ -41,6 +42,7 @@ import com.raytheon.uf.common.dataplugin.grid.dataset.DatasetInfoLookup;
import com.raytheon.uf.common.dataplugin.grid.request.GetGridTreeRequest;
import com.raytheon.uf.common.dataplugin.grid.util.StaticGridDataType;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.util.LevelUtilities;
import com.raytheon.uf.common.dataquery.requests.DbQueryRequest;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
@ -58,7 +60,6 @@ import com.raytheon.uf.viz.core.catalog.CatalogQuery;
import com.raytheon.uf.viz.core.catalog.DbQuery;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.level.LevelUtilities;
import com.raytheon.uf.viz.core.requests.ThriftClient;
import com.raytheon.uf.viz.derivparam.data.AbstractRequestableData;
import com.raytheon.uf.viz.derivparam.inv.AbstractInventory;
@ -91,6 +92,8 @@ import com.raytheon.viz.grid.util.RadarAdapter;
* Nov 21, 2009 #3576 rjpeter Refactored use of DerivParamDesc.
* Feb 26, 2013 1659 bsteffen Add time agnostic caching to grid derived
* parameters.
* Jan 30, 2014 #2725 ekladstrup updated exception handling during move of derived
* parameters to common
*
* </pre>
*
@ -697,8 +700,13 @@ public class GridInventory extends AbstractInventory implements
String masterLevelName = get3DMasterLevel(sNode.getValue());
boolean isRadar = sNode.getValue().equals(RadarAdapter.RADAR_SOURCE);
NavigableSet<Level> levels = LevelUtilities
.getOrderedSetOfStandardLevels(masterLevelName);
NavigableSet<Level> levels;
try {
levels = LevelUtilities
.getOrderedSetOfStandardLevels(masterLevelName);
} catch (CommunicationException e) {
throw new VizCommunicationException(e);
}
List<CubeLevel<AbstractRequestableNode, AbstractRequestableNode>> cubeLevels = new ArrayList<CubeLevel<AbstractRequestableNode, AbstractRequestableNode>>(
levels.size());

View file

@ -34,6 +34,7 @@ import com.raytheon.uf.common.dataplugin.grid.util.GridLevelTranslator;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapping;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.dataplugin.level.util.LevelUtilities;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
@ -44,8 +45,6 @@ import com.raytheon.uf.common.style.StyleException;
import com.raytheon.uf.common.style.StyleManager;
import com.raytheon.uf.common.style.StyleRule;
import com.raytheon.uf.viz.core.drawables.ResourcePair;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.level.LevelUtilities;
import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
import com.raytheon.uf.viz.core.rsc.DisplayType;
import com.raytheon.uf.viz.core.rsc.LoadProperties;
@ -83,6 +82,8 @@ import com.vividsolutions.jts.geom.Coordinate;
* Aug 20, 2013 2259 bsteffen Delete old skewt plugin.
* Sep 06, 2013 2251 mnash Move graph prefs style type to
* graph plugin
* Jan 30, 2014 #2725 ekladstrup updated exception handling during move of derived
* parameters to common
*
* </pre>
*
@ -361,7 +362,7 @@ public abstract class AbstractDataCatalog implements IDataCatalog {
try {
levels = LevelUtilities.getOrderedSetOfStandardLevels(planesKey
.replace("spatial-", ""));
} catch (VizCommunicationException e) {
} catch (CommunicationException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(),
e);
}

View file

@ -40,12 +40,11 @@ import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.LevelFactory;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMapping;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.dataplugin.level.util.LevelUtilities;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.datastructure.DataCubeContainer;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.level.LevelUtilities;
import com.raytheon.uf.viz.derivparam.inv.AbstractInventory;
import com.raytheon.viz.volumebrowser.vbui.DataListsProdTableComp.DataSelection;
import com.raytheon.viz.volumebrowser.vbui.MenuItemManager;
@ -63,6 +62,8 @@ import com.raytheon.viz.volumebrowser.vbui.VolumeBrowserAction;
* ------------ ---------- ----------- --------------------------
* Apr 14, 2010 bsteffen Initial creation
* Jul 25, 2013 2112 bsteffen Fix volume browser sounding errors.
* Jan 30, 2014 #2725 ekladstrup updated exception handling during move of derived
* parameters to common
*
* </pre>
*
@ -291,7 +292,7 @@ public abstract class AbstractInventoryDataCatalog extends AbstractDataCatalog {
levels = LevelUtilities
.getOrderedSetOfStandardLevels(plane.replace(
"spatial-", ""));
} catch (VizCommunicationException e) {
} catch (CommunicationException e) {
statusHandler.handle(Priority.PROBLEM,
e.getLocalizedMessage(), e);
}

View file

@ -39,6 +39,7 @@ import com.raytheon.uf.common.comm.CommunicationException;
import com.raytheon.uf.common.dataplugin.grid.GridConstants;
import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.common.dataplugin.level.util.LevelUtilities;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
import com.raytheon.uf.common.geospatial.MapUtil;
@ -47,9 +48,7 @@ import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.drawables.ResourcePair;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.uf.viz.core.level.LevelUtilities;
import com.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData;
import com.raytheon.uf.viz.core.rsc.DisplayType;
import com.raytheon.uf.viz.core.rsc.ResourceType;
@ -85,6 +84,8 @@ import com.vividsolutions.jts.geom.LineString;
* Jul 31, 2012 875 rferrel Now uses points.
* May 30, 2013 2055 bsteffen Remove modelName from sounding pointName.
* Dec 06, 2013 2271 mpduff Added check for null coordinate.
* Jan 30, 2014 #2725 ekladstrup updated exception handling during move of derived
* parameters to common
*
* </pre>
*
@ -349,7 +350,7 @@ public class GridDataCatalog extends AbstractInventoryDataCatalog {
if (tilts != null) {
all.addAll(tilts);
}
} catch (VizCommunicationException e) {
} catch (CommunicationException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
}
try {
@ -358,7 +359,7 @@ public class GridDataCatalog extends AbstractInventoryDataCatalog {
if (pres != null) {
all.addAll(pres);
}
} catch (VizCommunicationException e) {
} catch (CommunicationException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
}
try {
@ -367,7 +368,7 @@ public class GridDataCatalog extends AbstractInventoryDataCatalog {
if (theta != null) {
all.addAll(theta);
}
} catch (VizCommunicationException e) {
} catch (CommunicationException e) {
statusHandler.handle(Priority.PROBLEM, e.getLocalizedMessage(), e);
}

View file

@ -19,4 +19,6 @@ Require-Bundle: com.raytheon.uf.common.dataplugin,
javax.measure
Export-Package: com.raytheon.uf.common.dataplugin.level,
com.raytheon.uf.common.dataplugin.level.mapping,
com.raytheon.uf.common.dataplugin.level.request
com.raytheon.uf.common.dataplugin.level.request,
com.raytheon.uf.common.dataplugin.level.util
Import-Package: com.raytheon.uf.common.comm

View file

@ -17,7 +17,7 @@
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
* further licensing information.
**/
package com.raytheon.uf.viz.core.level;
package com.raytheon.uf.common.dataplugin.level.util;
import java.text.ParsePosition;
import java.util.Comparator;
@ -36,7 +36,6 @@ import com.raytheon.uf.common.dataplugin.level.Level;
import com.raytheon.uf.common.dataplugin.level.LevelFactory;
import com.raytheon.uf.common.dataplugin.level.MasterLevel;
import com.raytheon.uf.common.dataplugin.level.mapping.LevelMappingFactory;
import com.raytheon.uf.viz.core.exception.VizCommunicationException;
/**
* Level utilities
@ -49,6 +48,8 @@ import com.raytheon.uf.viz.core.exception.VizCommunicationException;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* 11/21/2009 #3576 rjpeter Initial version
* 01/30/2014 #2725 ekladstrup Moved to common and removed
* usage of VizCommunicationException
* </pre>
*
* @author rjpeter
@ -67,23 +68,15 @@ public class LevelUtilities {
}
public static boolean isPressureLevel(long levelId)
throws VizCommunicationException {
try {
return isPressureLevel(LevelFactory.getInstance().getLevel(levelId)
.getMasterLevel());
} catch (CommunicationException e) {
throw new VizCommunicationException(e);
}
throws CommunicationException {
return isPressureLevel(LevelFactory.getInstance().getLevel(levelId)
.getMasterLevel());
}
public static boolean isPressureLevel(String masterLevelName)
throws VizCommunicationException {
try {
return isPressureLevel(LevelFactory.getInstance().getMasterLevel(
masterLevelName));
} catch (CommunicationException e) {
throw new VizCommunicationException(e);
}
throws CommunicationException {
return isPressureLevel(LevelFactory.getInstance().getMasterLevel(
masterLevelName));
}
public static boolean isPressureLevel(Level level) {
@ -106,7 +99,7 @@ public class LevelUtilities {
* @throws CommunicationException
*/
public synchronized static NavigableSet<Level> getOrderedSetOfStandardLevels(
String masterLevelName) throws VizCommunicationException {
String masterLevelName) throws CommunicationException {
if (masterLevelToOrderedSet == null) {
Comparator<Level> levelComparator = new Comparator<Level>() {
@ -125,13 +118,9 @@ public class LevelUtilities {
};
Map<String, NavigableSet<Level>> masterLevelToOrderedSet = new HashMap<String, NavigableSet<Level>>();
Set<Level> allLevels;
try {
allLevels = LevelMappingFactory.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getAllLevels();
} catch (CommunicationException e) {
throw new VizCommunicationException(e);
}
allLevels = LevelMappingFactory.getInstance(
LevelMappingFactory.VOLUMEBROWSER_LEVEL_MAPPING_FILE)
.getAllLevels();
for (Level level : allLevels) {
NavigableSet<Level> levels = masterLevelToOrderedSet.get(level
.getMasterLevel().getName());
@ -142,12 +131,8 @@ public class LevelUtilities {
}
if (level.isRangeLevel()) {
try {
levels.add(level.getUpperLevel());
levels.add(level.getLowerLevel());
} catch (CommunicationException e) {
throw new VizCommunicationException(e);
}
levels.add(level.getUpperLevel());
levels.add(level.getLowerLevel());
} else {
levels.add(level);
}