| package org.netbeans.lib.cvsclient.progress.receiving; |
| |
| import org.netbeans.lib.cvsclient.command.CommandUtils; |
| import org.netbeans.lib.cvsclient.command.ICvsFiles; |
| import org.netbeans.lib.cvsclient.command.IFileInfo; |
| import org.netbeans.lib.cvsclient.event.ICvsListener; |
| import org.netbeans.lib.cvsclient.event.ICvsListenerRegistry; |
| import org.netbeans.lib.cvsclient.event.IFileInfoListener; |
| import org.netbeans.lib.cvsclient.event.IMessageListener; |
| import org.netbeans.lib.cvsclient.file.FileUtils; |
| import org.netbeans.lib.cvsclient.progress.IProgressViewer; |
| import org.netbeans.lib.cvsclient.util.BugLog; |
| |
| /** |
| * @author Thomas Singer |
| */ |
| public final class FileInfoAndMessageResponseProgressHandler extends AbstractResponseProgressHandler |
| implements ICvsListener, IMessageListener, IFileInfoListener { |
| |
| // Fields ================================================================= |
| |
| private final String examinePattern; |
| |
| // Setup ================================================================== |
| |
| public FileInfoAndMessageResponseProgressHandler(IProgressViewer progressViewer, ICvsFiles cvsFiles, String examinePattern) { |
| super(progressViewer, cvsFiles); |
| |
| BugLog.getInstance().assertNotNull(examinePattern); |
| |
| this.examinePattern = examinePattern; |
| } |
| |
| // Implemented ============================================================ |
| |
| public void registerListeners(ICvsListenerRegistry listenerRegistry) { |
| listenerRegistry.addMessageListener(this); |
| listenerRegistry.addFileInfoListener(this); |
| } |
| |
| public void unregisterListeners(ICvsListenerRegistry listenerRegistry) { |
| listenerRegistry.removeMessageListener(this); |
| listenerRegistry.removeFileInfoListener(this); |
| } |
| |
| public void messageSent(String message, final byte[] byteMessage, boolean error, boolean tagged) { |
| if (!error || tagged) { |
| return; |
| } |
| |
| final String directoryPath = CommandUtils.getExaminedDirectory(message, examinePattern); |
| if (directoryPath == null) { |
| return; |
| } |
| |
| if (directoryPath.equals(".")) { |
| directoryProcessed("/"); |
| } |
| else { |
| directoryProcessed(FileUtils.ensureLeadingSlash(directoryPath)); |
| } |
| } |
| |
| public void fileInfoGenerated(Object info) { |
| if (info instanceof IFileInfo) { |
| final IFileInfo fileInfo = (IFileInfo)info; |
| fileProcessed(fileInfo.getFileObject()); |
| } |
| } |
| |
| public void binaryMessageSent(final byte[] bytes) { |
| } |
| } |