All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.neo4j.build.plugins.changes.Changelog Maven / Gradle / Ivy

The newest version!
package org.neo4j.build.plugins.changes;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Changelog {
    
    private List logLines = new ArrayList();

    public Changelog(File changelog) throws IOException
    {
        this(new FileInputStream(changelog));
    }

    protected Changelog(InputStream changesInput) throws IOException
    {
        try
        {
            BufferedReader br = new BufferedReader(new InputStreamReader(
                    changesInput));
            
            String line;
            while ((line = br.readLine()) != null)
            {
                logLines.add(line);
            }
            
            // Add an extra blank line, makes the parser easier to write
            logLines.add("");
        } finally {
            if(changesInput != null) {
                changesInput.close();
            }
        }
    }

    public List extractSectionForVersion(String version)
    {
        return extractSectionForVersion(new VersionMatcher(version), LineEvaluator.ALL);
    }

    public List extractSectionForVersion(VersionMatcher versionMatcher, LineEvaluator lineEvaluator)
    {
        ChangelogExtractor extractor = new ChangelogExtractor(logLines, versionMatcher, lineEvaluator);
        return extractor.runExtraction(true);
    }

    public List extractAllEntriesWithoutHeadlines(VersionMatcher versionMatcher, LineEvaluator lineEvaluator)
    {
        ChangelogExtractor extractor = new ChangelogExtractor(logLines, versionMatcher, lineEvaluator);
        return extractor.runExtraction(false);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy