1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.fourthline.cling.model.message.header;
17
18 import org.fourthline.cling.model.types.UDN;
19
20
21
22
23 public class USNRootDeviceHeader extends UpnpHeader<UDN> {
24
25 public static final String ROOT_DEVICE_SUFFIX = "::upnp:rootdevice";
26
27 public USNRootDeviceHeader() {
28 }
29
30 public USNRootDeviceHeader(UDN udn) {
31 setValue(udn);
32 }
33
34 public void setString(String s) throws InvalidHeaderException {
35 if (!s.startsWith(UDN.PREFIX) || !s.endsWith(ROOT_DEVICE_SUFFIX)) {
36 throw new InvalidHeaderException(
37 "Invalid root device USN header value, must start with '" +
38 UDN.PREFIX + "' and end with '" +
39 ROOT_DEVICE_SUFFIX + "' but is '" + s + "'"
40 );
41 }
42 UDN udn = new UDN(s.substring(UDN.PREFIX.length(), s.length() - ROOT_DEVICE_SUFFIX.length()));
43 setValue(udn);
44 }
45
46 public String getString() {
47 return getValue().toString() + ROOT_DEVICE_SUFFIX;
48 }
49
50 }