package org.tmatesoft.svn.core.internal.wc2.old;
import java.io.File;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNPropertyValue;
import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.internal.wc16.SVNWCClient16;
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.SvnSetProperty;
import org.tmatesoft.svn.core.wc2.SvnTarget;
public class SvnOldSetProperty extends SvnOldRunner<SVNPropertyData, SvnSetProperty> implements ISVNPropertyHandler {
@Override
protected SVNPropertyData run() throws SVNException {
SVNWCClient16 client = new SVNWCClient16(getOperation().getRepositoryPool(), getOperation().getOptions());
client.setEventHandler(getOperation().getEventHandler());
File path = getOperation().getFirstTarget().getFile();
if (getOperation().getPropertyValueProvider() != null) {
client.doSetProperty(path, SvnCodec.propertyValueProvider(getOperation().getPropertyValueProvider()), getOperation().isForce(),
getOperation().getDepth(), this, getOperation().getApplicableChangelists());
} else {
String propName = getOperation().getPropertyName();
SVNPropertyValue propertyValue = getOperation().getPropertyValue();
client.doSetProperty(path, propName, propertyValue, getOperation().isForce(),
getOperation().getDepth(), this, getOperation().getApplicableChangelists());
}
return getOperation().first();
}
public void handleProperty(File path, SVNPropertyData property) throws SVNException {
getOperation().receive(SvnTarget.fromFile(path), property);
}
public void handleProperty(SVNURL url, SVNPropertyData property) throws SVNException {
}
public void handleProperty(long revision, SVNPropertyData property) throws SVNException {
}
@Override
public boolean isApplicable(SvnSetProperty operation, SvnWcGeneration wcGeneration) throws SVNException {
return !operation.isRevisionProperty() && super.isApplicable(operation, wcGeneration);
}
}