mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-07 05:55:51 +01:00
85 lines
2.4 KiB
Java
85 lines
2.4 KiB
Java
package editorconfig;
|
|
|
|
import org.ec4j.core.Resource;
|
|
import org.ec4j.core.ResourcePath;
|
|
import org.ec4j.core.model.Ec4jPath;
|
|
import org.eclipse.jgit.api.Git;
|
|
import org.eclipse.jgit.lib.Repository;
|
|
|
|
public class JGitResourcePath implements ResourcePath {
|
|
private final Repository repo;
|
|
private final String revStr;
|
|
private final Ec4jPath path;
|
|
|
|
public JGitResourcePath(Repository repo, String revStr, Ec4jPath path){
|
|
this.repo= repo;
|
|
this.revStr = revStr;
|
|
this.path = path;
|
|
}
|
|
|
|
public static JGitResourcePath RootDirectory(Git git, String revStr){
|
|
return new JGitResourcePath(git.getRepository(), revStr, Ec4jPath.Ec4jPaths.of("/"));
|
|
}
|
|
|
|
@Override
|
|
public ResourcePath getParent() {
|
|
Ec4jPath parent = path.getParentPath();
|
|
return parent == null ? null : new JGitResourcePath(repo, revStr, parent);
|
|
}
|
|
|
|
@Override
|
|
public Ec4jPath getPath() {
|
|
return path;
|
|
}
|
|
|
|
@Override
|
|
public boolean hasParent() {
|
|
return path.getParentPath() != null;
|
|
}
|
|
|
|
@Override
|
|
public Resource relativize(Resource resource) {
|
|
if (resource instanceof JGitResource) {
|
|
JGitResource jgitResource = (JGitResource) resource;
|
|
return new JGitResource(repo, revStr, path.relativize(jgitResource.path).toString());
|
|
} else {
|
|
throw new IllegalArgumentException(
|
|
this.getClass().getName() + ".relativize(Resource resource) can handle only instances of "
|
|
+ JGitResource.class.getName());
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public Resource resolve(String name) {
|
|
if(path == null){
|
|
return new JGitResource(repo, revStr, name);
|
|
}
|
|
else {
|
|
return new JGitResource(repo, revStr, path.resolve(name));
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(Object obj){
|
|
if (this == obj) {
|
|
return true;
|
|
}
|
|
if (obj == null) {
|
|
return false;
|
|
}
|
|
if (getClass() != obj.getClass()) {
|
|
return false;
|
|
}
|
|
JGitResourcePath other = (JGitResourcePath) obj;
|
|
if (!repo.equals(other.repo) || !revStr.equals(other.revStr) || !path.equals(other.path)){
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public String toString(){
|
|
return "JGitResoucePath(Repo:" + repo.getDirectory() + ", revStr:" + revStr + ", path:" + path.toString() + ")";
|
|
}
|
|
}
|