]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.common/src/org/simantics/db/common/utils/MetadataUtil.java
ListUtils.create(g,elements) creates a list without element inverses
[simantics/platform.git] / bundles / org.simantics.db.common / src / org / simantics / db / common / utils / MetadataUtil.java
1 package org.simantics.db.common.utils;
2
3 import java.lang.reflect.Method;
4 import java.util.Map;
5
6 import org.simantics.db.Metadata;
7
8 public class MetadataUtil {
9     @SuppressWarnings("unchecked")
10     public static <T> T getMetadata(Map<String, byte[]> data, Class<? extends Metadata> dataClass) {
11         if (null == data || null == dataClass)
12             return null;
13         T result = null;
14         try {
15             Method m = dataClass.getMethod("deserialise", byte[].class);
16             byte[] bytes = data.get(dataClass.getName());
17             if (null != bytes) {
18                 Object value = m.invoke(null, bytes);
19                 result = (T)value;
20             } else
21                 return null;
22         } catch (RuntimeException e) {
23             Logger.defaultLogError(e);
24         } catch (Exception e) {
25             Logger.defaultLogError(e);
26         }
27         return result;
28     }
29 }