in cvs/javacvs-src/org/netbeans/lib/cvsclient/command/status/StatusMessageParser.java [94:198]
public void parseLine(String line, boolean isErrorMessage) {
if (readingTags) {
if (line.startsWith(NO_TAGS)) {
outputDone();
return;
}
final int bracket = line.indexOf('(');
if (bracket > 0) {
// it's another tag..
final String tag = line.substring(0, bracket - 1).trim();
final String rev = line.substring(bracket + 1, line.length() - 1);
if (statusInformation == null) {
statusInformation = new StatusInformation();
}
statusInformation.addExistingTag(tag, rev);
}
else {
outputDone();
return;
}
}
if (isErrorMessage) {
final int index = line.indexOf(StatusCommand.EXAM_DIR);
if (index >= 0) {
relativeDirectory = line.substring(index + StatusCommand.EXAM_DIR.length()).trim();
beginning = true;
}
return;
}
if (beginning) {
if (line.startsWith(QUESTION_MARK)) {
final File file = cvsFileSystem.getLocalFileSystem().getFile(line.substring(QUESTION_MARK.length()));
statusInformation = new StatusInformation();
statusInformation.setFile(file);
statusInformation.setStatus(FileStatus.UNKNOWN);
outputDone();
}
if (line.startsWith(FILE)) {
final int statusIndex = line.lastIndexOf(STATUS);
final String statusString = line.substring(statusIndex + STATUS.length());
final FileStatus status = FileStatus.getStatusForString(statusString);
String fileName = line.substring(FILE.length(), statusIndex).trim();
fileName = StringUtil.trimStart(fileName, NO_FILE);
outputDone();
statusInformation = new StatusInformation();
statusInformation.setFile(createFile(fileName));
statusInformation.setStatus(status);
beginning = false;
}
// int index = line.indexOf(NOTHING_KNOWN_ABOUT);
// if (index >= 0) {
// final String fileName = line.substring(index + NOTHING_KNOWN_ABOUT.length());
//
// createStatusInformation(fileName, true, FileStatus.UNKNOWN.toString());
// return;
// }
}
else {
if (line.startsWith(WORK_REVISION)) {
String workingRevision = line.substring(WORK_REVISION.length());
if (workingRevision.startsWith(NO_ENTRY_FOR)) {
workingRevision = "";
}
statusInformation.setWorkingRevision(workingRevision);
}
else if (line.startsWith(REPOSITORY_REVISION)) {
final String repositoryRevision = line.substring(REPOSITORY_REVISION.length());
statusInformation.setRepositoryRevision("");
statusInformation.setRepositoryFileName("");
if (!repositoryRevision.equals(NO_REVISION_CONTROL_FILE)) {
final int separatorIndex = repositoryRevision.indexOf('\t');
if (separatorIndex > 0) {
statusInformation.setRepositoryRevision(repositoryRevision.substring(0, separatorIndex).trim());
statusInformation.setRepositoryFileName(repositoryRevision.substring(separatorIndex).trim());
}
}
}
else if (line.startsWith(STICKY_TAG)) {
final String stickyTag = line.substring(STICKY_TAG.length()).trim();
statusInformation.setStickyTag(stickyTag);
}
else if (line.startsWith(STICKY_DATE)) {
final String stickyDate = line.substring(STICKY_DATE.length()).trim();
statusInformation.setStickyDate(stickyDate);
}
else if (line.startsWith(STICKY_OPTIONS)) {
final String stickyOptions = line.substring(STICKY_OPTIONS.length()).trim();
statusInformation.setStickyOptions(stickyOptions);
}
else if (line.startsWith(EXISTING_TAGS)) {
readingTags = true;
}
else if (line.equals(SEPARATOR)) {
outputDone();
}
}
}