KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > lib > cvsclient > command > export > ExportBuilder


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.netbeans.lib.cvsclient.command.export;
21
22 import java.io.*;
23
24 import org.netbeans.lib.cvsclient.command.*;
25 import org.netbeans.lib.cvsclient.event.*;
26
27 /**
28  * @author Milos Kleint
29  */

30 public class ExportBuilder implements Builder {
31
32     private static final String JavaDoc FILE_INFOS = "MUARC?"; //NOI18N
33

34     private final EventManager eventManager;
35     private final String JavaDoc localPath;
36
37     private DefaultFileInfoContainer fileInfoContainer;
38
39     public ExportBuilder(EventManager eventManager, ExportCommand exportCommand) {
40         this.eventManager = eventManager;
41
42         this.localPath = exportCommand.getLocalDirectory();
43     }
44
45     public void outputDone() {
46         if (fileInfoContainer == null) {
47             return;
48         }
49
50         FileInfoEvent event = new FileInfoEvent(this, fileInfoContainer);
51         eventManager.fireCVSEvent(event);
52
53         fileInfoContainer = null;
54     }
55
56     public void parseLine(String JavaDoc line, boolean isErrorMessage) {
57         if (line.length() > 2 && line.charAt(1) == ' ') {
58             String JavaDoc firstChar = line.substring(0, 1);
59             if (FILE_INFOS.indexOf(firstChar) >= 0) {
60                 String JavaDoc filename = line.substring(2).trim();
61                 processFile(firstChar, filename);
62             }
63             else {
64                 error(line);
65             }
66         }
67     }
68
69     public void parseEnhancedMessage(String JavaDoc key, Object JavaDoc value) {
70     }
71
72     private void error(String JavaDoc line) {
73         System.err.println("Don't know anything about: " + line);
74     }
75
76     private void processFile(String JavaDoc type, String JavaDoc filename) {
77         outputDone();
78
79         File file = new File(localPath, filename);
80
81         fileInfoContainer = new DefaultFileInfoContainer();
82         fileInfoContainer.setType(type);
83         fileInfoContainer.setFile(file);
84
85         outputDone();
86     }
87 }
88
Popular Tags