package hudson.plugins.pvcs_scm; import hudson.scm.ChangeLogSet; import hudson.model.User; import hudson.model.AbstractBuild; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.ArrayList; /** * Represents a set of changelog entries for a given build. * * @author Brian Lalor <blalor@bravo5.org> */ public class PvcsChangeLogSet extends ChangeLogSet<PvcsChangeLogSet.Entry> { private List<PvcsChangeLogSet.Entry> entries; public static class Entry extends ChangeLogSet.Entry { private Collection<String> affectedPaths; private String user; private String msg; private String revision; private String modifiedTime; // {{{ constructor public Entry(final ChangeLogSet parent, final Collection<String> affectedPaths, final String user, final String msg) { super(); setParent(parent); this.affectedPaths = affectedPaths; this.user = user; this.msg = msg; } // }}} // {{{ getAffectedPaths /** * {@inheritDoc} */ public Collection<String> getAffectedPaths() { return affectedPaths; } // }}} // {{{ getUser /** * {@inheritDoc} */ public User getAuthor() { return User.get(user); } // }}} // {{{ getMsg /** * {@inheritDoc} */ public String getMsg() { return msg; } // }}} // {{{ getRevision public String getRevision() { return revision; } // }}} // {{{ setRevision public void setRevision(final String revision) { this.revision = revision; } // }}} // {{{ getModifiedTime public String getModifiedTime() { return modifiedTime; } // }}} // {{{ setModifiedTime public void setModifiedTime(final String modifiedTime) { this.modifiedTime = modifiedTime; } // }}} } // {{{ constructor /** * */ protected PvcsChangeLogSet(final AbstractBuild build) { super(build); entries = new ArrayList<PvcsChangeLogSet.Entry>(); } // }}} // {{{ isEmptySet /** * */ public boolean isEmptySet() { return entries.isEmpty(); } // }}} // {{{ iterator /** * {@inheritDoc} */ public Iterator<PvcsChangeLogSet.Entry> iterator() { return entries.iterator(); } // }}} // {{{ addEntry /** * Adds an entry to the change set. */ public void addEntry(final Collection<String> affectedPaths, final String user, final String msg) { entries.add(addNewEntry(affectedPaths, user, msg)); } // }}} // {{{ addNewEntry /** * Returns a new Entry, which is already added to the list. * * @return new Entry instance */ public Entry addNewEntry(final Collection<String> affectedPaths, final String user, final String msg) { Entry entry = new Entry(this, affectedPaths, user, msg); entries.add(entry); return entry; } // }}} }