/*
* ====================================================================
* Copyright (c) 2004-2010 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.wc17;
import java.io.File;
import org.tmatesoft.svn.core.SVNNodeKind;
import org.tmatesoft.svn.core.internal.wc.SVNConflictVersion;
import org.tmatesoft.svn.core.internal.wc.SVNFileUtil;
import org.tmatesoft.svn.core.wc.SVNConflictAction;
import org.tmatesoft.svn.core.wc.SVNConflictDescription;
import org.tmatesoft.svn.core.wc.SVNConflictReason;
import org.tmatesoft.svn.core.wc.SVNMergeFileSet;
import org.tmatesoft.svn.core.wc.SVNOperation;
import org.tmatesoft.svn.core.wc.SVNPropertyConflictDescription;
import org.tmatesoft.svn.core.wc.SVNTextConflictDescription;
import org.tmatesoft.svn.core.wc.SVNTreeConflictDescription;
public class SVNWCConflictDescription17 {
public static enum ConflictKind {
TEXT, PROPERTY, TREE;
}
private File localAbspath;
private SVNNodeKind nodeKind;
private ConflictKind kind;
private String propertyName;
private boolean isBinary;
private String mimeType;
private SVNConflictAction action;
private SVNConflictReason reason;
private File baseFile;
private File theirFile;
private File myFile;
private File mergedFile;
private SVNOperation operation;
private SVNConflictVersion srcLeftVersion;
private SVNConflictVersion srcRightVersion;
public static SVNWCConflictDescription17 createText(File localAbspath) {
assert (SVNFileUtil.isAbsolute(localAbspath));
SVNWCConflictDescription17 conflict = new SVNWCConflictDescription17();
conflict.localAbspath = localAbspath;
conflict.nodeKind = SVNNodeKind.FILE;
conflict.kind = ConflictKind.TEXT;
conflict.action = SVNConflictAction.EDIT;
conflict.reason = SVNConflictReason.EDITED;
return conflict;
}
public static SVNWCConflictDescription17 createProp(File localAbspath, SVNNodeKind nodeKind, String propertyName) {
assert (SVNFileUtil.isAbsolute(localAbspath));
SVNWCConflictDescription17 conflict = new SVNWCConflictDescription17();
conflict.localAbspath = localAbspath;
conflict.nodeKind = nodeKind;
conflict.kind = ConflictKind.PROPERTY;
conflict.propertyName = propertyName;
return conflict;
}
public static SVNWCConflictDescription17 createTree(File localAbspath, SVNNodeKind nodeKind, SVNOperation operation, SVNConflictVersion srcLeftVersion, SVNConflictVersion srcRightVersion) {
assert (SVNFileUtil.isAbsolute(localAbspath));
SVNWCConflictDescription17 conflict = new SVNWCConflictDescription17();
conflict.localAbspath = localAbspath;
conflict.nodeKind = nodeKind;
conflict.kind = ConflictKind.TREE;
conflict.operation = operation;
conflict.srcLeftVersion = srcLeftVersion;
conflict.srcRightVersion = srcRightVersion;
return conflict;
}
public SVNConflictDescription toConflictDescription() {
String wcPath = localAbspath != null ? localAbspath.getPath() : null;
switch (kind) {
case PROPERTY:
return new SVNPropertyConflictDescription(new SVNMergeFileSet(null, null, baseFile, myFile, wcPath, theirFile, mergedFile, null, mimeType), nodeKind, propertyName, action, reason);
case TEXT:
return new SVNTextConflictDescription(new SVNMergeFileSet(null, null, baseFile, myFile, wcPath, theirFile, mergedFile, null, mimeType), nodeKind, action, reason);
case TREE:
return new SVNTreeConflictDescription(localAbspath, nodeKind, action, reason, operation, srcLeftVersion, srcRightVersion);
}
return null;
}
public File getLocalAbspath() {
return localAbspath;
}
public void setLocalAbspath(File localAbspath) {
this.localAbspath = localAbspath;
}
public SVNNodeKind getNodeKind() {
return nodeKind;
}
public void setNodeKind(SVNNodeKind nodeKind) {
this.nodeKind = nodeKind;
}
public ConflictKind getKind() {
return kind;
}
public void setKind(ConflictKind kind) {
this.kind = kind;
}
public String getPropertyName() {
return propertyName;
}
public void setPropertyName(String propertyName) {
this.propertyName = propertyName;
}
public boolean isBinary() {
return isBinary;
}
public void setBinary(boolean isBinary) {
this.isBinary = isBinary;
}
public String getMimeType() {
return mimeType;
}
public void setMimeType(String mimeType) {
this.mimeType = mimeType;
}
public SVNConflictAction getAction() {
return action;
}
public void setAction(SVNConflictAction action) {
this.action = action;
}
public SVNConflictReason getReason() {
return reason;
}
public void setReason(SVNConflictReason reason) {
this.reason = reason;
}
public File getBaseFile() {
return baseFile;
}
public void setBaseFile(File baseFile) {
this.baseFile = baseFile;
}
public File getTheirFile() {
return theirFile;
}
public void setTheirFile(File theirFile) {
this.theirFile = theirFile;
}
public File getMyFile() {
return myFile;
}
public void setMyFile(File file) {
myFile = file;
}
public File getMergedFile() {
return mergedFile;
}
public void setMergedFile(File mergedFile) {
this.mergedFile = mergedFile;
}
public SVNOperation getOperation() {
return operation;
}
public void setOperation(SVNOperation operation) {
this.operation = operation;
}
public SVNConflictVersion getSrcLeftVersion() {
return srcLeftVersion;
}
public void setSrcLeftVersion(SVNConflictVersion srcLeftVersion) {
this.srcLeftVersion = srcLeftVersion;
}
public SVNConflictVersion getSrcRightVersion() {
return srcRightVersion;
}
public void setSrcRightVersion(SVNConflictVersion srcRightVersion) {
this.srcRightVersion = srcRightVersion;
}
}