Class ForwardedElement

java.lang.Object
All Implemented Interfaces:
Serializable, Cloneable, Iterable<ForwardedPair>, Collection<ForwardedPair>, List<ForwardedPair>, RandomAccess, SequencedCollection<ForwardedPair>

public class ForwardedElement extends ArrayList<ForwardedPair>
This class represents the forwarded element as defined in RFC 7239: Forwarded HTTP Extension, Section 4. Forwarded HTTP Header Field.

Definition

 Forwarded   = 1#forwarded-element

 forwarded-element =
     [ forwarded-pair ] *( ";" [ forwarded-pair ] )

 forwarded-pair = token "=" value
 value          = token / quoted-string

 token = <Defined in [RFC7230], Section 3.2.6>
 quoted-string = <Defined in [RFC7230], Section 3.2.6>
 

Sample Code

 ForwardedElement element = ForwardedElement.parse(
         "for=192.0.2.60;proto=http;by=203.0.113.43;host=example.com");
 assertNotNull(element);
 assertEquals(4, element.size());

 // for
 ForwardedPair forPair = element.get(0);
 assertNotNull(forPair);

 Token forName = forPair.getName();
 assertNotNull(forName);
 assertEquals("for", forName.getValue());

 Object forValue = forPair.getValue();
 assertNotNull(forValue);
 assertEquals(Token.class, forValue.getClass());
 assertEquals("192.0.2.60", ((Token)forValue).getValue());

 // proto
 ForwardedPair protoPair = element.get(1);
 assertNotNull(protoPair);

 Token protoName = protoPair.getName();
 assertNotNull(protoName);
 assertEquals("proto", protoName.getValue());

 Object protoValue = protoPair.getValue();
 assertNotNull(protoValue);
 assertEquals(Token.class, protoValue.getClass());
 assertEquals("http", ((Token)protoValue).getValue());

 // by
 ForwardedPair byPair = element.get(2);
 assertNotNull(byPair);

 Token byName = byPair.getName();
 assertNotNull(byName);
 assertEquals("by", byName.getValue());

 Object byValue = byPair.getValue();
 assertNotNull(byValue);
 assertEquals(Token.class, byValue.getClass());
 assertEquals("203.0.113.43", ((Token)byValue).getValue());

 // host
 ForwardedPair hostPair = element.get(3);
 assertNotNull(hostPair);

 Token hostName = hostPair.getName();
 assertNotNull(hostName);
 assertEquals("host", hostName.getValue());

 Object hostValue = hostPair.getValue();
 assertNotNull(hostValue);
 assertEquals(Token.class, hostValue.getClass());
 assertEquals("example.com", ((Token)hostValue).getValue());

 // Search
 assertEquals("192.0.2.60",   element.getFor());
 assertEquals("http",         element.getProto());
 assertEquals("203.0.113.43", element.getBy());
 assertEquals("example.com",  element.getHost());
 
See Also: