1 package org.fourthline.cling.support.igd.callback; 2 3 import org.fourthline.cling.controlpoint.ActionCallback; 4 import org.fourthline.cling.controlpoint.ControlPoint; 5 import org.fourthline.cling.model.action.ActionArgumentValue; 6 import org.fourthline.cling.model.action.ActionInvocation; 7 import org.fourthline.cling.model.meta.Service; 8 import org.fourthline.cling.model.types.UnsignedIntegerTwoBytes; 9 import org.fourthline.cling.support.model.PortMapping; 10 11 import java.util.Map; 12 13 public abstract class PortMappingEntryGet extends ActionCallback { 14 15 public PortMappingEntryGet(Service service, long index) { 16 this(service, null, index); 17 } 18 19 protected PortMappingEntryGet(Service service, ControlPoint controlPoint, long index) { 20 super(new ActionInvocation(service.getAction("GetGenericPortMappingEntry")), controlPoint); 21 22 getActionInvocation().setInput("NewPortMappingIndex", new UnsignedIntegerTwoBytes(index)); 23 } 24 25 @Override 26 public void success(ActionInvocation invocation) { 27 28 Map<String, ActionArgumentValue<Service>> outputMap = invocation.getOutputMap(); 29 success(new PortMapping(outputMap)); 30 } 31 32 protected abstract void success(PortMapping portMapping); 33 }