ucar.nc2.ncml
Class AggregationOuterDimension

java.lang.Object
  extended by ucar.nc2.ncml.Aggregation
      extended by ucar.nc2.ncml.AggregationOuterDimension
All Implemented Interfaces:
ProxyReader
Direct Known Subclasses:
AggregationExisting, AggregationFmrc, AggregationNew

public abstract class AggregationOuterDimension
extends Aggregation
implements ProxyReader

Superclass for Aggregations on the outer dimension: joinNew, joinExisting, Fmrc, FmrcSingle

Since:
Aug 10, 2007
Author:
caron

Nested Class Summary
 
Nested classes/interfaces inherited from class ucar.nc2.ncml.Aggregation
Aggregation.Dataset, Aggregation.DatasetProxyReader, Aggregation.Type, Aggregation.TypicalDataset
 
Field Summary
protected  List<String> aggVarNames
           
protected  List<VariableDS> aggVars
           
protected  List<ucar.nc2.ncml.AggregationOuterDimension.CacheVar> cacheList
           
protected static boolean debugCache
           
protected static boolean debugInvocation
           
protected static boolean debugStride
           
static int invocation
           
protected  boolean timeUnitsChange
           
 
Fields inherited from class ucar.nc2.ncml.Aggregation
cacheDirty, datasetManager, datasets, dateFormatMark, dateFormatter, debug, debugConvert, debugDateParse, debugOpenFile, debugProxy, debugRead, debugSyncDetail, dimName, diskCache2, executor, explicitDatasets, isDate, logger, ncDataset, spiObject, type, typicalDatasetMode
 
Constructor Summary
protected AggregationOuterDimension(NetcdfDataset ncd, String dimName, Aggregation.Type type, String recheckS)
          Create an Aggregation for the given NetcdfDataset.
 
Method Summary
 void addVariable(String varName)
          Add a name for a variableAgg element
protected  void buildCoords(CancelTask cancelTask)
           
 void getDetailInfo(Formatter f)
           
protected  int getTotalCoords()
           
static void main(String[] args)
           
protected  Aggregation.Dataset makeDataset(MFile dset)
           
protected  Aggregation.Dataset makeDataset(String cacheName, String location, String id, String ncoordS, String coordValueS, String sectionSpec, EnumSet<NetcdfDataset.Enhance> enhance, FileFactory reader)
          Dataset factory, so subclasses can override
protected  void promoteGlobalAttributes(ucar.nc2.ncml.AggregationOuterDimension.DatasetOuterDimension typicalDataset)
           
 Array reallyRead(Variable mainv, CancelTask cancelTask)
          Read an aggregation variable: A variable whose data spans multiple files.
 Array reallyRead(Variable mainv, Section section, CancelTask cancelTask)
          Read a section of an aggregation variable.
protected  void rebuildDataset()
          Call this when rescan has found changed datasets
 
Methods inherited from class ucar.nc2.ncml.Aggregation
addCollection, addDataset, addDatasetScan, addExplicitDataset, buildNetcdfDataset, close, closeDatasets, findVariable, finish, getDatasets, getDimensionName, getFileTypeDescription, getFileTypeId, getLocation, getType, getTypicalDataset, makeDatasets, persistRead, persistWrite, setDatasetAcquireProxy, setExecutor, setModifications, setPersistenceCache, setTypicalDatasetMode, sync, syncExtend
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

debugCache

protected static boolean debugCache

debugInvocation

protected static boolean debugInvocation

debugStride

protected static boolean debugStride

invocation

public static int invocation

aggVarNames

protected List<String> aggVarNames

aggVars

protected List<VariableDS> aggVars

cacheList

protected List<ucar.nc2.ncml.AggregationOuterDimension.CacheVar> cacheList

timeUnitsChange

protected boolean timeUnitsChange
Constructor Detail

AggregationOuterDimension

protected AggregationOuterDimension(NetcdfDataset ncd,
                                    String dimName,
                                    Aggregation.Type type,
                                    String recheckS)
Create an Aggregation for the given NetcdfDataset. The following addXXXX methods are called, then finish(), before the object is ready for use.

Parameters:
ncd - Aggregation belongs to this NetcdfDataset
dimName - the aggregation dimension name
type - the Aggregation.Type
recheckS - how often to check if files have changes
Method Detail

addVariable

public void addVariable(String varName)
Add a name for a variableAgg element

Parameters:
varName - name of agg variable

buildCoords

protected void buildCoords(CancelTask cancelTask)
                    throws IOException
Throws:
IOException

getTotalCoords

protected int getTotalCoords()

promoteGlobalAttributes

protected void promoteGlobalAttributes(ucar.nc2.ncml.AggregationOuterDimension.DatasetOuterDimension typicalDataset)
                                throws IOException
Throws:
IOException

rebuildDataset

protected void rebuildDataset()
                       throws IOException
Description copied from class: Aggregation
Call this when rescan has found changed datasets

Specified by:
rebuildDataset in class Aggregation
Throws:
IOException - on read error

reallyRead

public Array reallyRead(Variable mainv,
                        Section section,
                        CancelTask cancelTask)
                 throws IOException,
                        InvalidRangeException
Read a section of an aggregation variable.

Specified by:
reallyRead in interface ProxyReader
Parameters:
section - read just this section of the data, array of Range
mainv - the client Variable
cancelTask - user may cancel
Returns:
the data array section
Throws:
IOException
InvalidRangeException - if section has incorrect rank or illegal shape.

reallyRead

public Array reallyRead(Variable mainv,
                        CancelTask cancelTask)
                 throws IOException
Read an aggregation variable: A variable whose data spans multiple files. This is an implementation of ProxyReader, so must fulfill that contract.

Specified by:
reallyRead in interface ProxyReader
Parameters:
mainv - the aggregation variable
cancelTask - user may cancel
Returns:
memory resident Array containing the data. Will have same shape as the Variable.
Throws:
IOException

makeDataset

protected Aggregation.Dataset makeDataset(String cacheName,
                                          String location,
                                          String id,
                                          String ncoordS,
                                          String coordValueS,
                                          String sectionSpec,
                                          EnumSet<NetcdfDataset.Enhance> enhance,
                                          FileFactory reader)
Description copied from class: Aggregation
Dataset factory, so subclasses can override

Overrides:
makeDataset in class Aggregation
Parameters:
cacheName - a unique name to use for caching
location - attribute "location" on the netcdf element
id - attribute "id" on the netcdf element
ncoordS - attribute "ncoords" on the netcdf element
coordValueS - attribute "coordValue" on the netcdf element
sectionSpec - attribute "sectionSpec" on the netcdf element
enhance - open dataset in enhance mode NOT USED
reader - factory for reading this netcdf dataset
Returns:
a Aggregation.Dataset

makeDataset

protected Aggregation.Dataset makeDataset(MFile dset)
Overrides:
makeDataset in class Aggregation

getDetailInfo

public void getDetailInfo(Formatter f)
Overrides:
getDetailInfo in class Aggregation

main

public static void main(String[] args)
                 throws IOException
Throws:
IOException


Copyright © 1999-2011 UCAR/Unidata. All Rights Reserved.