/**
* @copyright
* ====================================================================
* Copyright (c) 2003-2005 CollabNet. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://subversion.tigris.org/license-1.html.
* If newer versions of this license are posted there, you may use a
* newer version instead, at your option.
*
* This software consists of voluntary contributions made by many
* individuals. For exact contribution history, see the revision
* history and logs, available at http://subversion.tigris.org/.
* ====================================================================
* @endcopyright
*
* @file EnumMapper.cpp
* @brief Implementation of the class EnumMapper
*/
#include "EnumMapper.h"
#include "../include/org_tigris_subversion_javahl_CommitItemStateFlags.h"
#include "../include/org_tigris_subversion_javahl_NotifyAction.h"
#include "../include/org_tigris_subversion_javahl_NotifyStatus.h"
#include "../include/org_tigris_subversion_javahl_NodeKind.h"
#include "../include/org_tigris_subversion_javahl_LockStatus.h"
#include "../include/org_tigris_subversion_javahl_StatusKind.h"
#include "../include/org_tigris_subversion_javahl_Revision.h"
#include "../include/org_tigris_subversion_javahl_ScheduleKind.h"
/**
* map a C commit state flag constant to the java constant
* @param state the c commit state flage constant
* @returns the java constant
*/
jint EnumMapper::mapCommitMessageStateFlags(apr_byte_t flags)
{
jint jstateFlags = 0;
if(flags & SVN_CLIENT_COMMIT_ITEM_ADD)
jstateFlags |=
org_tigris_subversion_javahl_CommitItemStateFlags_Add;
if(flags & SVN_CLIENT_COMMIT_ITEM_DELETE)
jstateFlags |=
org_tigris_subversion_javahl_CommitItemStateFlags_Delete;
if(flags & SVN_CLIENT_COMMIT_ITEM_TEXT_MODS)
jstateFlags |=
org_tigris_subversion_javahl_CommitItemStateFlags_TextMods;
if(flags & SVN_CLIENT_COMMIT_ITEM_PROP_MODS)
jstateFlags |=
org_tigris_subversion_javahl_CommitItemStateFlags_PropMods;
if(flags & SVN_CLIENT_COMMIT_ITEM_IS_COPY)
jstateFlags |=
org_tigris_subversion_javahl_CommitItemStateFlags_IsCopy;
return jstateFlags;
}
/**
* map a C notify state constant to the java constant
* @param state the c notify state constant
* @returns the java constant
*/
jint EnumMapper::mapNotifyState(svn_wc_notify_state_t state)
{
switch(state)
{
default:
case svn_wc_notify_state_inapplicable:
return org_tigris_subversion_javahl_NotifyStatus_inapplicable;
case svn_wc_notify_state_unknown:
return org_tigris_subversion_javahl_NotifyStatus_unknown;
case svn_wc_notify_state_unchanged:
return org_tigris_subversion_javahl_NotifyStatus_unchanged;
case svn_wc_notify_state_missing:
return org_tigris_subversion_javahl_NotifyStatus_missing;
case svn_wc_notify_state_obstructed:
return org_tigris_subversion_javahl_NotifyStatus_obstructed;
case svn_wc_notify_state_changed:
return org_tigris_subversion_javahl_NotifyStatus_changed;
case svn_wc_notify_state_merged:
return org_tigris_subversion_javahl_NotifyStatus_merged;
case svn_wc_notify_state_conflicted:
return org_tigris_subversion_javahl_NotifyStatus_conflicted;
}
}
/**
* map a C notify action constant to the java constant
* @param state the c notify action constant
* @returns the java constant
*/
jint EnumMapper::mapNotifyAction(svn_wc_notify_action_t action)
{
jint jAction = -1;
// this is a switch to make the java constants independent from the C
// constants
switch(action)
{
case svn_wc_notify_add:
/* Adding a path to revision control. */
jAction = org_tigris_subversion_javahl_NotifyAction_add;
break;
case svn_wc_notify_copy:
/* Copying a versioned path. */
jAction = org_tigris_subversion_javahl_NotifyAction_copy;
break;
case svn_wc_notify_delete:
/* Deleting a versioned path. */
jAction = org_tigris_subversion_javahl_NotifyAction_delete;
break;
case svn_wc_notify_restore:
/* Restoring a missing path from the pristine text-base. */
jAction = org_tigris_subversion_javahl_NotifyAction_restore;
break;
case svn_wc_notify_revert:
/* Reverting a modified path. */
jAction = org_tigris_subversion_javahl_NotifyAction_revert;
break;
case svn_wc_notify_failed_revert:
/* A revert operation has failed. */
jAction = org_tigris_subversion_javahl_NotifyAction_failed_revert;
break;
case svn_wc_notify_resolved:
/* Resolving a conflict. */
jAction = org_tigris_subversion_javahl_NotifyAction_resolved;
break;
case svn_wc_notify_status_completed:
/* The last notification in a status (including status on externals). */
jAction = org_tigris_subversion_javahl_NotifyAction_status_completed;
break;
case svn_wc_notify_status_external:
/* Running status on an external module. */
jAction = org_tigris_subversion_javahl_NotifyAction_status_external;
break;
case svn_wc_notify_skip:
/* Skipping a path. */
jAction = org_tigris_subversion_javahl_NotifyAction_skip;
break;
case svn_wc_notify_update_delete:
/* Got a delete in an update. */
jAction = org_tigris_subversion_javahl_NotifyAction_update_delete;
break;
case svn_wc_notify_update_add:
/* Got an add in an update. */
jAction = org_tigris_subversion_javahl_NotifyAction_update_add;
break;
case svn_wc_notify_update_update:
/* Got any other action in an update. */
jAction = org_tigris_subversion_javahl_NotifyAction_update_update;
break;
case svn_wc_notify_update_completed:
/* The last notification in an update (including updates of externals). */
jAction = org_tigris_subversion_javahl_NotifyAction_update_completed;
break;
case svn_wc_notify_update_external:
/* Updating an external module. */
jAction = org_tigris_subversion_javahl_NotifyAction_update_external;
break;
case svn_wc_notify_commit_modified:
/* Committing a modification. */
jAction = org_tigris_subversion_javahl_NotifyAction_commit_modified;
break;
case svn_wc_notify_commit_added:
/* Committing an addition. */
jAction = org_tigris_subversion_javahl_NotifyAction_commit_added;
break;
case svn_wc_notify_commit_deleted:
/* Committing a deletion. */
jAction = org_tigris_subversion_javahl_NotifyAction_commit_deleted;
break;
case svn_wc_notify_commit_replaced:
/* Committing a replacement. */
jAction = org_tigris_subversion_javahl_NotifyAction_commit_replaced;
break;
case svn_wc_notify_commit_postfix_txdelta:
/* Transmitting post-fix text-delta data for a file. */
jAction = org_tigris_subversion_javahl_NotifyAction_commit_postfix_txdelta;
break;
case svn_wc_notify_blame_revision:
/* Processed a single revision's blame. */
jAction = org_tigris_subversion_javahl_NotifyAction_blame_revision;
break;
case svn_wc_notify_locked:
/* Lock a file */
jAction = org_tigris_subversion_javahl_NotifyAction_locked;
break;
case svn_wc_notify_unlocked:
/* Lock a file */
jAction = org_tigris_subversion_javahl_NotifyAction_unlocked;
break;
case svn_wc_notify_failed_lock:
/* Lock a file */
jAction = org_tigris_subversion_javahl_NotifyAction_failed_lock;
break;
case svn_wc_notify_failed_unlock:
/* Lock a file */
jAction = org_tigris_subversion_javahl_NotifyAction_failed_unlock;
break;
}
return jAction;
}
/**
* map a C node kind constant to the java constant
* @param state the c node kind constant
* @returns the java constant
*/
jint EnumMapper::mapNodeKind(svn_node_kind_t nodeKind)
{
jint jKind = org_tigris_subversion_javahl_NodeKind_unknown;
switch(nodeKind)
{
case svn_node_none:
jKind = org_tigris_subversion_javahl_NodeKind_none;
break;
case svn_node_file:
jKind = org_tigris_subversion_javahl_NodeKind_file;
break;
case svn_node_dir:
jKind = org_tigris_subversion_javahl_NodeKind_dir;
break;
case svn_node_unknown:
jKind = org_tigris_subversion_javahl_NodeKind_unknown;
break;
}
return jKind;
}
/**
* map a C notify lock state constant to the java constant
* @param state the c notify lock state constant
* @returns the java constant
*/
jint EnumMapper::mapNotifyLockState(svn_wc_notify_lock_state_t state)
{
jint jState = org_tigris_subversion_javahl_LockStatus_inapplicable;
switch(state)
{
case svn_wc_notify_lock_state_inapplicable:
jState = org_tigris_subversion_javahl_LockStatus_inapplicable;
break;
case svn_wc_notify_lock_state_unknown:
jState = org_tigris_subversion_javahl_LockStatus_unknown;
break;
case svn_wc_notify_lock_state_unchanged:
jState = org_tigris_subversion_javahl_LockStatus_unchanged;
break;
case svn_wc_notify_lock_state_locked:
jState = org_tigris_subversion_javahl_LockStatus_locked;
break;
case svn_wc_notify_lock_state_unlocked:
jState = org_tigris_subversion_javahl_LockStatus_unlocked;
break;
}
return jState;
}
/**
* map a C wc schedule constant to the java constant
* @param state the c wc schedule constant
* @returns the java constant
*/
jint EnumMapper::mapScheduleKind(svn_wc_schedule_t schedule)
{
switch(schedule)
{
/** Nothing special here */
case svn_wc_schedule_normal:
return org_tigris_subversion_javahl_ScheduleKind_normal;
/** Slated for addition */
case svn_wc_schedule_add:
return org_tigris_subversion_javahl_ScheduleKind_add;
/** Slated for deletion */
case svn_wc_schedule_delete:
return org_tigris_subversion_javahl_ScheduleKind_delete;
/** Slated for replacement (delete + add) */
case svn_wc_schedule_replace:
return org_tigris_subversion_javahl_ScheduleKind_replace;
default:
return org_tigris_subversion_javahl_ScheduleKind_normal;
}
}
/**
* map a C wc state constant to the java constant
* @param state the c wc state constant
* @returns the java constant
*/
jint EnumMapper::mapStatusKind(svn_wc_status_kind svnKind)
{
switch(svnKind)
{
case svn_wc_status_none:
default:
return org_tigris_subversion_javahl_StatusKind_none;
case svn_wc_status_unversioned:
return org_tigris_subversion_javahl_StatusKind_unversioned;
case svn_wc_status_normal:
return org_tigris_subversion_javahl_StatusKind_normal;
case svn_wc_status_added:
return org_tigris_subversion_javahl_StatusKind_added;
case svn_wc_status_missing:
return org_tigris_subversion_javahl_StatusKind_missing;
case svn_wc_status_deleted:
return org_tigris_subversion_javahl_StatusKind_deleted;
case svn_wc_status_replaced:
return org_tigris_subversion_javahl_StatusKind_replaced;
case svn_wc_status_modified:
return org_tigris_subversion_javahl_StatusKind_modified;
case svn_wc_status_merged:
return org_tigris_subversion_javahl_StatusKind_merged;
case svn_wc_status_conflicted:
return org_tigris_subversion_javahl_StatusKind_conflicted;
case svn_wc_status_ignored:
return org_tigris_subversion_javahl_StatusKind_ignored;
case svn_wc_status_obstructed:
return org_tigris_subversion_javahl_StatusKind_obstructed;
case svn_wc_status_external:
return org_tigris_subversion_javahl_StatusKind_external;
case svn_wc_status_incomplete:
return org_tigris_subversion_javahl_StatusKind_incomplete;
}
}
syntax highlighted by Code2HTML, v. 0.9.1