1 19 package org.netbeans.lib.cvsclient.command.tag; 20 21 import java.io.*; 22 23 import org.netbeans.lib.cvsclient.command.*; 24 import org.netbeans.lib.cvsclient.event.*; 25 26 29 public class TagBuilder 30 implements Builder { 31 32 public static final String STATES = "T D ? "; public static final String CVS_SERVER = "server: "; public static final String EXAM_DIR = "server: "; 36 39 private DefaultFileInfoContainer fileInfoContainer; 40 41 44 private EventManager eventManager; 45 46 49 private String localPath; 50 51 public TagBuilder(EventManager eventManager, String localPath) { 52 this.eventManager = eventManager; 53 this.localPath = localPath; 54 } 55 56 public void outputDone() { 57 if (fileInfoContainer != null) { 58 eventManager.fireCVSEvent(new FileInfoEvent(this, fileInfoContainer)); 59 fileInfoContainer = null; 60 } 61 } 62 63 public void parseLine(String line, boolean isErrorMessage) { 64 if (isErrorMessage) { 65 return; 66 } 67 68 if (line.indexOf(CVS_SERVER) < 0) { 69 if (line.length() < 3) { 70 return; 71 } 72 73 String firstChar = line.substring(0, 2); 74 if (STATES.indexOf(firstChar) >= 0) { 75 processFile(line); 76 } 77 } 78 } 79 80 private void processFile(String line) { 81 if (fileInfoContainer == null) { 82 fileInfoContainer = new DefaultFileInfoContainer(); 83 } 84 fileInfoContainer.setType(line.substring(0, 1)); 85 86 String fileName = line.substring(2).trim(); 87 if (fileName.startsWith("no file")) { fileName = fileName.substring(8); 89 } 90 fileInfoContainer.setFile(createFile(fileName)); 91 eventManager.fireCVSEvent(new FileInfoEvent(this, fileInfoContainer)); 92 fileInfoContainer = null; 93 } 94 95 private File createFile(String fileName) { 96 return new File(localPath, fileName); 97 } 98 99 public void parseEnhancedMessage(String key, Object value) { 100 } 101 } 102 | Popular Tags |