Package ucar.nc2.write
Class NcmlWriter
- java.lang.Object
-
- ucar.nc2.write.NcmlWriter
-
public class NcmlWriter extends Object
Helper class to write NcML.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
NcmlWriter.WriteVariablesWithNamesPredicate
Predicate that returnstrue
for variables whose names are specified to the constructor.
-
Field Summary
Fields Modifier and Type Field Description static Predicate<? super Variable>
writeAllVariablesPredicate
Predicate that always returnstrue
.static Predicate<? super Variable>
writeCoordinateVariablesPredicate
Predicate that returnstrue
for variables that arecoordinate variables
.static Predicate<? super Variable>
writeMetadataVariablesPredicate
Predicate that returnstrue
for variables that aremetadata variables
.static Predicate<? super Variable>
writeNoVariablesPredicate
Predicate that always returnsfalse
.
-
Constructor Summary
Constructors Constructor Description NcmlWriter()
Constructor with default valuesNcmlWriter(org.jdom2.Namespace namespace, org.jdom2.output.Format xmlFormat, Predicate<? super Variable> writeValuesPredicate)
Constructor allows you to set parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.jdom2.Namespace
getNamespace()
Gets the XML namespace for the elements in the NcML.Predicate<? super Variable>
getWriteValuesPredicate()
Gets the predicate that will be applied to variables to determine wither their values should be written in addition to their metadata.org.jdom2.output.Format
getXmlFormat()
Gets the object that encapsulates XML formatting options.org.jdom2.Element
makeAttributeElement(Attribute attribute)
org.jdom2.Element
makeDimensionElement(Dimension dim)
org.jdom2.Element
makeEnumTypedefElement(EnumTypedef etd)
org.jdom2.Element
makeExplicitNetcdfElement(NetcdfFile ncFile, String location)
org.jdom2.Element
makeGroupElement(Group group)
org.jdom2.Element
makeNetcdfElement(NetcdfFile ncFile, String location)
org.jdom2.Element
makeValuesElement(Variable variable, boolean allowRegular)
Creates a<values>
element from the variable's data.org.jdom2.Element
makeVariableElement(Variable var, boolean showValues)
void
writeToFile(org.jdom2.Element elem, File outFile)
Writes an NcML element to an output file.void
writeToStream(org.jdom2.Element elem, OutputStream outStream)
Writes an NcML element to an output stream.String
writeToString(org.jdom2.Element elem)
Writes an NcML element to a string.void
writeToWriter(org.jdom2.Element elem, Writer writer)
Writes an NcML element to a Writer.
-
-
-
Field Detail
-
writeNoVariablesPredicate
public static final Predicate<? super Variable> writeNoVariablesPredicate
Predicate that always returnsfalse
.
-
writeMetadataVariablesPredicate
public static final Predicate<? super Variable> writeMetadataVariablesPredicate
Predicate that returnstrue
for variables that aremetadata variables
. For such variables, the data is not actually present in the file, so we must include it in the NcML. It could be synthesized (i.e. generated by an IOSP) or specified in aelement of the input NcML.
-
writeCoordinateVariablesPredicate
public static final Predicate<? super Variable> writeCoordinateVariablesPredicate
Predicate that returnstrue
for variables that arecoordinate variables
.
-
-
Constructor Detail
-
NcmlWriter
public NcmlWriter(@Nullable org.jdom2.Namespace namespace, @Nullable org.jdom2.output.Format xmlFormat, @Nullable Predicate<? super Variable> writeValuesPredicate)
Constructor allows you to set parameters. Any parameters may be null for default.- Parameters:
namespace
- if null use ncmlDefaultNamespace.xmlFormat
- if null, use Format.getPrettyFormat().setLineSeparator(LineSeparator.UNIX).writeValuesPredicate
- if null, write a Variable's values if Variable.isMetadata(). This determines whether values should be written or not. The values will be contained within a<values>
element. By default, the predicate will bewriteMetadataVariablesPredicate
. There could be data loss if the values of metadata variables aren't included in the NcML, so we recommend that you always use it, possibly as part of a compound predicate. For example, suppose you wanted to print the values of metadata and coordinate variables:Predicate
compoundPred = Predicates.or(writeMetadataVariablesPredicate, writeCoordinateVariablesPredicate); ncmlWriter.setWriteVariablesPredicate(compoundPred);
-
NcmlWriter
public NcmlWriter()
Constructor with default values
-
-
Method Detail
-
getNamespace
public org.jdom2.Namespace getNamespace()
Gets the XML namespace for the elements in the NcML. By default, it isncmlDefaultNamespace
.- Returns:
- the XML namespace.
-
getXmlFormat
public org.jdom2.output.Format getXmlFormat()
Gets the object that encapsulates XML formatting options. By default, the format ispretty
withUNIX line separators
.- Returns:
- the XML formatting options.
-
getWriteValuesPredicate
public Predicate<? super Variable> getWriteValuesPredicate()
Gets the predicate that will be applied to variables to determine wither their values should be written in addition to their metadata. The values will be contained within a<values>
element.- Returns:
- the predicate.
-
writeToString
public String writeToString(org.jdom2.Element elem)
Writes an NcML element to a string.- Parameters:
elem
- an NcML element.- Returns:
- the string that represents the NcML document.
-
writeToFile
public void writeToFile(org.jdom2.Element elem, File outFile) throws IOException
Writes an NcML element to an output file.- Parameters:
elem
- an NcML element.outFile
- the file to write the NcML document to.- Throws:
IOException
- if there's any problem writing.
-
writeToStream
public void writeToStream(org.jdom2.Element elem, OutputStream outStream) throws IOException
Writes an NcML element to an output stream.- Parameters:
elem
- an NcML element.outStream
- the stream to write the NcML document to. Will be closed at end of the method.- Throws:
IOException
- if there's any problem writing.
-
writeToWriter
public void writeToWriter(org.jdom2.Element elem, Writer writer) throws IOException
Writes an NcML element to a Writer.- Parameters:
elem
- an NcML element.writer
- the Writer to write the NcML document to. Will be closed at end of the method.- Throws:
IOException
- if there's any problem writing.
-
makeExplicitNetcdfElement
public org.jdom2.Element makeExplicitNetcdfElement(NetcdfFile ncFile, @Nullable String location)
-
makeNetcdfElement
public org.jdom2.Element makeNetcdfElement(NetcdfFile ncFile, @Nullable String location)
-
makeGroupElement
public org.jdom2.Element makeGroupElement(Group group)
-
makeEnumTypedefElement
public org.jdom2.Element makeEnumTypedefElement(EnumTypedef etd)
-
makeDimensionElement
public org.jdom2.Element makeDimensionElement(Dimension dim) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
makeVariableElement
public org.jdom2.Element makeVariableElement(Variable var, boolean showValues)
-
makeAttributeElement
public org.jdom2.Element makeAttributeElement(Attribute attribute)
-
makeValuesElement
public org.jdom2.Element makeValuesElement(Variable variable, boolean allowRegular) throws IOException
Creates a<values>
element from the variable's data.- Parameters:
variable
- the variable to read values fromallowRegular
-true
if regular values should be represented withstart
,increment
, andnpts
attributes instead of space-separated Element text. Has no effect if the data isn't regular.- Returns:
- the
<values>
element. - Throws:
IOException
- if there was an I/O error when reading the variable's data.
-
-