--- /dev/null
+package org.simantics.db.common.utils;\r
+\r
+import java.lang.reflect.Method;\r
+import java.util.Map;\r
+\r
+import org.simantics.db.Metadata;\r
+\r
+public class MetadataUtil {\r
+ @SuppressWarnings("unchecked")\r
+ public static <T> T getMetadata(Map<String, byte[]> data, Class<? extends Metadata> dataClass) {\r
+ if (null == data || null == dataClass)\r
+ return null;\r
+ T result = null;\r
+ try {\r
+ Method m = dataClass.getMethod("deserialise", byte[].class);\r
+ byte[] bytes = data.get(dataClass.getName());\r
+ if (null != bytes) {\r
+ Object value = m.invoke(null, bytes);\r
+ result = (T)value;\r
+ } else\r
+ return null;\r
+ } catch (RuntimeException e) {\r
+ Logger.defaultLogError(e);\r
+ } catch (Exception e) {\r
+ Logger.defaultLogError(e);\r
+ }\r
+ return result;\r
+ }\r
+}\r