| /* |
| * Sun Public License Notice |
| * |
| * The contents of this file are subject to the Sun Public License |
| * Version 1.0 (the "License"). You may not use this file except in |
| * compliance with the License. A copy of the License is available at |
| * http://www.sun.com/ |
| * |
| * The Original Code is NetBeans. The Initial Developer of the Original |
| * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun |
| * Microsystems, Inc. All Rights Reserved. |
| */ |
| package org.netbeans.lib.cvsclient.command; |
| |
| import org.netbeans.lib.cvsclient.event.ICvsListenerRegistry; |
| import org.netbeans.lib.cvsclient.event.IMessageListener; |
| import org.netbeans.lib.cvsclient.event.TaggedMessageParser; |
| |
| /** |
| * @author Thomas Singer |
| */ |
| public abstract class AbstractMessageParser extends AbstractParser |
| implements IMessageListener { |
| |
| // Abstract =============================================================== |
| |
| protected abstract void parseLine(String line, boolean error); |
| |
| // Fields ================================================================= |
| |
| private final TaggedMessageParser taggedMessageParser = new TaggedMessageParser(); |
| |
| // Implemented ============================================================ |
| |
| public void registerListeners(ICvsListenerRegistry listenerRegistry) { |
| listenerRegistry.addMessageListener(this); |
| super.registerListeners(listenerRegistry); |
| } |
| |
| public void unregisterListeners(ICvsListenerRegistry listenerRegistry) { |
| super.unregisterListeners(listenerRegistry); |
| listenerRegistry.removeMessageListener(this); |
| } |
| |
| public final void messageSent(String message, final byte[] byteMessage, boolean error, boolean tagged) { |
| if (tagged) { |
| final String parsedMessage = taggedMessageParser.parseTaggedMessage(message); |
| if (parsedMessage != null) { |
| parseLine(parsedMessage, false); |
| } |
| } |
| else { |
| final String taggedLine = taggedMessageParser.getString(); |
| if (taggedLine != null) { |
| parseLine(taggedLine, false); |
| } |
| parseLine(message, error); |
| } |
| } |
| |
| public final void commandTerminated(boolean error) { |
| final String taggedLine = taggedMessageParser.getString(); |
| if (taggedLine != null) { |
| parseLine(taggedLine, false); |
| } |
| super.commandTerminated(error); |
| } |
| |
| public void binaryMessageSent(final byte[] bytes) { |
| } |
| } |