blob: 8c24c2f43b031779f0932e8f4b5e7b21af7dec69 [file] [log] [blame]
/*
* Copyright 2000-2009 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.intellij.cvsSupport2.cvsoperations.javacvsSpecificImpls;
import java.io.File;
import java.io.IOException;
import java.util.*;
import org.netbeans.lib.cvsclient.admin.Entry;
import org.netbeans.lib.cvsclient.admin.IAdminReader;
import org.netbeans.lib.cvsclient.file.AbstractFileObject;
import org.netbeans.lib.cvsclient.file.DirectoryObject;
import org.netbeans.lib.cvsclient.file.FileObject;
import org.netbeans.lib.cvsclient.file.ICvsFileSystem;
import com.intellij.openapi.util.text.StringUtil;
/**
* author: lesya
*/
public class AdminReaderForLightFiles implements IAdminReader{
private final Map<File, Entry> myFileToEntryMap;
public AdminReaderForLightFiles(Map<File, Entry> fileToEntryMap) {
myFileToEntryMap = fileToEntryMap;
}
public Collection getEntries(DirectoryObject directoryObject, ICvsFileSystem cvsFileSystem) throws IOException {
String path = directoryObject.getPath();
if (StringUtil.startsWithChar(path, '/')) path = path.substring(1);
return collectEntriesForPath(new File(path));
}
private Collection collectEntriesForPath(File parent) {
HashSet result = new HashSet();
for (Iterator iterator = myFileToEntryMap.keySet().iterator(); iterator.hasNext();) {
File file = (File) iterator.next();
if (file.getParentFile().equals(parent)) result.add(myFileToEntryMap.get(file));
}
return result;
}
public boolean isModified(FileObject fileObject, Date entryLastModified, ICvsFileSystem cvsFileSystem) {
return false;
}
public boolean isStatic(DirectoryObject directoryObject, ICvsFileSystem cvsFileSystem) {
return false;
}
public Entry getEntry(AbstractFileObject fileObject, ICvsFileSystem cvsFileSystem) throws IOException {
String path = fileObject.getPath();
if (StringUtil.startsWithChar(path, '/')) path = path.substring(1);
return getEntryForPath(new File(path));
}
private Entry getEntryForPath(File requested) {
for (Iterator iterator = myFileToEntryMap.keySet().iterator(); iterator.hasNext();) {
File file = (File) iterator.next();
if (file.equals(requested)) return myFileToEntryMap.get(file);
}
return null;
}
public String getRepositoryForDirectory(DirectoryObject directoryObject, String repository, ICvsFileSystem cvsFileSystem) throws IOException {
String path = directoryObject.getPath();
if (StringUtil.startsWithChar(path, '/')) path = path.substring(1);
return repository + path.replace(File.separatorChar, '/');
}
public boolean hasCvsDirectory(DirectoryObject directoryObject, ICvsFileSystem cvsFileSystem) {
return false;
}
public String getStickyTagForDirectory(DirectoryObject directoryObject, ICvsFileSystem cvsFileSystem) {
return null;
}
}