portmapping.java

来自「android_UPNP_DLNA_控制点」· Java 代码 · 共 191 行

JAVA
191
字号
/* * Copyright (C) 2010 Teleal GmbH, Switzerland * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 3 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program.  If not, see <http://www.gnu.org/licenses/>. */package org.teleal.cling.support.model;import org.teleal.cling.model.action.ActionArgumentValue;import org.teleal.cling.model.meta.Service;import org.teleal.cling.model.types.UnsignedIntegerFourBytes;import org.teleal.cling.model.types.UnsignedIntegerTwoBytes;import java.util.Map;/** * @author Christian Bauer */public class PortMapping {    public enum Protocol {        UDP,        TCP    }    private boolean enabled;    private UnsignedIntegerFourBytes leaseDurationSeconds;    private String remoteHost;    private UnsignedIntegerTwoBytes externalPort;    private UnsignedIntegerTwoBytes internalPort;    private String internalClient;    private Protocol protocol;    private String description;    public PortMapping() {    }    public PortMapping(Map<String, ActionArgumentValue<Service>> map) {        this(                (Boolean) map.get("NewEnabled").getValue(),                (UnsignedIntegerFourBytes) map.get("NewLeaseDuration").getValue(),                (String) map.get("NewRemoteHost").getValue(),                (UnsignedIntegerTwoBytes) map.get("NewExternalPort").getValue(),                (UnsignedIntegerTwoBytes) map.get("NewInternalPort").getValue(),                (String) map.get("NewInternalClient").getValue(),                Protocol.valueOf(map.get("NewProtocol").toString()),                (String) map.get("NewPortMappingDescription").getValue()        );    }    public PortMapping(int port, String internalClient, Protocol protocol) {        this(                true,                new UnsignedIntegerFourBytes(0),                null,                new UnsignedIntegerTwoBytes(port),                new UnsignedIntegerTwoBytes(port),                internalClient,                protocol,                null        );    }    public PortMapping(int port, String internalClient, Protocol protocol, String description) {        this(                true,                new UnsignedIntegerFourBytes(0),                null,                new UnsignedIntegerTwoBytes(port),                new UnsignedIntegerTwoBytes(port),                internalClient,                protocol,                description        );    }    public PortMapping(String remoteHost, UnsignedIntegerTwoBytes externalPort, Protocol protocol) {        this(                true,                new UnsignedIntegerFourBytes(0),                remoteHost,                externalPort,                null,                null,                protocol,                null        );    }    public PortMapping(boolean enabled, UnsignedIntegerFourBytes leaseDurationSeconds, String remoteHost, UnsignedIntegerTwoBytes externalPort,                       UnsignedIntegerTwoBytes internalPort, String internalClient, Protocol protocol, String description) {        this.enabled = enabled;        this.leaseDurationSeconds = leaseDurationSeconds;        this.remoteHost = remoteHost;        this.externalPort = externalPort;        this.internalPort = internalPort;        this.internalClient = internalClient;        this.protocol = protocol;        this.description = description;    }    public boolean isEnabled() {        return enabled;    }    public void setEnabled(boolean enabled) {        this.enabled = enabled;    }    public UnsignedIntegerFourBytes getLeaseDurationSeconds() {        return leaseDurationSeconds;    }    public void setLeaseDurationSeconds(UnsignedIntegerFourBytes leaseDurationSeconds) {        this.leaseDurationSeconds = leaseDurationSeconds;    }    public boolean hasRemoteHost() {        return remoteHost != null && remoteHost.length() > 0;    }    public String getRemoteHost() {        return remoteHost == null ? "-" : remoteHost;    }    public void setRemoteHost(String remoteHost) {        this.remoteHost = remoteHost == null || remoteHost.equals("-") || remoteHost.length() == 0 ? null : remoteHost;    }    public UnsignedIntegerTwoBytes getExternalPort() {        return externalPort;    }    public void setExternalPort(UnsignedIntegerTwoBytes externalPort) {        this.externalPort = externalPort;    }    public UnsignedIntegerTwoBytes getInternalPort() {        return internalPort;    }    public void setInternalPort(UnsignedIntegerTwoBytes internalPort) {        this.internalPort = internalPort;    }    public String getInternalClient() {        return internalClient;    }    public void setInternalClient(String internalClient) {        this.internalClient = internalClient;    }    public Protocol getProtocol() {        return protocol;    }    public void setProtocol(Protocol protocol) {        this.protocol = protocol;    }    public boolean hasDescription() {        return description != null;    }    public String getDescription() {        return description == null ? "-" : description;    }    public void setDescription(String description) {        this.description = description == null || description.equals("-") || description.length() == 0 ? null : description;    }    @Override    public String toString() {        return "(" + getClass().getSimpleName() + ") Protocol: " + getProtocol() + ", " + getExternalPort() + " => " + getInternalClient();    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?