| /* |
| * 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.request; |
| |
| import org.netbeans.lib.cvsclient.IClientEnvironment; |
| import org.netbeans.lib.cvsclient.admin.Entry; |
| import org.netbeans.lib.cvsclient.admin.IAdminReader; |
| import org.netbeans.lib.cvsclient.command.KeywordSubstitution; |
| import org.netbeans.lib.cvsclient.file.*; |
| import org.netbeans.lib.cvsclient.util.BugLog; |
| import org.jetbrains.annotations.NonNls; |
| |
| import java.util.ArrayList; |
| import java.util.Collections; |
| import java.util.List; |
| import java.util.StringTokenizer; |
| |
| /** |
| * @author Thomas Singer |
| */ |
| public final class Requests { |
| |
| // Fields ================================================================= |
| |
| private final List requestList = new ArrayList(); |
| private final ICvsFileSystem cvsFileSystem; |
| private final IAdminReader adminReader; |
| private final ResponseExpectingRequest responseExpectingRequest; |
| |
| // Setup ================================================================== |
| |
| public Requests(ResponseExpectingRequest responseExpectingRequest, IClientEnvironment clientEnvironment) { |
| BugLog.getInstance().assertNotNull(responseExpectingRequest); |
| BugLog.getInstance().assertNotNull(clientEnvironment); |
| |
| this.responseExpectingRequest = responseExpectingRequest; |
| this.cvsFileSystem = clientEnvironment.getCvsFileSystem(); |
| this.adminReader = clientEnvironment.getAdminReader(); |
| } |
| |
| // Accessing ============================================================== |
| |
| public void addRequest(IRequest request) { |
| BugLog.getInstance().assertNotNull(request); |
| |
| requestList.add(request); |
| } |
| |
| public void addArgumentRequest(@NonNls String argument) { |
| addRequest(new ArgumentRequest(argument)); |
| } |
| |
| public void addArgumentRequest(Object obj, @NonNls String argument) { |
| if (obj == null) { |
| return; |
| } |
| |
| final String objString = obj.toString().trim(); |
| if (objString.length() == 0) { |
| return; |
| } |
| |
| addArgumentRequest(argument); |
| addArgumentRequest(objString); |
| } |
| |
| public void addArgumentRequests(Object obj, @NonNls String argument) { |
| if (obj == null) { |
| return; |
| } |
| |
| final String objString = obj.toString().trim(); |
| if (objString.length() == 0) { |
| return; |
| } |
| |
| addArgumentRequest(argument); |
| addArgumentRequest(objString); |
| } |
| |
| public void addArgumentRequest(boolean value, @NonNls String argument) { |
| if (value) { |
| addArgumentRequest(argument); |
| } |
| } |
| |
| public void addLocalPathDirectoryRequest() { |
| //final String repositoryPath = cvsFileSystem.getRepositoryForDirectory(DirectoryObject.getRoot(), adminReader); |
| //addRequest(new LocalDirectoryRequest(repositoryPath)); |
| addDirectoryRequest(DirectoryObject.getRoot()); |
| } |
| |
| @NonNls public String addDirectoryRequest(DirectoryObject directoryObject) { |
| final String relativeDirPath = directoryObject.toUnixPath(); |
| final String repositoryPath = cvsFileSystem.getRepositoryForDirectory(directoryObject, adminReader); |
| addRequest(new DirectoryRequest(relativeDirPath, repositoryPath)); |
| if (adminReader.isStatic(directoryObject, cvsFileSystem)){ |
| addRequest(new AbstractRequest() { |
| public String getRequestString() { |
| return "Static-directory \n"; |
| } |
| }); |
| } |
| return repositoryPath; |
| } |
| |
| public void addFileArgumentRequest(AbstractFileObject fileObject) { |
| addArgumentRequest(fileObject.toUnixPath()); |
| } |
| |
| public void addMessageRequests(@NonNls String message) { |
| addArgumentRequest("-m"); |
| boolean first = true; |
| final StringTokenizer token = new StringTokenizer(message, "\n", false); |
| while (token.hasMoreTokens()) { |
| if (first) { |
| addArgumentRequest(token.nextToken()); |
| first = false; |
| } |
| else { |
| addRequest(new ArgumentxRequest(token.nextToken())); |
| } |
| } |
| } |
| |
| public List getRequests() { |
| return Collections.unmodifiableList(requestList); |
| } |
| |
| public ResponseExpectingRequest getResponseExpectingRequest() { |
| return responseExpectingRequest; |
| } |
| |
| public void addDirectoryStickyRequests(DirectoryObject directoryObject, IAdminReader adminReader, ICvsFileSystem cvsFileSystem) { |
| addDirectoryRequest(directoryObject); |
| addStickyRequest(adminReader.getStickyTagForDirectory(directoryObject, cvsFileSystem)); |
| } |
| |
| public void addStickyRequest(String tag) { |
| if (tag != null) { |
| addRequest(new StickyRequest(tag)); |
| } |
| } |
| |
| public void addModifiedRequest(FileObject fileObject, boolean binary, boolean writable) { |
| addRequest(new ModifiedRequest(fileObject, binary, writable)); |
| } |
| |
| public void addIsModifiedRequest(FileObject fileObject) { |
| addRequest(new IsModifiedRequest(fileObject)); |
| } |
| |
| public void addUnchangedRequest(FileObject fileObject) { |
| addRequest(new UnchangedRequest(fileObject)); |
| } |
| |
| public void addEntryRequest(Entry entry) { |
| addRequest(new EntryRequest(entry)); |
| } |
| |
| public void addQuestionableRequest(FileObject fileObject) { |
| addRequest(new QuestionableRequest(fileObject)); |
| } |
| |
| public void addNotifyRequest(FileObject fileObject, @NonNls String command, String temporaryWatch) { |
| final String path = cvsFileSystem.getLocalFileSystem().getFile(fileObject.getParent()).getAbsolutePath(); |
| addRequest(new NotifyRequest(fileObject, path, command, temporaryWatch)); |
| } |
| |
| public void addKoptRequest(KeywordSubstitution keywordSubstMode) { |
| addRequest(new KoptRequest(keywordSubstMode)); |
| } |
| } |