java-gobject-introspection r65 - in trunk/src/org/gnome/gir: compiler gobject repository
- From: walters svn gnome org
- To: svn-commits-list gnome org
- Subject: java-gobject-introspection r65 - in trunk/src/org/gnome/gir: compiler gobject repository
- Date: Tue, 23 Sep 2008 22:52:43 +0000 (UTC)
Author: walters
Date: Tue Sep 23 22:52:42 2008
New Revision: 65
URL: http://svn.gnome.org/viewvc/java-gobject-introspection?rev=65&view=rev
Log:
Map new TIMET type to java.util.Date
Modified:
trunk/src/org/gnome/gir/compiler/CodeFactory.java
trunk/src/org/gnome/gir/gobject/GTypeMapper.java
trunk/src/org/gnome/gir/repository/TypeTag.java
Modified: trunk/src/org/gnome/gir/compiler/CodeFactory.java
==============================================================================
--- trunk/src/org/gnome/gir/compiler/CodeFactory.java (original)
+++ trunk/src/org/gnome/gir/compiler/CodeFactory.java Tue Sep 23 22:52:42 2008
@@ -52,6 +52,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
@@ -259,6 +260,8 @@
return Type.FLOAT_TYPE;
if (tag == TypeTag.DOUBLE)
return Type.DOUBLE_TYPE;
+ if (tag == TypeTag.TIMET)
+ return Type.getType(Date.class);
if (tag == TypeTag.UTF8)
return Type.getType(String.class);
if (tag == TypeTag.FILENAME)
Modified: trunk/src/org/gnome/gir/gobject/GTypeMapper.java
==============================================================================
--- trunk/src/org/gnome/gir/gobject/GTypeMapper.java (original)
+++ trunk/src/org/gnome/gir/gobject/GTypeMapper.java Tue Sep 23 22:52:42 2008
@@ -48,6 +48,7 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.net.URI;
+import java.util.Date;
import org.gnome.gir.gobject.annotation.ConstField;
import org.gnome.gir.gobject.annotation.IncRef;
@@ -242,6 +243,22 @@
return String.class;
}
};
+
+ private TypeConverter dateConverter = new TypeConverter() {
+
+ public Object toNative(Object arg, ToNativeContext context) {
+ return ((Date)arg).getTime();
+ }
+
+ public Object fromNative(Object arg0, FromNativeContext arg1) {
+ return new Date(((Long) arg0));
+ }
+
+ public Class<?> nativeType() {
+ return Pointer.SIZE == 8 ? Long.class : Integer.class;
+ }
+ };
+
@SuppressWarnings("unchecked")
public FromNativeConverter getFromNativeConverter(Class type) {
if (Enum.class.isAssignableFrom(type)) {
@@ -256,6 +273,8 @@
return intptrConverter;
} else if (GQuark.class == type) {
return gquarkConverter;
+ } else if (Date.class.isAssignableFrom(type)) {
+ return dateConverter;
}
return super.getFromNativeConverter(type);
}
@@ -276,6 +295,8 @@
return intptrConverter;
} else if (GQuark.class == type) {
return gquarkConverter;
+ } else if (Date.class.isAssignableFrom(type)) {
+ return dateConverter;
}
return super.getToNativeConverter(type);
}
Modified: trunk/src/org/gnome/gir/repository/TypeTag.java
==============================================================================
--- trunk/src/org/gnome/gir/repository/TypeTag.java (original)
+++ trunk/src/org/gnome/gir/repository/TypeTag.java Tue Sep 23 22:52:42 2008
@@ -43,7 +43,8 @@
SSIZE,
SIZE,
FLOAT,
- DOUBLE,
+ DOUBLE,
+ TIMET,
UTF8,
FILENAME,
ARRAY,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]