package org.tmatesoft.svn.core.internal.wc2.ng; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.internal.wc17.SVNWCContext; import org.tmatesoft.svn.core.internal.wc17.db.ISVNWCDb; import org.tmatesoft.svn.core.internal.wc2.SvnWcGeneration; import org.tmatesoft.svn.core.wc2.SvnCheckout; import org.tmatesoft.svn.core.wc2.SvnTarget; public class SvnNgCheckout extends SvnNgAbstractUpdate<Long, SvnCheckout> { @Override public boolean isApplicable(SvnCheckout operation, SvnWcGeneration wcGeneration) throws SVNException { final int targetWorkingCopyFormat = operation.getTargetWorkingCopyFormat(); if (targetWorkingCopyFormat > 0) { return targetWorkingCopyFormat >= SVNWCContext.WC_NG_VERSION; } return super.isApplicable(operation, wcGeneration); } @Override protected Long run(SVNWCContext context) throws SVNException { SvnTarget source = getOperation().getSource(); int targetWorkingCopyFormat = getOperation().getTargetWorkingCopyFormat(); return checkout(source.getURL(), getFirstTarget(), source.getResolvedPegRevision(), getOperation().getRevision(), getOperation().getDepth(), getOperation().isIgnoreExternals(), getOperation().isAllowUnversionedObstructions(), getOperation().isSleepForTimestamp(), targetWorkingCopyFormat < 0 ? ISVNWCDb.WC_FORMAT_18 : targetWorkingCopyFormat); } }