Package ucar.nc2
Class Group
- java.lang.Object
-
- ucar.nc2.CDMNode
-
- ucar.nc2.Group
-
- All Implemented Interfaces:
Iterable<Attribute>
,AttributeContainer
public class Group extends ucar.nc2.CDMNode implements AttributeContainer
A logical collection of Variables, Attributes, and Dimensions. The Groups in a Dataset form a hierarchical tree, like directories on a disk. A Group has a name and optionally a set of Attributes. There is always at least one Group in a dataset, the root Group, whose name is the empty string. Immutable if setImmutable() was called. TODO Group will be immutable in 6. TODO Group will not implement AttributeContainer in 6, use Group.attributes(). TODO Group will not extend CDMNode in 6.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Group.Builder
A builder of Groups.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description AttributeContainer
attributes()
The attributes contained by this Group.static Group.Builder
builder()
Group
commonParent(Group other)
Get the common parent of this and the other group.boolean
equals(Object oo)
Instances which have same name and parent are equal.Attribute
findAttribute(String name)
Find the attribute by name, return null if not existString
findAttributeString(String attName, String defaultValue)
Find a String-valued Attribute by name (ignore case), return the String value of the Attribute.Dimension
findDimension(String name)
Find a Dimension in this or a parent Group, matching on short name.Dimension
findDimension(Dimension dim)
Find a Dimension in this or a parent Group, using equals.Dimension
findDimensionLocal(String shortName)
Find a Dimension using its (short) name, in this group onlyEnumTypedef
findEnumeration(String name)
Find a Enumeration in this Group, using its short name.EnumTypedef
findEnumeration(String name, boolean searchup)
Find a Enumeration in this or optionally the parent Groups, using its short name.Group
findGroupLocal(String groupShortName)
Retrieve the Group with the specified (short) name.EnumTypedef
findSimilarEnumTypedef(EnumTypedef template, boolean searchup)
Locate an enum type definition that is structurally similar to the template type def.Variable
findVariableByAttribute(String attName, String attValue)
Look in this Group and in its nested Groups for a Variable with a String valued Attribute with the given name and value.Variable
findVariableLocal(String varShortName)
Find the Variable with the specified (short) name in this group.Variable
findVariableOrInParent(String varShortName)
Find the Variable with the specified (short) name in this group or a parent group.List<Dimension>
getDimensions()
Get the shared Dimensions contained directly in this group.com.google.common.collect.ImmutableList<EnumTypedef>
getEnumTypedefs()
Get the enumerations contained directly in this group.String
getFullName()
Get the full name of this object.com.google.common.collect.ImmutableList<Group>
getGroups()
Get the Groups contained directly in this Group.String
getNameAndAttributes()
Get String with name and attributes.NetcdfFile
getNetcdfFile()
Get the owning NetcdfFileGroup
getParentGroup()
Get the parent Group, or null if its the root group.List<Variable>
getVariables()
Get the Variables contained directly in this group.int
hashCode()
Override Object.hashCode() to implement equals.boolean
isParent(Group other)
Is this a parent of the other Group?boolean
isRoot()
Is this the root group?com.google.common.collect.ImmutableList<Dimension>
makeDimensionsList(String dimString)
Create a dimension list using dimension names.Group.Builder
toBuilder()
Turn into a mutable Builder.String
toString()
-
Methods inherited from interface ucar.nc2.AttributeContainer
findAttributeDouble, findAttributeIgnoreCase, findAttributeInteger, getName, hasAttribute, hasAttributeIgnoreCase, isEmpty, iterator
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Method Detail
-
isRoot
public boolean isRoot()
Is this the root group?- Returns:
- true if root group
-
getVariables
public List<Variable> getVariables()
Get the Variables contained directly in this group.- Returns:
- List of type Variable; may be empty, not null. TODO return ImmutableList
-
findVariableLocal
@Nullable public Variable findVariableLocal(String varShortName)
Find the Variable with the specified (short) name in this group.- Parameters:
varShortName
- short name of Variable within this group.- Returns:
- the Variable, or null if not found
-
findVariableOrInParent
@Nullable public Variable findVariableOrInParent(String varShortName)
Find the Variable with the specified (short) name in this group or a parent group.- Parameters:
varShortName
- short name of Variable.- Returns:
- the Variable, or null if not found
-
findVariableByAttribute
@Nullable public Variable findVariableByAttribute(String attName, String attValue)
Look in this Group and in its nested Groups for a Variable with a String valued Attribute with the given name and value.- Parameters:
attName
- look for an Attribuite with this name.attValue
- look for an Attribuite with this value.- Returns:
- the first Variable that matches, or null if none match.
-
getParentGroup
@Nullable public Group getParentGroup()
Get the parent Group, or null if its the root group. Not deprecated.
-
getFullName
public String getFullName()
Get the full name of this object. Certain characters are backslash escaped (see NetcdfFiles.getFullName(Group)) Not deprecated.- Returns:
- full name with backslash escapes
-
getGroups
public com.google.common.collect.ImmutableList<Group> getGroups()
Get the Groups contained directly in this Group.- Returns:
- List of type Group; may be empty, not null.
-
getNetcdfFile
public NetcdfFile getNetcdfFile()
Get the owning NetcdfFile
-
findGroupLocal
@Nullable public Group findGroupLocal(String groupShortName)
Retrieve the Group with the specified (short) name.- Parameters:
groupShortName
- short name of the nested group you are looking for.- Returns:
- the Group, or null if not found
-
getDimensions
public List<Dimension> getDimensions()
Get the shared Dimensions contained directly in this group.- Returns:
- List of type Dimension; may be empty, not null. TODO return ImmutableList
-
makeDimensionsList
public com.google.common.collect.ImmutableList<Dimension> makeDimensionsList(String dimString) throws IllegalArgumentException
Create a dimension list using dimension names. The dimension is searched for recursively in the parent groups.- Parameters:
dimString
- : whitespace separated list of dimension names, or '*' for Dimension.UNKNOWN, or number for anon dimension. null or empty String is a scalar.- Returns:
- list of dimensions, will return ImmutableList<> in version 6
- Throws:
IllegalArgumentException
- if cant find dimension or parse error.
-
getEnumTypedefs
public com.google.common.collect.ImmutableList<EnumTypedef> getEnumTypedefs()
Get the enumerations contained directly in this group.- Returns:
- List of type EnumTypedef; may be empty, not null.
-
findDimension
@Nullable public Dimension findDimension(String name)
Find a Dimension in this or a parent Group, matching on short name.- Parameters:
name
- Dimension name.- Returns:
- the Dimension, or null if not found
-
findDimension
@Nullable public Dimension findDimension(Dimension dim)
Find a Dimension in this or a parent Group, using equals.- Parameters:
dim
- Dimension .- Returns:
- the Dimension, or null if not found
-
findDimensionLocal
@Nullable public Dimension findDimensionLocal(String shortName)
Find a Dimension using its (short) name, in this group only- Parameters:
shortName
- Dimension name.- Returns:
- the Dimension, or null if not found
-
attributes
public AttributeContainer attributes()
The attributes contained by this Group.
-
findAttribute
@Nullable public Attribute findAttribute(String name)
Find the attribute by name, return null if not exist- Specified by:
findAttribute
in interfaceAttributeContainer
-
findAttributeString
public String findAttributeString(String attName, String defaultValue)
Find a String-valued Attribute by name (ignore case), return the String value of the Attribute.- Specified by:
findAttributeString
in interfaceAttributeContainer
- Returns:
- the attribute value, or defaultValue if not found
-
findEnumeration
@Nullable public EnumTypedef findEnumeration(String name)
Find a Enumeration in this Group, using its short name.
-
findEnumeration
@Nullable public EnumTypedef findEnumeration(String name, boolean searchup)
Find a Enumeration in this or optionally the parent Groups, using its short name.
-
findSimilarEnumTypedef
public EnumTypedef findSimilarEnumTypedef(EnumTypedef template, boolean searchup)
Locate an enum type definition that is structurally similar to the template type def. The Enum names are ignored.- Parameters:
template
- match this enum type defsearchup
- if true, then search this group and then parent groups.
-
commonParent
public Group commonParent(Group other)
Get the common parent of this and the other group. Cant fail, since the root group is always a parent of any 2 groups.- Parameters:
other
- the other group- Returns:
- common parent of this and the other group
-
isParent
public boolean isParent(Group other)
Is this a parent of the other Group?- Parameters:
other
- another Group- Returns:
- true is it is equal or a parent
-
getNameAndAttributes
public String getNameAndAttributes()
Get String with name and attributes. Used in short descriptions like tooltips.- Returns:
- name and attributes String.
-
equals
public boolean equals(Object oo)
Instances which have same name and parent are equal.
-
hashCode
public int hashCode()
Override Object.hashCode() to implement equals.
-
toBuilder
public Group.Builder toBuilder()
Turn into a mutable Builder. Can use toBuilder().build() to copy.
-
builder
public static Group.Builder builder()
-
-