1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package com.mjh.switchrmi;
28
29 import java.util.*;
30
31 import javax.naming.*;
32
33 public class ObjectReferenceable
34 extends GenericReferenceable
35 implements Referenceable
36 {
37 private static Map types = new HashMap();
38
39 static
40 {
41 types.put("java", "com.mjh.switchrmi.jndi.RmiJavaObjectFactory");
42 types.put("script", "com.mjh.switchrmi.jndi.RmiScriptObjectFactory");
43 types.put("remote", "com.mjh.switchrmi.jndi.RmiProxyObjectFactory");
44 }
45
46 public static final String INTERFACE_ADDR = "interface";
47 String name;
48 String scope;
49 List interfaces = new ArrayList();
50 String type;
51 Map typeInfo;
52
53 public ObjectReferenceable()
54 {
55 }
56
57 public String toString()
58 {
59 StringBuffer sb = new StringBuffer();
60
61 sb.append("<ObjectReferenceable\n");
62 appendMembers(sb);
63 sb.append("</ObjectReferenceable>");
64
65 return sb.toString();
66 }
67
68 protected void appendMembers(StringBuffer sb)
69 {
70 sb.append(" <name>" + name + "</name>");
71 sb.append(" <scope>" + scope + "</scope>");
72 sb.append(" <type>" + type + "</type>");
73 sb.append(" <typeInfo>" + typeInfo + "</typeInfo>");
74 super.appendMembers(sb);
75 }
76
77 public void setName(String value)
78 {
79 name = value;
80 }
81
82 public String getName()
83 {
84 return name;
85 }
86
87 public void setScope(String value)
88 {
89 scope = value;
90 }
91
92 public String getScope()
93 {
94 return scope;
95 }
96
97 public void addInterface(String interfaceName)
98 {
99 interfaces.add(interfaceName);
100 }
101
102 public void setType(String value)
103 {
104 type = value;
105 super.setFactoryClassName((String) types.get(type));
106 }
107
108 public void setTypeInfo(Map info)
109 {
110 typeInfo = info;
111 }
112
113 public String[] getInterfaces()
114 {
115 int size = interfaces.size();
116 String[] strings = new String[size];
117
118 for (int i = 0; i < size; i++)
119 {
120 strings[i] = (String) interfaces.get(i);
121 }
122
123 return strings;
124 }
125
126 public Object getTypeValue(String key)
127 {
128 return typeInfo.get(key);
129 }
130 }