/* * 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 org.jetbrains.idea.svn.dialogs; import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.idea.svn.NestedCopyType; import org.jetbrains.idea.svn.RootUrlInfo; import org.jetbrains.idea.svn.WorkingCopyFormat; import org.jetbrains.idea.svn.api.Depth; import org.jetbrains.idea.svn.commandLine.SvnBindException; import org.tmatesoft.svn.core.SVNURL; public class WCInfo implements WCPaths { private final boolean myIsWcRoot; private final Depth myStickyDepth; @NotNull private final RootUrlInfo myRootInfo; public WCInfo(@NotNull RootUrlInfo rootInfo, boolean isWcRoot, Depth stickyDepth) { myRootInfo = rootInfo; myIsWcRoot = isWcRoot; myStickyDepth = stickyDepth; } public Depth getStickyDepth() { return myStickyDepth; } public String getPath() { return myRootInfo.getPath(); } public VirtualFile getVcsRoot() { return null; } public SVNURL getUrl() { return myRootInfo.getAbsoluteUrlAsUrl(); } public String getRootUrl() { return getUrl().toString(); } public String getRepoUrl() { return getRepositoryRoot(); } @NotNull public RootUrlInfo getRootInfo() { return myRootInfo; } public boolean hasError() { return getRootInfo().getNode().hasError(); } public String getErrorMessage() { @SuppressWarnings("ThrowableResultOfMethodCallIgnored") SvnBindException error = getRootInfo().getNode().getError(); return error != null ? error.getMessage() : ""; } @NotNull public WorkingCopyFormat getFormat() { return myRootInfo.getFormat(); } public String getRepositoryRoot() { return myRootInfo.getRepositoryUrl(); } public boolean isIsWcRoot() { return myIsWcRoot; } @Override public boolean equals(final Object o) { if (this == o) return true; if (!(o instanceof WCInfo)) return false; final WCInfo wcInfo = (WCInfo)o; final String path = getPath(); if (path != null ? !path.equals(wcInfo.getPath()) : wcInfo.getPath() != null) return false; return true; } @Override public int hashCode() { final String path = getPath(); return (path != null ? path.hashCode() : 0); } public NestedCopyType getType() { return myRootInfo.getType(); } }