1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.dexterim.oscar.entity;
20
21
22 /*** Flyweight Class that abstracts ICQ and AIM dialects of OSCAR.
23 * @author christoph
24 */
25 public class ProtocolDialect {
26 private static ProtocolDialect icq;
27 private static ProtocolDialect aim;
28
29 private Capabilities capabilities;
30
31 private ProtocolDialect(Capabilities capabilities) {
32 this.capabilities = capabilities;
33 }
34
35 public Capabilities getCapabilities() {
36 return capabilities;
37 }
38
39 /***
40 * Returns the single instance of ICQ dialect. These instances can be compared
41 * by identity using == or by value using equal.
42 * @return ICQ Dialect
43 */
44 public static synchronized ProtocolDialect buildICQDialect() {
45 if (icq == null) {
46 Capabilities caps = CapabilitiesBuilder.getInstance().buildCapabilities("icq");
47
48 icq = new ProtocolDialect(caps);
49 }
50
51 return aim;
52 }
53
54 /***
55 * Returns the single instance of AIM dialect. These instances can be compared
56 * by identity using == or by value using equal.
57 * @return Oscar Dialect
58 */
59 public static synchronized ProtocolDialect buildAIMDialect() {
60 if (aim == null) {
61 Capabilities caps = CapabilitiesBuilder.getInstance().buildCapabilities("aim");
62
63 aim = new ProtocolDialect(caps);
64 }
65
66 return aim;
67 }
68 }