ucar.nc2
Class ParsedSectionSpec

java.lang.Object
  extended by ucar.nc2.ParsedSectionSpec

public class ParsedSectionSpec
extends java.lang.Object

Parsed Section Expression, allows nesting for subsetting of Structure member variables.

Since:
May 8, 2008
Author:
caron
See Also:
SectionSpecification

Field Summary
 ParsedSectionSpec child
           
 Section section
           
 Variable v
           
 
Method Summary
static java.lang.String makeSectionSpecString(Variable v, java.util.List<Range> ranges)
          Make section specification String from a range list for a Variable.
static ParsedSectionSpec parseVariableSection(NetcdfFile ncfile, java.lang.String variableSection)
          Parse a section specification String.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

v

public Variable v

section

public Section section

child

public ParsedSectionSpec child
Method Detail

parseVariableSection

public static ParsedSectionSpec parseVariableSection(NetcdfFile ncfile,
                                                     java.lang.String variableSection)
                                              throws InvalidRangeException
Parse a section specification String. These have the form:
  section specification := selector | selector '.' selector
  selector := varName ['(' dims ')']
  varName := ESCAPED_STRING
 

dims := dim | dim, dims dim := ':' | slice | start ':' end | start ':' end ':' stride slice := INTEGER start := INTEGER stride := INTEGER end := INTEGER ESCAPED_STRING : must escape characters = ".("

Nonterminals are in lower case, terminals are in upper case, literals are in single quotes. Optional components are enclosed between square braces '[' and ']'.

Parameters:
ncfile - look for variable in here
variableSection - the string to parse, eg "record(12).wind(1:20,:,3)"
Returns:
return ParsedSectionSpec, aprsed representation of the variableSection String
Throws:
java.lang.IllegalArgumentException - when token is misformed, or variable name doesnt exist in ncfile
InvalidRangeException - if section does not match variable shape
See Also:
SectionSpecification

makeSectionSpecString

public static java.lang.String makeSectionSpecString(Variable v,
                                                     java.util.List<Range> ranges)
                                              throws InvalidRangeException
Make section specification String from a range list for a Variable.

Parameters:
v - for this Variable.
ranges - list of Range. Must includes all parent structures. The list be null, meaning use all. Individual ranges may be null, meaning all for that dimension.
Returns:
section specification String.
Throws:
InvalidRangeException - is specified section doesnt match variable shape