--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javaextensions/pim/jni/src/pimitemimpl.cpp Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,685 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: PIMItemImpl JNI wrapper.
+ *
+*/
+
+
+// INCLUDE FILES
+
+#include "com_nokia_mj_impl_pim_PIMItemImpl.h"
+#include "pimcommon.h"
+#include "pimbaseitem.h"
+#include "pimutils.h"
+#include "pimpanics.h"
+#include "logger.h"
+
+
+JNIEXPORT void
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1dispose(
+ JNIEnv* /*aJniEnv*/,
+ jobject /*aPeer*/,
+ jint aItemHandle)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ delete item;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1fieldDataType(
+ JNIEnv* /*aJniEnv*/,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ TPIMFieldDataType fieldDataType = item->fieldDataType(aField);
+ return fieldDataType;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1commit(
+ JNIEnv* /*aJniEnv*/,
+ jobject /*aPeer*/,
+ jint aItemHandle)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ int error = 0;
+ try
+ {
+ item->commit();
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ return error;
+}
+
+JNIEXPORT jboolean
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1isModified(
+ JNIEnv* /*aJniEnv*/,
+ jobject /*aPeer*/,
+ jint aItemHandle)
+{
+ JELOG2(EPim);
+ const pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ jboolean isModified = item->isModified();
+ return isModified;
+}
+
+JNIEXPORT jintArray
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1getFields(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ jintArray javaFields = item->callGetFields(aJniEnv);
+ return javaFields; // NULL indicates error
+}
+
+JNIEXPORT jbyteArray
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1getBinary(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aIndex,
+ jintArray aError)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ jbyteArray javaValue = item->callGetBinary(aField,aIndex,aJniEnv,aError);
+ return javaValue;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1addBinary(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aAttributes,
+ jbyteArray aValue,
+ jint aOffset,
+ jint aLength)
+{
+ JELOG2(EPim);
+ const int valueLength = aJniEnv->GetArrayLength(aValue);
+ if (valueLength < (aOffset + aLength))
+ {
+ aLength = valueLength - aOffset;
+ }
+
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ jbyte* elems = aJniEnv->GetByteArrayElements(aValue, NULL);
+ int error = 0;
+ try
+ {
+ item->callAddBinary(aField,
+ aAttributes,
+ reinterpret_cast< unsigned char*>(elems),
+ aOffset,
+ aLength);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ aJniEnv->ReleaseByteArrayElements(aValue, elems, 0);
+ return error;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1setBinary(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aIndex,
+ jint aAttributes,
+ jbyteArray aValue,
+ jint aOffset,
+ jint aLength)
+{
+ JELOG2(EPim);
+ // If length from offset goes beyond the array end, the length
+ // argument must (as specified in PIM API) be interpreted as
+ // "to the end of the array".
+ const int valueLength = aJniEnv->GetArrayLength(aValue);
+ if (valueLength < (aOffset + aLength))
+ {
+ aLength = valueLength - aOffset;
+ }
+
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ jbyte* elems = aJniEnv->GetByteArrayElements(aValue, NULL);
+ int error = 0;
+ try
+ {
+ item->callSetBinary(aField,
+ aIndex,
+ aAttributes,
+ reinterpret_cast< unsigned char*>(elems),
+ aOffset,
+ aLength);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ aJniEnv->ReleaseByteArrayElements(aValue, elems, 0);
+ return error;
+}
+
+JNIEXPORT jlong
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1getDate(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aIndex,
+ jintArray aError)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ int error = 0;
+ jlong retVal = 0;
+ try
+ {
+ retVal = item->callGetDate(aField,aIndex);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ SetJavaErrorCode(aJniEnv, aError, error);
+ return retVal;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1addDate(
+ JNIEnv* /*aJniEnv*/,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aAttributes,
+ jlong aValue)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ int error = 0;
+ try
+ {
+ item->callAddDate(aField, aAttributes, aValue);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ return error;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1setDate(
+ JNIEnv* /*aJniEnv*/,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aIndex,
+ jint aAttributes,
+ jlong aValue)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ int error = 0;
+ try
+ {
+ item->callSetDate(aField, aIndex, aAttributes, aValue);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ return error;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1getInt(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aIndex,
+ jintArray aError)
+{
+
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ jint value = 0;
+ jint error = 0;
+ try
+ {
+ value = item->getInt(aField,aIndex);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+
+ SetJavaErrorCode(aJniEnv, aError, error);
+ return value;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1addInt(
+ JNIEnv* /*aJniEnv*/,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aAttributes,
+ jint aValue)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ int error = 0;
+ try
+ {
+ item->addInt(aField, aAttributes, aValue);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ return error;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1setInt(
+ JNIEnv* /*aJniEnv*/,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aIndex,
+ jint aAttributes,
+ jint aValue)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ int error = 0;
+ try
+ {
+ item->setInt(aField, aIndex, aAttributes, aValue);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ return error;
+}
+
+JNIEXPORT jstring
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1getString(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aIndex,
+ jintArray aError)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+
+ jstring javaValue = item->callGetString(
+ aField,
+ aIndex,
+ aJniEnv,
+ aError);
+
+ // Ownership of the string is not transferred.
+ return javaValue;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1addString(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aAttributes,
+ jstring aValue)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ int error = 0;
+ try
+ {
+ item->callAddString(aField,aAttributes,aValue,aJniEnv);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ return error;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1setString(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aIndex,
+ jint aAttributes,
+ jstring aValue)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ int error = 0;
+ try
+ {
+ item->callSetString(aField, aIndex, aAttributes, aValue, aJniEnv);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ return error;
+}
+
+JNIEXPORT jboolean
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1getBoolean(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aIndex,
+ jintArray aError)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ int error = 0;
+ jboolean value = false;
+ try
+ {
+ value = item->callGetBoolean(aField, aIndex);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ SetJavaErrorCode(aJniEnv, aError, error);
+ return value;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1addBoolean(
+ JNIEnv* /*aJniEnv*/,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aAttributes,
+ jboolean aValue)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+
+ int error = 0;
+ try
+ {
+ item->callAddBoolean(aField, aAttributes, aValue);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ return error;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1setBoolean(
+ JNIEnv* /*aJniEnv*/,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aIndex,
+ jint aAttributes,
+ jboolean aValue)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+
+ int error = 0;
+ try
+ {
+ item->callSetBoolean(aField, aIndex, aAttributes, aValue);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ return error;
+}
+
+JNIEXPORT jobjectArray
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1getStringArray(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aIndex,
+ jintArray aError)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+
+ jobjectArray javaStringArray = item->callGetStringArray(
+ aField,
+ aIndex,
+ aJniEnv,
+ aError);
+ // Ownership of the string array is not transferred.
+ return javaStringArray;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1addStringArray(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aAttributes,
+ jobjectArray aValue)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ int error = 0;
+ try
+ {
+ item->callAddStringArray(
+ aJniEnv,
+ aField,
+ aAttributes,
+ aValue);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ return error;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1setStringArray(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aIndex,
+ jint aAttributes,
+ jobjectArray aValue)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+
+ int error = 0;
+ try
+ {
+ item->callSetStringArray(
+ aJniEnv,
+ aField,
+ aIndex,
+ aAttributes,
+ aValue);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+
+ return error;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1countValues(
+ JNIEnv* /*aJniEnv*/,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ int retValue = 0;
+ try
+ {
+ retValue = item->callCountValues(aField);
+ }
+ catch (int aError)
+ {
+ retValue = aError;
+ }
+ return retValue;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1removeValue(
+ JNIEnv* /*aJniEnv*/,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aIndex)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ int error = 0;
+ try
+ {
+ item->removeValue(aField,aIndex);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ return error;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1getAttributes(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jint aField,
+ jint aIndex,
+ jintArray aError)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ TPIMAttribute attributes = KPIMAttrNone;
+
+ int error = 0;
+ try
+ {
+ attributes = item->getAttributes(aField,aIndex);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ SetJavaErrorCode(aJniEnv, aError, error);
+ return attributes;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1addToCategory(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jstring aCategory)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ int error = 0;
+ try
+ {
+ item->callAddToCategory(aCategory,aJniEnv);
+ }
+ catch (int aError)
+ {
+ error = aError;
+ }
+ return error;
+}
+
+JNIEXPORT void
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1removeFromCategory(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle,
+ jstring aCategory)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ item->callRemoveFromCategory(aCategory,aJniEnv);
+}
+
+JNIEXPORT jobjectArray
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1getCategories(
+ JNIEnv* aJniEnv,
+ jobject /*aPeer*/,
+ jint aItemHandle)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ jobjectArray javaCategories =item->callGetCategories(aJniEnv);
+ return javaCategories;
+}
+
+JNIEXPORT jint
+JNICALL Java_com_nokia_mj_impl_pim_PIMItemImpl__1maxCategories(
+ JNIEnv* /*aJniEnv*/,
+ jobject /*aPeer*/,
+ jint aItemHandle)
+{
+ JELOG2(EPim);
+ pimbaseitem* item = reinterpret_cast< pimbaseitem *>(aItemHandle);
+ int maxCategories = item->maxCategories();
+ return maxCategories;
+}
+
+// End of File