⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pim_item.c

📁 java 1.1 gemini 08_16
💻 C
📖 第 1 页 / 共 5 页
字号:

        case C_ORG:
            FAILED_WITH_EXC(pContact, get_CompanyName, (&strData));
            break;

        case C_TITLE:
            FAILED_WITH_EXC(pContact, get_JobTitle, (&strData));
            break;

        case C_URL:
            FAILED_WITH_EXC(pContact, get_WebPage, (&strData));
            break;

    }

    return strData;

}


/*****************************************************************************
 * FUNCTION
 *  getEventString
 * DESCRIPTION
 *
 * PARAMETERS
 *  pEvent      [?]
 *  field       [IN]
 *  index       [IN]
 * RETURNS
 *
 *****************************************************************************/
static kal_char *getEventString(IEvent *pEvent, int field, int index)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_char *strData = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_GETEVENTSTRING, field);

    switch (field)
    {
        case E_SUMMARY:
            FAILED_WITH_EXC(pEvent, get_Summary, (&strData));
            break;
    }

    return strData;
}


/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_PIMItemImpl_getStringN
 * DESCRIPTION
 *  private native String getStringN(int listType, int handle, int rechandle, int field, int index);
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_OBJECT
Java_com_ibm_oti_pim_PIMItemImpl_getStringN(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);

    void *item = NULL;
    kal_char *strData = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    JPIM_DEBUG(TRACE_FUNC, FUNC_J2ME_PIMITEMIMPL_GETSTRINGN);

    CHECK_FIELD_SUPPORT(listtype, dbhandle, field,
        {
            KNI_StartHandles(1);
            KNI_DeclareHandle(str);
            KNI_NewString(NULL, 0, str);
            KNI_EndHandlesAndReturnObject(str);
         });

    CHECK_ITEM_VALID(listtype, dbhandle, rechandle,  &item,
         {
             KNI_StartHandles(1);
             KNI_DeclareHandle(str);
             KNI_NewString(NULL, 0, str);
             KNI_EndHandlesAndReturnObject(str);
         });

    switch (listtype)
    {
        case CONTACT_LIST:
            strData = getContactString(item, field, index);
            break;

        case EVENT_LIST:
            strData = getEventString(item, field, index);
            break;

        case TODO_LIST:
            PIM_THROW(PIM, "", FEATURE_NOT_SUPPORTED);
            break;
        default:
            PIM_THROW(ILLARG, "", GENERAL_ERROR);
    }

    KNI_StartHandles(1);
    KNI_DeclareHandle(str);
    KNI_NewString((const jchar*) strData, app_ucs2_strlen((kal_int8*)strData), str);
    KNI_EndHandlesAndReturnObject(str);
}


/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_PIMItemImpl_isRecordDeletedN
 * DESCRIPTION
 *  private native boolean isRecordDeletedN(int listType, int handle, int rechandle);
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_BOOLEAN
Java_com_ibm_oti_pim_PIMItemImpl_isRecordDeletedN(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 listtype = KNI_GetParameterAsInt(1);
    kal_int32 dbhandle = KNI_GetParameterAsInt(2);
    kal_int32 rechandle = KNI_GetParameterAsInt(3);

    kal_int32 result;
    void *item = NULL;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    JPIM_DEBUG(TRACE_FUNC, FUNC_J2ME_PIMITEMIMPL_ISRECORDDELETEDN);

    result = pim_getItemByIndex(listtype, dbhandle, rechandle, &item);

    if (result != SUCCESS)
    {
        KNI_ReturnBoolean(KAL_TRUE);
    }
    else
    {
        KNI_ReturnBoolean(KAL_FALSE);
    }
}


/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_PIMItemImpl_maxCategoriesN
 * DESCRIPTION
 *  private native int maxCategoriesN(int listType, int handle, int rechandle);
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMItemImpl_maxCategoriesN(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int32 listtype = KNI_GetParameterAsInt(1);

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    switch (listtype)
    {
        case CONTACT_LIST:
            KNI_ReturnInt(1);   /* platform dependent */
        break;
        default:
            KNI_ReturnInt(0);   /* platform dependent */
    }
}


