Package ucar.nc2
Class Group.Builder
- java.lang.Object
-
- ucar.nc2.Group.Builder
-
-
Field Summary
Fields Modifier and Type Field Description List<EnumTypedef>
enumTypedefs
List<Group.Builder>
gbuilders
String
shortName
List<Variable.Builder<?>>
vbuilders
-
Constructor Summary
Constructors Constructor Description Builder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Group.Builder
addAttribute(Attribute att)
Group.Builder
addAttributes(Iterable<Attribute> atts)
Group.Builder
addDimension(Dimension dim)
Add Dimension with error if it already existsboolean
addDimensionIfNotExists(Dimension dim)
Add Dimension if one with same name doesnt already exist.Group.Builder
addDimensions(Collection<Dimension> dims)
Add Dimensions with error if any already existGroup.Builder
addEnumTypedef(EnumTypedef typedef)
Group.Builder
addEnumTypedefs(Collection<EnumTypedef> typedefs)
Group.Builder
addGroup(Group.Builder nested)
Add a nested Group.Group.Builder
addGroups(Collection<Group.Builder> groups)
Group.Builder
addVariable(Variable.Builder<?> variable)
Add a Variable, throw error if one of the same name if it exists.Group.Builder
addVariables(Collection<Variable.Builder<?>> vars)
Add Variables, throw error if one of the same name if it exists.Group
build()
Build the root group, with parent = null.Group.Builder
commonParent(Group.Builder other)
Find the common parent with the other group ?boolean
contains(Dimension want)
Find Dimension in this Group or a parent GroupOptional<Dimension>
findDimension(String name)
Find Dimension in this Group or a parent GroupOptional<Dimension>
findDimensionLocal(String name)
Find Dimension local to this GroupOptional<EnumTypedef>
findEnumeration(String name)
Optional<Group.Builder>
findGroupLocal(String shortName)
Optional<Group.Builder>
findGroupNested(String reletiveName)
Find a subgroup of this Group, with the specified reletive name.EnumTypedef
findOrAddEnumTypedef(String name, Map<Integer,String> map)
Add a EnumTypedef if it does not already exist.Optional<Variable.Builder<?>>
findVariable(String fullNameEscaped)
Find a Variable, with the specified (escaped full) name.Optional<Variable.Builder<?>>
findVariableLocal(String name)
Optional<Variable.Builder<?>>
findVariableNested(String reletiveName)
Find a Variable, with the specified reletive name.Optional<Variable.Builder<?>>
findVariableOrInParent(String varShortName)
Find the Variable with the specified (short) name in this group or a parent group.AttributeContainerMutable
getAttributeContainer()
Iterable<Dimension>
getDimensions()
Group.Builder
getParentGroup()
boolean
isParent(Group.Builder other)
Is this group a parent of the other group ?List<Dimension>
makeDimensionsList(String dimString)
Make list of dimensions by looking in this Group or parent groupsString
makeFullName()
Make the full name of the this group.boolean
removeDimension(String name)
Remove dimension, if it exists.void
removeDimensionFromAllGroups(Group.Builder group, Dimension remove)
Remove the given dimension from this group and any subgroupsboolean
removeGroup(String name)
Remove group, if it exists.boolean
removeVariable(String name)
Remove variable, if it exists.boolean
replaceDimension(Dimension dim)
Replace dimension if it exists, else just add it.boolean
replaceVariable(Variable.Builder<?> vb)
Replace variable of same name, if it exists, else just add it.Group.Builder
setName(String shortName)
Group.Builder
setNcfile(NetcdfFile ncfile)
Group.Builder
setParentGroup(Group.Builder parentGroup)
-
-
-
Field Detail
-
gbuilders
public final List<Group.Builder> gbuilders
-
vbuilders
public final List<Variable.Builder<?>> vbuilders
-
shortName
public String shortName
-
enumTypedefs
public final List<EnumTypedef> enumTypedefs
-
-
Method Detail
-
setParentGroup
public Group.Builder setParentGroup(@Nullable Group.Builder parentGroup)
-
getParentGroup
@Nullable public Group.Builder getParentGroup()
-
addAttribute
public Group.Builder addAttribute(Attribute att)
-
addAttributes
public Group.Builder addAttributes(Iterable<Attribute> atts)
-
getAttributeContainer
public AttributeContainerMutable getAttributeContainer()
-
addDimension
public Group.Builder addDimension(Dimension dim)
Add Dimension with error if it already exists
-
addDimensionIfNotExists
public boolean addDimensionIfNotExists(Dimension dim)
Add Dimension if one with same name doesnt already exist.- Returns:
- true if it did not exist and was added.
-
addDimensions
public Group.Builder addDimensions(Collection<Dimension> dims)
Add Dimensions with error if any already exist
-
replaceDimension
public boolean replaceDimension(Dimension dim)
Replace dimension if it exists, else just add it.- Returns:
- true if there was an existing dimension of that name
-
removeDimension
public boolean removeDimension(String name)
Remove dimension, if it exists.- Returns:
- true if there was an existing dimension of that name
-
findDimensionLocal
public Optional<Dimension> findDimensionLocal(String name)
Find Dimension local to this Group
-
contains
public boolean contains(Dimension want)
Find Dimension in this Group or a parent Group
-
findDimension
public Optional<Dimension> findDimension(String name)
Find Dimension in this Group or a parent Group
-
addGroup
public Group.Builder addGroup(Group.Builder nested)
Add a nested Group.
-
addGroups
public Group.Builder addGroups(Collection<Group.Builder> groups)
-
removeGroup
public boolean removeGroup(String name)
Remove group, if it exists.- Returns:
- true if there was an existing group of that name
-
findGroupLocal
public Optional<Group.Builder> findGroupLocal(String shortName)
-
findGroupNested
public Optional<Group.Builder> findGroupNested(String reletiveName)
Find a subgroup of this Group, with the specified reletive name. An embedded "/" separates group names. Can have a leading "/" only if this is the root group.- Parameters:
reletiveName
- eg "group/subgroup/wantGroup".- Returns:
- Group or empty if not found.
-
isParent
public boolean isParent(Group.Builder other)
Is this group a parent of the other group ?
-
commonParent
public Group.Builder commonParent(Group.Builder other)
Find the common parent with the other group ?
-
addEnumTypedef
public Group.Builder addEnumTypedef(EnumTypedef typedef)
-
addEnumTypedefs
public Group.Builder addEnumTypedefs(Collection<EnumTypedef> typedefs)
-
findOrAddEnumTypedef
public EnumTypedef findOrAddEnumTypedef(String name, Map<Integer,String> map)
Add a EnumTypedef if it does not already exist. Return new or existing.
-
findEnumeration
public Optional<EnumTypedef> findEnumeration(String name)
-
addVariable
public Group.Builder addVariable(Variable.Builder<?> variable)
Add a Variable, throw error if one of the same name if it exists.
-
addVariables
public Group.Builder addVariables(Collection<Variable.Builder<?>> vars)
Add Variables, throw error if one of the same name if it exists.
-
replaceVariable
public boolean replaceVariable(Variable.Builder<?> vb)
Replace variable of same name, if it exists, else just add it.- Returns:
- true if there was an existing variable of that name
-
removeVariable
public boolean removeVariable(String name)
Remove variable, if it exists.- Returns:
- true if there was an existing variable of that name
-
findVariableLocal
public Optional<Variable.Builder<?>> findVariableLocal(String name)
-
findVariableNested
public Optional<Variable.Builder<?>> findVariableNested(String reletiveName)
Find a Variable, with the specified reletive name. No structure members.- Parameters:
reletiveName
- eg "group/subgroup/varname".
-
findVariable
public Optional<Variable.Builder<?>> findVariable(String fullNameEscaped)
Find a Variable, with the specified (escaped full) name. It may possibly be nested in multiple groups and/or structures. An embedded "." is interpreted as structure.member. An embedded "/" is interpreted as group/variable. If the name actually has a ".", you must escape it (call NetcdfFiles.makeValidPathName(varname)) Any other chars may also be escaped, as they are removed before testing.- Parameters:
fullNameEscaped
- eg "/group/subgroup/name1.name2.name".- Returns:
- Optional Variable.Builder
NetcdfFile.findVariable(String fullNameEscaped)
-
findVariableOrInParent
public Optional<Variable.Builder<?>> 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 empty.
-
setNcfile
public Group.Builder setNcfile(NetcdfFile ncfile)
-
setName
public Group.Builder setName(String shortName)
-
makeDimensionsList
public List<Dimension> makeDimensionsList(String dimString) throws IllegalArgumentException
Make list of dimensions by looking in this Group or parent groups- Throws:
IllegalArgumentException
-
makeFullName
public String makeFullName()
Make the full name of the this group. TODO In light of CF groups, we may have to start full names with '/'
-
removeDimensionFromAllGroups
public void removeDimensionFromAllGroups(Group.Builder group, Dimension remove)
Remove the given dimension from this group and any subgroups
-
build
public Group build()
Build the root group, with parent = null.
-
-