/** * create an instance from a Map * @param map the map * @return the instance */ public static ClassDefinition fromMap(Map<String, Object> map) { return new ClassDefinition((String) map.get(NAME), (Long) map.get(SVU), (byte[]) map.get(DATA)); }
/** * create an instance from a Map * @param mapList list of map reperesenting ClassDefinition * @return the instance */ public static ClassBundle fromListOfMaps(List<Map<String, Object>> mapList) { ArrayList<ClassDefinition> listOfDefinitions = new ArrayList<ClassDefinition>(mapList.size()); for (Map<String, Object> classDefinitionMap : mapList) { listOfDefinitions.add(ClassDefinition.fromMap(classDefinitionMap)); } return new ClassBundle(listOfDefinitions); }
/** * return a map representing the instance * @return the map */ public Map<String, Object> toMap() { Map<String, Object> returnMap = new LinkedHashMap<String, Object>(3); returnMap.put(NAME, this.getName()); returnMap.put(SVU, this.getSerialVersionUID()); returnMap.put(DATA, this.getData()); return returnMap; }
/** * Constructor * @param cb The class bundle * @param resourceAdapterClassLoader The resource adapter class loader */ public WorkClassLoader(ClassBundle cb, ResourceAdapterClassLoader resourceAdapterClassLoader) { super(SecurityActions.getClassLoader(WorkClassLoader.class)); List<Class<?>> classes = new ArrayList<Class<?>>(cb.getDefinitions().size()); final boolean trace = log.isTraceEnabled(); for (ClassDefinition cd : cb.getDefinitions()) { if (trace) log.tracef("%s: Defining class=%s", Integer.toHexString(System.identityHashCode(this)), cd.getName()); Class<?> c = defineClass(cd.getName(), cd.getData(), 0, cd.getData().length); classes.add(c); } for (Class<?> c : classes) { if (trace) log.tracef("%s: Resolving class=%s", Integer.toHexString(System.identityHashCode(this)), c.getName()); resolveClass(c); } this.resourceAdapterClassLoader = resourceAdapterClassLoader; }
/** * return a list maps representing classDefinitions of this instance * @return the list of maps */ public List<Map<String, Object>> toListOfMaps() { ArrayList<Map<String, Object>> returnList = new ArrayList<Map<String, Object>>(this.getDefinitions().size()); for (ClassDefinition classDefinition : this.getDefinitions()) { returnList.add(classDefinition.toMap()); } return returnList; }
return new ClassDefinition(name, serialVersionUID, data);