~ubuntu-branches/ubuntu/raring/geotranz/raring

« back to all changes in this revision

Viewing changes to geotrans2/java_gui/geotrans/jni/JNIStrtoval.c

  • Committer: Bazaar Package Importer
  • Author(s): Roberto Lumbreras
  • Date: 2008-10-17 14:43:09 UTC
  • Revision ID: james.westby@ubuntu.com-20081017144309-jb7uzfi1y1lvez8j
Tags: upstream-2.4.2
ImportĀ upstreamĀ versionĀ 2.4.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <jni.h>
 
2
#include "strtoval.h"
 
3
#include "ThrowException.h"
 
4
 
 
5
 
 
6
JNIEXPORT jstring JNICALL Java_geotrans_jni_JNIStrtoval_JNIErrorPrefix(JNIEnv *env, jobject obj, jint direction, jint system)
 
7
{
 
8
    char str[60];
 
9
    jstring jStr = NULL;
 
10
 
 
11
    Error_Prefix(direction, system, "", str);
 
12
    jStr = ((*env)->NewStringUTF(env, str));
 
13
    if (jStr == NULL)
 
14
        throwException(env, "geotrans/jni/JNIException", "JNI Exception: Out of memory.");
 
15
 
 
16
    return jStr;
 
17
}
 
18
 
 
19
 
 
20
JNIEXPORT jstring JNICALL Java_geotrans_jni_JNIStrtoval_JNILatitudeToString(JNIEnv *env, jobject obj, jdouble latitude, jboolean use_NSEW, jboolean use_Minutes, jboolean use_Seconds)
 
21
{
 
22
    char str[15];
 
23
    jstring jStr = NULL;
 
24
 
 
25
    if (Latitude_to_String(latitude, str, use_NSEW, use_Minutes, use_Seconds))
 
26
    {
 
27
        throwException(env, "geotrans/jni/GeotransError", "Invalid latitude.");
 
28
        return jStr;
 
29
    }
 
30
 
 
31
    jStr = ((*env)->NewStringUTF(env, str));
 
32
    if (jStr == NULL)
 
33
        throwException(env, "geotrans/jni/JNIException", "JNI Exception: Out of memory.");
 
34
 
 
35
    return jStr;
 
36
}
 
37
 
 
38
 
 
39
JNIEXPORT jstring JNICALL Java_geotrans_jni_JNIStrtoval_JNILongitudeToString(JNIEnv *env, jobject obj, jdouble longitude, jboolean use_NSEW, jboolean use_Minutes, jboolean use_Seconds)
 
40
{
 
41
    char str[15];
 
42
    jstring jStr = NULL;
 
43
 
 
44
    if (Longitude_to_String(longitude, str, use_NSEW, use_Minutes, use_Seconds))
 
45
    {
 
46
        throwException(env, "geotrans/jni/GeotransError", "Invalid longitude.");
 
47
        return jStr;
 
48
    }
 
49
 
 
50
    jStr = ((*env)->NewStringUTF(env, str));
 
51
    if (jStr == NULL)
 
52
        throwException(env, "geotrans/jni/JNIException", "JNI Exception: Out of memory.");
 
53
 
 
54
    return jStr;
 
55
}
 
56
 
 
57
 
 
58
JNIEXPORT jstring JNICALL Java_geotrans_jni_JNIStrtoval_JNIMeterToString(JNIEnv *env, jobject obj, jdouble meters)
 
59
{
 
60
    char str[15];
 
61
    jstring jStr = NULL;
 
62
 
 
63
    if (Meter_to_String(meters, str))
 
64
    {
 
65
        throwException(env, "geotrans/jni/GeotransError", "Error converting meters to string.");
 
66
        return jStr;
 
67
    }
 
68
 
 
69
    jStr = ((*env)->NewStringUTF(env, str));
 
70
    if (jStr == NULL)
 
71
        throwException(env, "geotrans/jni/JNIException", "JNI Exception: Out of memory.");
 
72
 
 
73
    return jStr;
 
74
}
 
75
 
 
76
 
 
77
JNIEXPORT void JNICALL Java_geotrans_jni_JNIStrtoval_JNISetSeparator(JNIEnv *env, jobject obj, jchar separator)
 
78
{
 
79
    Set_Separator((char)separator);
 
80
}
 
81
 
 
82
 
 
83
JNIEXPORT void JNICALL Java_geotrans_jni_JNIStrtoval_JNISetLongRange(JNIEnv *env, jobject obj, jint range)
 
