Alien-SVN
view release on metacpan or search on metacpan
src/subversion/subversion/bindings/javahl/native/CreateJ.cpp view on Meta::CPAN
static jmethodID mid = 0;
if (mid == 0)
{
mid = env->GetMethodID(clazz, "<init>",
"(Ljava/lang/String;Ljava/lang/String;"
"Ljava/lang/String;J"
"L"JAVA_PACKAGE"/types/NodeKind;"
"Ljava/lang/String;Ljava/lang/String;"
"JJLjava/lang/String;"
"L"JAVA_PACKAGE"/types/Lock;Z"
"L"JAVA_PACKAGE"/types/Info$ScheduleKind;"
"Ljava/lang/String;JJ"
"L"JAVA_PACKAGE"/types/Checksum;"
"Ljava/lang/String;JJ"
"L"JAVA_PACKAGE"/types/Depth;Ljava/util/Set;)V");
if (mid == 0 || JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
}
jstring jpath = JNIUtil::makeJString(path);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jstring jwcroot = NULL;
jstring jcopyFromUrl = NULL;
jobject jchecksum = NULL;
jstring jchangelist = NULL;
jobject jconflicts = NULL;
jobject jscheduleKind = NULL;
jobject jdepth = NULL;
jlong jworkingSize = -1;
jlong jcopyfrom_rev = -1;
jlong jtext_time = -1;
if (info->wc_info)
{
jwcroot = JNIUtil::makeJString(info->wc_info->wcroot_abspath);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jcopyFromUrl = JNIUtil::makeJString(info->wc_info->copyfrom_url);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jchecksum = Checksum(info->wc_info->checksum);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jchangelist = JNIUtil::makeJString(info->wc_info->changelist);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jscheduleKind = EnumMapper::mapScheduleKind(info->wc_info->schedule);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jdepth = EnumMapper::mapDepth(info->wc_info->depth);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
/* ### Maybe rename the java fields while we can */
jworkingSize = info->wc_info->recorded_size;
jtext_time = info->wc_info->recorded_time;
jcopyfrom_rev = info->wc_info->copyfrom_rev;
if (info->wc_info->conflicts && info->wc_info->conflicts->nelts > 0)
{
std::vector<jobject> jconflict_vec;
for (int i = 0; i < info->wc_info->conflicts->nelts; i++)
{
const svn_wc_conflict_description2_t *conflict = APR_ARRAY_IDX(
info->wc_info->conflicts, i,
const svn_wc_conflict_description2_t *);
jobject jconflict = ConflictDescriptor(conflict);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jconflict_vec.push_back(jconflict);
}
jconflicts = Set(jconflict_vec);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
}
}
jstring jurl = JNIUtil::makeJString(info->URL);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jstring jreposRootUrl = JNIUtil::makeJString(info->repos_root_URL);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jstring jreportUUID = JNIUtil::makeJString(info->repos_UUID);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jstring jlastChangedAuthor =
JNIUtil::makeJString(info->last_changed_author);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jobject jlock = CreateJ::Lock(info->lock);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jobject jnodeKind = EnumMapper::mapNodeKind(info->kind);
if (JNIUtil::isJavaExceptionThrown())
POP_AND_RETURN_NULL;
jobject jinfo2 = env->NewObject(clazz, mid, jpath, jwcroot, jurl,
(jlong) info->rev,
jnodeKind, jreposRootUrl, jreportUUID,
(jlong) info->last_changed_rev,
(jlong) info->last_changed_date,
jlastChangedAuthor, jlock,
info->wc_info ? JNI_TRUE : JNI_FALSE,
( run in 4.167 seconds using v1.01-cache-2.11-cpan-d7f47b0818f )