1 package net.sf.provisioner.requests;
2
3 import net.sf.provisioner.config.ConfigRequest;
4 import net.sf.provisioner.core.Consumer;
5 import net.sf.provisioner.core.Operation;
6
7 import org.apache.log4j.Logger;
8
9
10
11
12
13
14
15
16
17
18
19 public class RequestFactory {
20
21 private static Logger logger = Logger.getLogger(RequestFactory.class);
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 public static Request createRequest(Operation op, ConfigRequest configRequest) {
37 Request request = validateRequest(op, configRequest);
38 if (request != null) {
39 return request;
40 }
41
42 String neType = configRequest.service.ne.type;
43 if ("Intraway".equalsIgnoreCase(neType)) {
44
45 request = new IntrawayRequest(configRequest, op.getParameters());
46
47 } else if ("Merak".equalsIgnoreCase(neType)) {
48
49 request = new MerakRequest(configRequest, op.getParameters());
50
51 } else if ("SER".equalsIgnoreCase(neType)) {
52
53 request = new SERRequest(configRequest, op.getParameters());
54
55 } else if ("Asterisk".equalsIgnoreCase(neType)) {
56 request = new AsteriskRequest(configRequest, op.getParameters());
57
58 } else if ("ldap_network_element_name".equalsIgnoreCase(neType)) {
59 if ("LDAPC".equalsIgnoreCase(op.getType())) {
60 request = new LDAPCreateRequest(configRequest, op.getParameters());
61 } else if ("LDAPD".equalsIgnoreCase(op.getType())) {
62 request = new LDAPDeleteRequest(configRequest, op.getParameters());
63 } else if ("LDAPM".equalsIgnoreCase(op.getType())) {
64 request = new LDAPModifyRequest(configRequest, op.getParameters());
65 } else {
66 logger.warn("No LDAP support for operation type '" + op.getType() + "'");
67 }
68 } else if ("Generic".equalsIgnoreCase(neType)) {
69
70 request = new GenericRequest(configRequest, op.getParameters());
71 }
72
73 if (request == null) {
74
75
76
77 String message = "No request found for networkElement type '" + neType + "'";
78 logger.warn(message);
79 request = new FailedRequest(message);
80 }
81
82 return request;
83 }
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98 private static Request validateRequest(Operation op, ConfigRequest request) {
99 if (request.service.ne.name == null) {
100 return new FailedRequest(
101 String.format(
102 "Network element name is not valid ('%s'). "
103 + "Please review routing configuration.",
104 request.service.ne.name
105 )
106 );
107 }
108
109 if (request.service.ne.type == null) {
110 return new FailedRequest(
111 String.format(
112 "Network element type is not valid ('%s'). "
113 + "Please review routing configuration.",
114 request.service.ne.type
115 )
116 );
117 }
118 return null;
119 }
120 }