84
{
 
85
    Set_Long_Range(range);
 
86
}
 
87
 
 
88
 
 
89
JNIEXPORT void JNICALL Java_geotrans_jni_JNIStrtoval_JNISetLatLongPrecision(JNIEnv *env, jobject obj, jlong precis)
 
90
{
 
91
    Set_Lat_Long_Precision((long)precis);
 
92
}
 
93
 
 
94
 
 
95
JNIEXPORT void JNICALL Java_geotrans_jni_JNIStrtoval_JNIShowLeadingZeros(JNIEnv *env, jobject obj, jboolean lz)
 
96
{
 
97
    Show_Leading_Zeros(lz);
 
98
}
 
99
 
 
100
 
 
101
JNIEXPORT jdouble JNICALL Java_geotrans_jni_JNIStrtoval_JNIStringToDouble(JNIEnv *env, jobject obj, jstring jStr)
 
102
{
 
103
    long errorCode = 0;
 
104
    double num = 0;
 
105
    const char *cStr;
 
106
 
 
107
    cStr = (*env)->GetStringUTFChars(env, jStr, NULL);
 
108
    if (cStr == NULL)
 
109
    {
 
110
        throwException(env, "geotrans/jni/JNIException", "JNI Exception: Out of memory.");
 
111
        return num;
 
112
    }
 
113
 
 
114
    if (String_to_Double(cStr, &num))
 
115
        throwException(env, "geotrans/jni/GeotransError", "Error converting string to double.");
 
116
 
 
117
    (*env)->ReleaseStringUTFChars(env, jStr, cStr);
 
118
 
 
119
    return num;
 
120
}
 
121
 
 
122
 
 
123
JNIEXPORT jdouble JNICALL Java_geotrans_jni_JNIStrtoval_JNIStringToLatitude(JNIEnv *env, jobject obj, jstring jStr)
 
124
{
 
125
    double lat = 0;
 
126
    const char *cStr;
 
127
 
 
128
    cStr = (*env)->GetStringUTFChars(env, jStr, NULL);
 
129
    if (cStr == NULL)
 
130
    {
 
131
        throwException(env, "geotrans/jni/JNIException", "JNI Exception: Out of memory.");
 
132
        return lat;
 
133
    }
 
134
 
 
135
    if (String_to_Latitude(cStr, &lat))
 
136
        throwException(env, "geotrans/jni/GeotransError", "Invalid latitude string.");
 
137
 
 
138
    (*env)->ReleaseStringUTFChars(env, jStr, cStr);
 
139
 
 
140
    return lat;
 
141
}
 
142
 
 
143
 
 
144
JNIEXPORT jlong JNICALL Java_geotrans_jni_JNIStrtoval_JNIStringToLong(JNIEnv *env, jobject obj, jstring jStr)
 
145
{
 
146
    long num = 0;
 
147
    const char *cStr;
 
148
 
 
149
    cStr = (*env)->GetStringUTFChars(env, jStr, NULL);
 
150
    if (cStr == NULL)
 
151
    {
 
152
        throwException(env, "geotrans/jni/JNIException", "JNI Exception: Out of memory.");
 
153
        return num;
 
154
    }
 
155
 
 
156
    if (String_to_Long(cStr, &num))
 
157
        throwException(env, "geotrans/jni/GeotransError", "Error converting string to long.");
 
158
 
 
159
    (*env)->ReleaseStringUTFChars(env, jStr, cStr);
 
160
 
 
161
    return num;
 
162
}
 
163
 
 
164
 
 
165
JNIEXPORT jdouble JNICALL Java_geotrans_jni_JNIStrtoval_JNIStringToLongitude(JNIEnv *env, jobject obj, jstring jStr)
 
166
{
 
167
    double lon = 0;
 
168
    const char *cStr;
 
169
 
 
170
    cStr = (*env)->GetStringUTFChars(env, jStr, NULL);
 
171
    if (cStr == NULL)
 
172
    {
 
173
        throwException(env, "geotrans/jni/JNIException", "JNI Exception: Out of memory.");
 
174
        return lon;
 
175
    }
 
176
 
 
177
    if (String_to_Longitude(cStr, &lon))
 
178
        throwException(env, "geotrans/jni/GeotransError", "Invalid longitude string.");
 
179
 
 
180
    (*env)->ReleaseStringUTFChars(env, jStr, cStr);
 
181
 
 
182
    return lon;
 
183
}
 
184
 
 
185