/**
* Copyright (c) 2010 Perforce Software. All rights reserved.
*/
package com.perforce.maven.scm.provider.p4.command.blame;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.maven.scm.command.blame.BlameLine;
import com.perforce.maven.scm.provider.p4.command.P4Result;
import com.perforce.p4java.core.file.IFileAnnotation;
import com.perforce.p4java.core.file.IFileRevisionData;
import com.perforce.p4java.core.file.IFileSpec;
/**
* This class handles the result from the Perforce annotate command.
*/
public class P4BlameResult extends P4Result {
/** The lines. */
private List<BlameLine> blameLines = new ArrayList<BlameLine>();
/** The dates. */
private Map<String, Date> dates = new HashMap<String, Date>();
/** The authors. */
private Map<String, String> authors = new HashMap<String, String>();
/**
* @see com.perforce.maven.scm.provider.p4.command.P4Result#processMessage
* (java.lang.String)
*/
@Override
public String processMessage(String message) {
return null;
}
/**
* Extracts file annotation info as BlameLine objects.
*
* @param fileAnnotations
* the file annotations
*/
public void processBlameLines(List<IFileAnnotation> fileAnnotations) {
if (fileAnnotations != null) {
for (IFileAnnotation fileAnnotation : fileAnnotations) {
if (fileAnnotation != null) {
blameLines.add(new BlameLine(null, String
.valueOf(fileAnnotation.getUpper()), null));
}
}
}
}
/**
* Extracts dates and authors from revision history map.
*
* @param revisionMap
* the revision map
*/
public void processRevisionHistory(
Map<IFileSpec, List<IFileRevisionData>> revisionMap) {
if (revisionMap != null) {
for (Map.Entry<IFileSpec, List<IFileRevisionData>> entry : revisionMap
.entrySet()) {
List<IFileRevisionData> revisions = entry.getValue();
for (IFileRevisionData revision : revisions) {
dates.put(String.valueOf(revision.getRevision()),
revision.getDate());
authors.put(String.valueOf(revision.getRevision()),
revision.getUserName());
}
}
}
}
/**
* Gets the blame lines.
*
* @return the blame lines
*/
public List<BlameLine> getBlameLines() {
return blameLines;
}
/**
* Gets the author.
*
* @param revision
* the revision
* @return the author
*/
public String getAuthor(String revision) {
return authors.get(revision);
}
/**
* Gets the date.
*
* @param revision
* the revision
* @return the date
*/
public Date getDate(String revision) {
return dates.get(revision);
}
}
# |
Change |
User |
Description |
Committed |
|
#2
|
10055 |
Matt Attaway |
Pull over numerous changes from @dantran's branch. |
|
|
#1
|
8496 |
Matt Attaway |
Move P4Ant and P4Maven into their proper homes |
|
|
//public/perforce/p4maven/main/com.perforce.maven/src/main/java/com/perforce/maven/scm/provider/p4/command/blame/P4BlameResult.java |
#1
|
8270 |
Matt Attaway |
Initial add of P4Maven source code |
|
|