📄 pim_item.c
字号:
{
count++;
JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_COUNTVALUESFORCONTACT, C_URL);
}
break;
case C_BIRTHDAY:
FAILED_WITH_EXC(pContact, get_Birthday, &tempDateVal);
if (tempDateVal != EMPTY_DATE)
{
count++;
JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_COUNTVALUESFORCONTACT, C_BIRTHDAY);
}
break;
}
return count;
}
/*****************************************************************************
* FUNCTION
* countValuesForEvent
* DESCRIPTION
*
* PARAMETERS
* pEvent [?]
* field [IN]
* RETURNS
*
*****************************************************************************/
static kal_int32 countValuesForEvent(IEvent *pEvent, kal_int32 field)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 count = 0;
kal_char *tempFieldVal;
kal_int64 tempDateVal;
kal_bool tempBoolVal;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (pEvent == NULL)
{
return 0;
}
switch (field)
{
case E_ALARM:
FAILED_WITH_EXC(pEvent, get_ReminderSet, &tempBoolVal);
if( tempBoolVal == KAL_TRUE)
{
count++;
JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_COUNTVALUESFOREVENT,E_ALARM);
}
break;
case E_START:
FAILED_WITH_EXC(pEvent, get_Start, &tempDateVal);
if (tempDateVal != EMPTY_DATE)
{
count++;
JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_COUNTVALUESFOREVENT,E_START);
}
break;
case E_END:
FAILED_WITH_EXC(pEvent, get_End, &tempDateVal);
if (tempDateVal != EMPTY_DATE)
{
count++;
JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_COUNTVALUESFOREVENT,E_END);
}
break;
case E_SUMMARY:
FAILED_WITH_EXC(pEvent, get_Summary, &tempFieldVal);
if (NOT_EMPTY(tempFieldVal))
{
count++;
JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_COUNTVALUESFOREVENT,E_SUMMARY);
}
break;
}
return count;
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMItemImpl_countValuesN
* DESCRIPTION
* private native int countValuesN(int listType, int handle, int rechandle, int field);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMItemImpl_countValuesN(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 listtype = KNI_GetParameterAsInt(1);
kal_int32 dbhandle = KNI_GetParameterAsInt(2);
kal_int32 rechandle = KNI_GetParameterAsInt(3);
kal_int32 field = KNI_GetParameterAsInt(4);
kal_int32 count = -1;
void *item = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG(TRACE_FUNC, FUNC_J2ME_PIMITEMIMPL_COUNTVALUESN);
CHECK_ITEM_VALID(listtype, dbhandle, rechandle, &item, KNI_ReturnInt(-1));
CHECK_FIELD_SUPPORT(listtype, dbhandle, field, KNI_ReturnInt(-1));
switch (listtype)
{
case CONTACT_LIST:
count = countValuesForContact((IContact*) item, field);
break;
case EVENT_LIST:
count = countValuesForEvent((IEvent*) item, field);
break;
case TODO_LIST:
PIM_THROW(PIM, "", FEATURE_NOT_SUPPORTED);
break;
default:
PIM_THROW(ILLARG, "", GENERAL_ERROR);
}
KNI_ReturnInt(count);
}
/*****************************************************************************
* FUNCTION
* getContactFieldAttribute
* DESCRIPTION
*
* PARAMETERS
* pContact [?]
* field [IN]
* index [IN]
* RETURNS
*
*****************************************************************************/
static kal_int32 getContactFieldAttribute(IContact *pContact, kal_int32 field, kal_int32 index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
int attr = C_ATTR_NONE;
kal_char *tempFieldVal;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG(TRACE_FUNC, FUNC_J2ME_GETCONTACTFIELDATTRIBUTE);
if (pContact == NULL)
{
return attr;
}
switch (field)
{
case C_TEL:
FAILED_WITH_EXC(pContact, get_MobileNumber, &tempFieldVal);
if (NOT_EMPTY(tempFieldVal))
{
index--;
if (index < 0)
{
return C_ATTR_MOBILE; /* default */
}
}
FAILED_WITH_EXC(pContact, get_HomeNumber, &tempFieldVal);
if (NOT_EMPTY(tempFieldVal))
{
index--;
if (index < 0)
{
return C_ATTR_HOME;
}
}
FAILED_WITH_EXC(pContact, get_OfficeNumber, &tempFieldVal);
if (NOT_EMPTY(tempFieldVal))
{
index--;
if (index < 0)
{
return C_ATTR_WORK;
}
}
FAILED_WITH_EXC(pContact, get_FaxNumber, &tempFieldVal);
if (NOT_EMPTY(tempFieldVal))
{
index--;
if (index < 0)
{
return C_ATTR_FAX;
}
}
break;
}
return attr;
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMItemImpl_getAttributesN
* DESCRIPTION
* private native int getAttributesN(int listType, int handle, int rechandle, int field, int index);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMItemImpl_getAttributesN(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 listtype = KNI_GetParameterAsInt(1);
kal_int32 dbhandle = KNI_GetParameterAsInt(2);
kal_int32 rechandle = KNI_GetParameterAsInt(3);
kal_int32 field = KNI_GetParameterAsInt(4);
kal_int32 index = KNI_GetParameterAsInt(5);
kal_int32 attr = -1;
void *item;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG(TRACE_FUNC, FUNC_J2ME_PIMITEMIMPL_GETATTRIBUTESN);
CHECK_FIELD_SUPPORT(listtype, dbhandle, field, KNI_ReturnInt(C_ATTR_NONE));
if (listtype != CONTACT_LIST || field != C_TEL)
{
KNI_ReturnInt(C_ATTR_NONE);
}
CHECK_ITEM_VALID(listtype, dbhandle, rechandle, &item, KNI_ReturnInt(C_ATTR_NONE));
attr = getContactFieldAttribute(item, field, index);
KNI_ReturnInt(attr);
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMItemImpl_getBinaryN2
* DESCRIPTION
* private native int getBinaryN2(int listType, int handle, int rechandle, int field, int index, byte[] ret);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMItemImpl_getBinaryN2(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
PIM_THROW(PIM, "No binary fields available", FEATURE_NOT_SUPPORTED);
KNI_ReturnInt(0);
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMItemImpl_getBooleanN
* DESCRIPTION
* private native boolean getBooleanN(int listType, int handle, int rechandle, int field, int index);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_BOOLEAN
Java_com_ibm_oti_pim_PIMItemImpl_getBooleanN(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
PIM_THROW(PIM, "No boolean fields available", FEATURE_NOT_SUPPORTED);
KNI_ReturnInt(0);
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMItemImpl_getCategoriesN2
* DESCRIPTION
* private native int getCategoriesN2(int listType, int handle, int rechandle, String[] ret);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMItemImpl_getCategoriesN2(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 listtype = KNI_GetParameterAsInt(1);
kal_int32 dbhandle = KNI_GetParameterAsInt(2);
kal_int32 rechandle = KNI_GetParameterAsInt(3);
kal_int32 result = 0;
kal_bool getsize = 0;
kal_int32 category_id;
kal_wchar *category;
void *item;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
KNI_StartHandles(1);
KNI_DeclareHandle(str_array);
KNI_GetParameterAsObject(4, str_array);
getsize = KNI_IsNullHandle(str_array);
KNI_EndHandles();
JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_PIMITEMIMPL_GETCATEGORIESN2, getsize);
CHECK_ITEM_VALID(listtype, dbhandle, rechandle, &item, KNI_ReturnInt(0));
switch (listtype)
{
case CONTACT_LIST:
FAILED_WITH_EXC(((IContact*) item), get_CategoryIndex, &category_id);
break;
case EVENT_LIST:
category_id = -1;
break;
case TODO_LIST:
PIM_THROW(PIM, "", FEATURE_NOT_SUPPORTED);
category_id = -1;
break;
default:
PIM_THROW(ILLARG, "", GENERAL_ERROR);
category_id = -1;
}
if (getsize)
{
if(category_id > 0)
{
KNI_ReturnInt(1);
}
else
{
KNI_ReturnInt(0);
}
}
if ((result = pim_getCategories(dbhandle)) != SUCCESS)
{
PIM_THROW(result, NULL, pim_getDetailError());
KNI_ReturnInt(0);
}
if( category_id > 0 )
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -