package org.tmatesoft.svn.core.internal.wc2.old; import java.io.File; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.SVNProperties; 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.wc.ISVNPropertyHandler; import org.tmatesoft.svn.core.wc.SVNPropertyData; import org.tmatesoft.svn.core.wc2.SvnGetProperties; import org.tmatesoft.svn.core.wc2.SvnTarget; public class SvnOldGetProperties extends SvnOldRunner<SVNProperties, SvnGetProperties> implements ISVNPropertyHandler { private File currentFile; private SVNProperties currentProperties; @Override public void reset(SvnWcGeneration wcGeneration) { currentFile = null; currentProperties = null; super.reset(wcGeneration); } @Override public boolean isApplicable(SvnGetProperties operation, SvnWcGeneration wcGeneration) throws SVNException { return !operation.isRevisionProperties() && super.isApplicable(operation, wcGeneration); } @Override protected SVNProperties run() throws SVNException { SVNWCClient16 client = new SVNWCClient16(getOperation().getRepositoryPool(), getOperation().getOptions()); client.setEventHandler(getOperation().getEventHandler()); client.doGetProperty( getFirstTarget(), null, getOperation().getFirstTarget().getResolvedPegRevision(), getOperation().getRevision(), getOperation().getDepth(), this, getOperation().getApplicableChangelists()); if (currentFile != null && currentProperties != null && !currentProperties.isEmpty()) { getOperation().receive(SvnTarget.fromFile(currentFile), currentProperties); } return getOperation().first(); } public void handleProperty(File path, SVNPropertyData property) throws SVNException { if (currentProperties == null) { currentProperties = new SVNProperties(); } if (currentFile == null) { currentFile = path; } if (!currentFile.equals(path)) { if (!currentProperties.isEmpty()) { getOperation().receive(SvnTarget.fromFile(currentFile), currentProperties); currentProperties.clear(); } currentFile = path; } currentProperties.put(property.getName(), property.getValue()); } public void handleProperty(SVNURL url, SVNPropertyData property) throws SVNException { } public void handleProperty(long revision, SVNPropertyData property) throws SVNException { } }