package com.perforce.common.label; import java.util.Date; import java.util.List; import com.perforce.common.client.P4Factory; import com.perforce.common.depot.DepotImport; import com.perforce.cvs.RevisionEntry; import com.perforce.p4java.core.ILabel; import com.perforce.p4java.core.ILabelMapping; import com.perforce.p4java.core.ViewMap; import com.perforce.p4java.core.file.FileSpecBuilder; import com.perforce.p4java.core.file.IFileSpec; import com.perforce.p4java.exception.P4JavaException; import com.perforce.p4java.impl.generic.core.Label; import com.perforce.p4java.option.server.TagFilesOptions; import com.perforce.p4java.server.IOptionsServer; public class LabelImport implements LabelInterface { private DepotImport depot; private ILabel ilabel; private IOptionsServer iserver; private String name; private String owner; private Date date; public LabelImport(String label, RevisionEntry entry, DepotImport depot) throws Exception { this.depot = depot; this.name = label; this.owner = entry.getAuthor(); this.date = entry.getDate(); iserver = depot.getIServer(); ilabel = iserver.getLabel(name); if (ilabel == null) { Label l = new Label(); l.setName(name); l.setOwnerName(depot.getUser()); ViewMap<ILabelMapping> viewMap = new ViewMap<ILabelMapping>(); Label.LabelMapping lMap = new Label.LabelMapping(); lMap.setLeft("//" + depot.getName() + "/..."); viewMap.addEntry(lMap); l.setViewMapping(viewMap); iserver.createLabel(l); ilabel = iserver.getLabel(name); } ilabel.setOwnerName(owner); ilabel.setLastAccess(date); ilabel.setLastUpdate(date); ilabel.setDescription(getDesc()); } @Override public String getName() { return name; } @Override public String getOwner() { return owner; } @Override public Long getDate() { return date.getTime() / 1000; } @Override public String getDesc() { StringBuffer sb = new StringBuffer(); sb.append("Created by "); sb.append(owner); sb.append(".\n"); return sb.toString(); } @Override public List<TagConvert> getTags() { // not required return null; } @Override public void add(TagConvert tag) throws Exception { StringBuffer fileStr = new StringBuffer(); fileStr.append("//" + depot.getName() + "/"); fileStr.append(tag.getPath()); fileStr.append("#" + tag.getRevision()); List<IFileSpec> fileSpecs; fileSpecs = FileSpecBuilder.makeFileSpecList(fileStr.toString()); TagFilesOptions tagOpts = new TagFilesOptions(); List<IFileSpec> tagSpec = iserver.tagFiles(fileSpecs, name, tagOpts); P4Factory.validateFileSpecs(tagSpec); } public String toString() { StringBuffer sb = new StringBuffer(); sb.append(name + " by: " + owner + "\n"); String fileStr = "//...@" + name; List<IFileSpec> fileSpecs; fileSpecs = FileSpecBuilder.makeFileSpecList(fileStr); List<IFileSpec> tags; try { tags = iserver.getDepotFiles(fileSpecs, null); for (IFileSpec rev : tags) { sb.append("... " + rev + "\n"); } } catch (P4JavaException e) { sb.append("... error\n"); } return sb.toString(); } @Override public void submit() throws Exception { ilabel.setOwnerName(owner); } }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 10152 | alan_petersen |
Populate //guest/alan_petersen/p4convert/... from //guest/perforce_software/p4convert/.... |
||
//guest/perforce_software/p4convert/src/com/perforce/common/label/LabelImport.java | |||||
#1 | 9807 | Paul Allen | Initial import of p4-convert (from change 894340) |