Class NcmlWriter

    • Field Detail

      • writeNoVariablesPredicate

        public static final Predicate<? super Variable> writeNoVariablesPredicate
        Predicate that always returns false.
      • writeMetadataVariablesPredicate

        public static final Predicate<? super Variable> writeMetadataVariablesPredicate
        Predicate that returns true for variables that are metadata 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 a element of the input NcML.
      • writeCoordinateVariablesPredicate

        public static final Predicate<? super Variable> writeCoordinateVariablesPredicate
        Predicate that returns true for variables that are coordinate variables.
      • writeAllVariablesPredicate

        public static final Predicate<? super Variable> writeAllVariablesPredicate
        Predicate that always returns true.
    • 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 be writeMetadataVariablesPredicate. 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 is ncmlDefaultNamespace.
        Returns:
        the XML namespace.
      • getXmlFormat

        public org.jdom2.output.Format getXmlFormat()
        Gets the object that encapsulates XML formatting options. By default, the format is pretty with UNIX 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)
      • 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 from
        allowRegular - true if regular values should be represented with start, increment, and npts 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.