EMMA Coverage Report (generated Mon Mar 20 21:34:30 PST 2006)
[all classes][com.moesol.bindings.platform_sdk.component_services]

COVERAGE SUMMARY FOR SOURCE FILE [ComInProcGroups.java]

nameclass, %method, %block, %line, %
ComInProcGroups.java100% (1/1)100% (6/6)100% (59/59)100% (15/15)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ComInProcGroups100% (1/1)100% (6/6)100% (59/59)100% (15/15)
<static initializer> 100% (1/1)100% (5/5)100% (1/1)
ComInProcGroups (): void 100% (1/1)100% (8/8)100% (3/3)
getClass (GUID, String): Class 100% (1/1)100% (13/13)100% (3/3)
getClassLoader (String): ClassLoader 100% (1/1)100% (20/20)100% (5/5)
instance (): ComInProcGroups 100% (1/1)100% (2/2)100% (1/1)
makeLoader (String): ClassLoader 100% (1/1)100% (11/11)100% (2/2)

1/*
2 * $Id: ComInProcGroups.java,v 1.1 2005/12/14 03:20:38 hastings Exp $
3 *
4 * (c) Copyright, Moebius Solutions, Inc., 2004
5 *
6 *                       All Rights Reserved
7 *
8 * This material may be reproduced by or for the U. S. Government
9 * pursuant to the copyright license under the clause at
10 * DFARS 252.227-7014 (OCT 2001).
11 */
12package com.moesol.bindings.platform_sdk.component_services;
13 
14import java.net.MalformedURLException;
15import java.net.URLClassLoader;
16import java.util.HashMap;
17import java.util.Map;
18import java.util.prefs.BackingStoreException;
19 
20/**
21 * Manage COM in-process groups.
22 * Free threaded.
23 * 
24 * @author Hastings
25 */
26public class ComInProcGroups {
27        
28        private static final ComInProcGroups s_inst = new ComInProcGroups();
29        
30        private Map m_group_map = new HashMap();
31 
32        private ComInProcGroups() {
33        }
34        
35        public static ComInProcGroups instance() {
36                return s_inst;
37        }
38        
39        public Class getClass(GUID clsid, String class_name) throws ClassNotFoundException, MalformedURLException, BackingStoreException {
40                String group = COM.findComServerValue(clsid, "Group");
41                ClassLoader child = getClassLoader(group);
42                return Class.forName(class_name, true, child);
43        }
44        
45        public synchronized ClassLoader getClassLoader(String group_name) throws MalformedURLException, BackingStoreException {
46                ClassLoader l = (ClassLoader)m_group_map.get(group_name);
47                if (l == null) {
48                        l = makeLoader(group_name);
49                        m_group_map.put(group_name, l);
50                }
51                return l;
52        }
53 
54        private ClassLoader makeLoader(String group_name) throws MalformedURLException, BackingStoreException {
55                ComClassPathBuilder b = new ComClassPathBuilder(group_name);
56                return new URLClassLoader(b.buildClassPath());
57        }
58 
59}

[all classes][com.moesol.bindings.platform_sdk.component_services]
EMMA 2.0.5312 (C) Vladimir Roubtsov