libSBML
5.18.0

LibSBML getAllElementsWithNotes.java



/** 
 * @file    getAllElementsWithNotes.java
 * @brief   Utility program, demontrating how to use the element filter
 *          class to search the model for elements with specific attributes
 *          in this example, we look for elements with notes
 * 
 * @author  Frank T. Bergmann
 *
 * 
 */
import java.util.Vector;
import org.sbml.libsbml.ElementFilter;
import org.sbml.libsbml.SBMLDocument;
import org.sbml.libsbml.SBase;
import org.sbml.libsbml.SBaseList;
import org.sbml.libsbml.libsbml;

public class getAllElementsWithNotes
    extends ElementFilter
{

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        System.loadLibrary("sbmlj");
        System.out.println("Using libSBML : "
            + libsbml.getLibSBMLDottedVersion());
        if (args.length != 1)
        {
            System.out.format("\nUsage: getAllElementsWithNotes filename\n\n");
            System.exit(1);
        }

        String filename = args[0];

        // read the document
        long start = System.currentTimeMillis();
        SBMLDocument document = libsbml.readSBMLFromFile(filename);
        long stop = System.currentTimeMillis();

        System.out.println();
        System.out.format("            filename: %s\n", filename);
        System.out.format("      read time (ms): %d\n", (stop - start));

        // stop in case of serious errors
        long errors = document.getNumErrors(libsbml.LIBSBML_SEV_ERROR);
        if (errors > 0)
        {
            System.out.format("            error(s): %d\n", errors);
            document.printErrors();
            System.exit((int) errors);
        }

        // create the filter to use
        getAllElementsWithNotes filter = new getAllElementsWithNotes();
        // get a list of all elements, as we will need to know all identifiers
        // so that we don't create duplicates.
        start = System.currentTimeMillis();
        System.out.println("    searching ......:");
        SBaseList allElements = document.getListOfAllElements(filter);
        stop = System.currentTimeMillis();
        System.out.format("  seaching took (ms): %d\n", (stop - start));
        System.out.format(" elements with notes: %d\n", (allElements.getSize()));

        // if we got here all went well ...

    }


    // 
    // Constructor initializing this element filter
    // 
    public getAllElementsWithNotes()
    {
    }


    @Override
    public boolean filter(SBase element)
    {
        // return in case we don't have a valid element
        if (element == null
            || !element.isSetNotes())
            return false;

        // otherwise we have notes set and want to keep the element
        if (element.isSetId())
            System.out.println("                     found : " + element.getId() );
        else 
            System.out.println("                     found element without id");

        return true;
    }


}

libSBML
5.18.0


LibSBML, an application programming interface (API) library for SBML.