/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_ContactImpl_getPreferredIndexN
 * DESCRIPTION
 *  private native int getPreferredIndexN(int handle, int rechandle, int field);
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_ContactImpl_getPreferredIndexN(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    PIM_THROW(PIM, "Not Support Preferred attribute", FEATURE_NOT_SUPPORTED);
    KNI_ReturnInt(0);
}


/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_EventImpl_getRepeatDateN
 * DESCRIPTION
 *  private native long getRepeatDateN(int handle, int rechandle, int field);
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_LONG
Java_com_ibm_oti_pim_EventImpl_getRepeatDateN(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_int64 ret = 0;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    PIM_THROW(PIM, "Not Support End Day in Event List", FEATURE_NOT_SUPPORTED);

    KNI_ReturnLong(ret);
}


/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_EventImpl_getRepeatExceptDatesN2
 * DESCRIPTION
 *  private native int getRepeatExceptDatesN2(int handle, int rechandle, long[] ret);
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_EventImpl_getRepeatExceptDatesN2(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* pim_throw(PIM,"Not Support Except Dates in Event List",FEATURE_NOT_SUPPORTED); */
    KNI_ReturnInt(0);
}


/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_EventImpl_getRepeatFieldsN2
 * DESCRIPTION
 *  private native int getRepeatFieldsN2(int handle, int rechandle, int[] ret);
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_EventImpl_getRepeatFieldsN2(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    static kal_int32 repeatFieldsArray[9] = {R_FREQUENCY,R_INTERVAL};
    static kal_int32 arraysize = 0;

    kal_int32 listtype = EVENT_LIST;
    kal_int32 dbhandle = KNI_GetParameterAsInt(1);
    kal_int32 rechandle = KNI_GetParameterAsInt(2);
    kal_int32 i;

    kal_bool getsize = KAL_FALSE;
    IEvent *pEvent;
    kal_int32 rectype = R_NONE;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/


    KNI_StartHandles(1);
    KNI_DeclareHandle(int_array);
    KNI_GetParameterAsObject(3, int_array);
    getsize = KNI_IsNullHandle(int_array);
    KNI_EndHandles();

    JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_EVENTIMPL_GETREPEATFIELDSN2, getsize);

    if(rechandle == -1)  // new item
    {
        if(getsize)
        {
            KNI_ReturnInt(0);
        }
    }
    CHECK_ITEM_VALID(listtype, dbhandle, rechandle, (void **)(&pEvent), KNI_ReturnInt(-1));

    if (getsize)
    {
        arraysize = 0;
        FAILED_WITH_EXC(pEvent, get_RecurrenceType, (&rectype));
        switch (rectype)
        {
            case R_NONE:
                arraysize = 0;
                break;

            case R_DAILY:
                repeatFieldsArray[2] = R_COUNT;
                arraysize = 3;
                break;

            case R_DAYS:
                repeatFieldsArray[2] = R_DAY_IN_WEEK;
                repeatFieldsArray[3] = R_COUNT;
				arraysize = 4;
                break;

            case R_WEEKLY:
                repeatFieldsArray[2] = R_DAY_IN_WEEK;
                repeatFieldsArray[3] = R_COUNT;
				arraysize = 4;
				break;

            case R_MONTHLY:
                repeatFieldsArray[2] = R_DAY_IN_MONTH;
                repeatFieldsArray[3] = R_COUNT;
				arraysize = 4;
                break;

            case R_YEARLY:
                repeatFieldsArray[2] = R_MONTH_IN_YEAR;
                repeatFieldsArray[3] = R_DAY_IN_MONTH;
                repeatFieldsArray[4] = R_COUNT;
				arraysize = 5;
                break;
        }
        KNI_ReturnInt(arraysize);
    }

    KNI_StartHandles(1);
    KNI_DeclareHandle(int_array);
    KNI_GetParameterAsObject(3, int_array);
    for (i = 0; i < arraysize; i++)
    {
        KNI_SetIntArrayElement(int_array, i, repeatFieldsArray[i]);
    }
    KNI_EndHandles();

    arraysize = 0;
    KNI_ReturnInt(0);
}


/*****************************************************************************
 * FUNCTION
 *  Java_com_ibm_oti_pim_EventImpl_getRepeatIntN
 * DESCRIPTION
 *  private native int getRepeatIntN(int handle, int rechandle, int field);
 * PARAMETERS
 *  void
 * RETURNS
 *****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_EventImpl_getRepeatIntN(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                              

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -