Class ManifestParser

  • All Implemented Interfaces:
    org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

    public class ManifestParser
    extends org.xml.sax.helpers.DefaultHandler
    Repo XML manifest parser.
    Since:
    4.0
    See Also:
    git-repo project page
    • Field Detail

      • filename

        private final java.lang.String filename
      • baseUrl

        private final java.net.URI baseUrl
      • defaultBranch

        private final java.lang.String defaultBranch
      • plusGroups

        private final java.util.Set<java.lang.String> plusGroups
      • minusGroups

        private final java.util.Set<java.lang.String> minusGroups
      • projects

        private final java.util.List<RepoProject> projects
      • filteredProjects

        private final java.util.List<RepoProject> filteredProjects
      • defaultRemote

        private java.lang.String defaultRemote
      • defaultRevision

        private java.lang.String defaultRevision
      • xmlInRead

        private int xmlInRead
    • Constructor Detail

      • ManifestParser

        public ManifestParser​(ManifestParser.IncludedFileReader includedReader,
                              java.lang.String filename,
                              java.lang.String defaultBranch,
                              java.lang.String baseUrl,
                              java.lang.String groups,
                              Repository rootRepo)
        Constructor for ManifestParser
        Parameters:
        includedReader - a ManifestParser.IncludedFileReader object.
        filename - a String object.
        defaultBranch - a String object.
        baseUrl - a String object.
        groups - a String object.
        rootRepo - a Repository object.
    • Method Detail

      • read

        public void read​(java.io.InputStream inputStream)
                  throws java.io.IOException
        Read the xml file.
        Parameters:
        inputStream - a InputStream object.
        Throws:
        java.io.IOException
      • startElement

        public void startElement​(java.lang.String uri,
                                 java.lang.String localName,
                                 java.lang.String qName,
                                 org.xml.sax.Attributes attributes)
                          throws org.xml.sax.SAXException
        Specified by:
        startElement in interface org.xml.sax.ContentHandler
        Overrides:
        startElement in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • endElement

        public void endElement​(java.lang.String uri,
                               java.lang.String localName,
                               java.lang.String qName)
                        throws org.xml.sax.SAXException
        Specified by:
        endElement in interface org.xml.sax.ContentHandler
        Overrides:
        endElement in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • endDocument

        public void endDocument()
                         throws org.xml.sax.SAXException
        Specified by:
        endDocument in interface org.xml.sax.ContentHandler
        Overrides:
        endDocument in class org.xml.sax.helpers.DefaultHandler
        Throws:
        org.xml.sax.SAXException
      • normalizeEmptyPath

        static java.net.URI normalizeEmptyPath​(java.net.URI u)
      • getProjects

        public java.util.List<RepoProject> getProjects()
        Getter for projects.
        Returns:
        projects list reference, never null
      • getFilteredProjects

        @NonNull
        public java.util.List<RepoProject> getFilteredProjects()
        Getter for filterdProjects.
        Returns:
        filtered projects list reference, never null
      • removeNotInGroup

        void removeNotInGroup()
        Remove projects that are not in our desired groups.
      • removeOverlaps

        void removeOverlaps()
        Remove projects that sits in a subdirectory of any other project.
      • removeNestedCopyAndLinkfiles

        private void removeNestedCopyAndLinkfiles()