package org.tmatesoft.svn.core.internal.wc2.remote;
import java.io.File;
import org.tmatesoft.svn.core.SVNCommitInfo;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.internal.wc16.SVNWCClient16;
import org.tmatesoft.svn.core.internal.wc2.SvnRemoteOperationRunner;
import org.tmatesoft.svn.core.internal.wc2.SvnWcGeneration;
import org.tmatesoft.svn.core.internal.wc2.compat.SvnCodec;
import org.tmatesoft.svn.core.wc.ISVNPropertyHandler;
import org.tmatesoft.svn.core.wc.SVNPropertyData;
import org.tmatesoft.svn.core.wc2.SvnRemoteSetProperty;
import org.tmatesoft.svn.core.wc2.SvnTarget;
public class SvnRemoteSetPropertyImpl extends SvnRemoteOperationRunner<SVNCommitInfo, SvnRemoteSetProperty> implements ISVNPropertyHandler {
@Override
public boolean isApplicable(SvnRemoteSetProperty operation, SvnWcGeneration wcGeneration) throws SVNException {
return true;
}
@Override
protected SVNCommitInfo run() throws SVNException {
//
SVNWCClient16 wcClient = new SVNWCClient16(getOperation().getAuthenticationManager(), getOperation().getOptions());
wcClient.setCommitHandler(SvnCodec.commitHandler(getOperation().getCommitHandler()));
for (SvnTarget target : getOperation().getTargets()) {
SVNURL url = target.getURL();
if (url == null) {
continue;
}
SVNCommitInfo info = wcClient.
doSetProperty(url,
getOperation().getPropertyName(),
getOperation().getPropertyValue(),
getOperation().getBaseRevision(),
getOperation().getCommitMessage(),
getOperation().getRevisionProperties(),
getOperation().isForce(),
null);
if (info != null) {
getOperation().receive(target, info);
}
}
return getOperation().first();
}
public void handleProperty(File path, SVNPropertyData property) throws SVNException {
}
public void handleProperty(SVNURL url, SVNPropertyData property) throws SVNException {
if (getOperation().getPropertyReceiver() != null) {
getOperation().getPropertyReceiver().receive(SvnTarget.fromURL(url), property);
}
}
public void handleProperty(long revision, SVNPropertyData property) throws SVNException {
}
}