package org.tmatesoft.svn.core.internal.wc17.db.statement; import java.util.Map; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.internal.db.SVNSqlJetDb; import org.tmatesoft.svn.core.internal.db.SVNSqlJetUpdateStatement; import org.tmatesoft.svn.core.internal.wc17.db.statement.SVNWCDbSchema.NODES__Fields; /** * -- STMT_COMMIT_DESCENDANT_TO_BASE * UPDATE NODES SET op_depth = 0, repos_id = ?4, repos_path = ?5, revision = ?6, * moved_here = NULL, moved_to = NULL, dav_cache = NULL, * presence = CASE presence WHEN 'normal' THEN 'normal' * WHEN 'excluded' THEN 'excluded' * ELSE 'not-present' END * WHERE wc_id = ?1 AND local_relpath = ?2 and op_depth = ?3 */ public class SVNWCDbCommitDescendantToBase extends SVNSqlJetUpdateStatement { public SVNWCDbCommitDescendantToBase(SVNSqlJetDb sDb) throws SVNException { super(sDb, SVNWCDbSchema.NODES); } @Override public Map<String, Object> getUpdateValues() throws SVNException { Map<String, Object> updateValues = getRowValues(); updateValues.put(NODES__Fields.op_depth.toString(), 0l); updateValues.put(NODES__Fields.repos_id.toString(), getBind(4)); updateValues.put(NODES__Fields.repos_path.toString(), getBind(5)); updateValues.put(NODES__Fields.revision.toString(), getBind(6)); updateValues.put(NODES__Fields.moved_here.toString(), null); updateValues.put(NODES__Fields.moved_to.toString(), null); updateValues.put(NODES__Fields.dav_cache.toString(), null); String presence = (String) updateValues.get(NODES__Fields.presence.toString()); if (!"normal".equals(presence) && !"excluded".equals(presence)) { updateValues.put(NODES__Fields.presence.toString(), "not-present"); } return updateValues; } @Override protected Object[] getWhere() throws SVNException { return new Object[] { getBind(1), getBind(2), getBind(3) }; } }