1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.fourthline.cling.support.igd.callback;
17
18 import org.fourthline.cling.controlpoint.ActionCallback;
19 import org.fourthline.cling.controlpoint.ControlPoint;
20 import org.fourthline.cling.model.action.ActionInvocation;
21 import org.fourthline.cling.model.meta.Service;
22 import org.fourthline.cling.support.model.PortMapping;
23
24
25
26
27 public abstract class PortMappingAdd extends ActionCallback {
28
29 final protected PortMapping portMapping;
30
31 public PortMappingAdd(Service service, PortMapping portMapping) {
32 this(service, null, portMapping);
33 }
34
35 protected PortMappingAdd(Service service, ControlPoint controlPoint, PortMapping portMapping) {
36 super(new ActionInvocation(service.getAction("AddPortMapping")), controlPoint);
37
38 this.portMapping = portMapping;
39
40 getActionInvocation().setInput("NewExternalPort", portMapping.getExternalPort());
41 getActionInvocation().setInput("NewProtocol", portMapping.getProtocol());
42 getActionInvocation().setInput("NewInternalClient", portMapping.getInternalClient());
43 getActionInvocation().setInput("NewInternalPort", portMapping.getInternalPort());
44 getActionInvocation().setInput("NewLeaseDuration", portMapping.getLeaseDurationSeconds());
45 getActionInvocation().setInput("NewEnabled", portMapping.isEnabled());
46 if (portMapping.hasRemoteHost())
47 getActionInvocation().setInput("NewRemoteHost", portMapping.getRemoteHost());
48 if (portMapping.hasDescription())
49 getActionInvocation().setInput("NewPortMappingDescription", portMapping.getDescription());
50
51 }
52
53 }