/*
* ====================================================================
* Copyright (c) 2004-2012 TMate Software Ltd. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://svnkit.com/license.html
* If newer versions of this license are posted there, you may use a
* newer version instead, at your option.
* ====================================================================
*/
package org.tmatesoft.svn.core.internal.wc.admin;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import org.tmatesoft.svn.core.SVNDepth;
import org.tmatesoft.svn.core.internal.util.SVNHashMap;
import org.tmatesoft.svn.core.internal.util.SVNHashSet;
/**
* @version 1.3
* @author TMate Software Ltd.
*/
public class SVNAdminAreaInfo {
private String myTargetName;
private SVNAdminArea myTarget;
private SVNAdminArea myAnchor;
private SVNWCAccess myAccess;
private Map myNewExternals;
private Map myOldExternals;
private Map myDepths;
private Set myIncompleteEntries;
private boolean myIsEnableIncompleteTrick;
public SVNAdminAreaInfo(SVNWCAccess access, SVNAdminArea anchor, SVNAdminArea target, String targetName) {
myAccess = access;
myAnchor = anchor;
myTarget = target;
myTargetName = targetName;
myIsEnableIncompleteTrick = false;
}
public SVNAdminArea getAnchor() {
return myAnchor;
}
public SVNAdminArea getTarget() {
return myTarget;
}
/**
* This method has been added to give an ability to replace
* read-only areas with write enabled ones.
*/
public void setTarget(SVNAdminArea target) {
myTarget = target;
}
/**
* This method has been added to give an ability to replace
* read-only areas with write enabled ones.
*/
public void setAnchor(SVNAdminArea anchor) {
myAnchor = anchor;
}
public String getTargetName() {
return myTargetName;
}
public SVNWCAccess getWCAccess() {
return myAccess;
}
public void setWCAccess(SVNWCAccess wcAccess) {
myAccess = wcAccess;
}
public void addOldExternal(String path, String oldValue) {
if (myOldExternals == null) {
myOldExternals = new SVNHashMap();
}
myOldExternals.put(path, oldValue);
}
public void addNewExternal(String path, String newValue) {
if (myNewExternals == null) {
myNewExternals = new SVNHashMap();
}
myNewExternals.put(path, newValue);
}
public void addExternal(String path, String oldValue, String newValue) {
addNewExternal(path, newValue);
addOldExternal(path, oldValue);
}
public void addDepth(String path, SVNDepth depth) {
if (myDepths == null) {
myDepths = new SVNHashMap();
}
myDepths.put(path, depth);
}
public void removeDepth(String path) {
if (myDepths != null) {
myDepths.remove(path);
}
}
public void removeExternal(String path) {
if (myNewExternals != null) {
myNewExternals.remove(path);
}
if (myOldExternals != null) {
myOldExternals.remove(path);
}
}
public Map getNewExternals() {
return myNewExternals == null ? Collections.EMPTY_MAP : myNewExternals;
}
public Map getOldExternals() {
return myOldExternals == null ? Collections.EMPTY_MAP : myOldExternals;
}
public Map getDepths() {
return myDepths == null ? Collections.EMPTY_MAP : myDepths;
}
public void addIncompleteEntry(String path) {
if (!myIsEnableIncompleteTrick) {
return;
}
if (myIncompleteEntries == null) {
myIncompleteEntries = new SVNHashSet();
}
myIncompleteEntries.add(path);
}
public boolean isIncomplete(String path) {
if (!myIsEnableIncompleteTrick) {
return false;
}
return myIncompleteEntries != null && myIncompleteEntries.contains(path);
}
}