/* * Copyright 2013 Guidewire Software, Inc. */ package gw.xml.ws; import gw.util.Pair; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; // TODO: We can do more with Http_Headers in the future, such as allowing to remove headers, clear all headers with a certain name, // replace headers with a certain name, access existing headers, etc. Keep in mind that HTTP header names are case-insensitive (RFC 2616) public class HttpHeaders { private LinkedHashMap<String, Pair<String, String>> _headers = new LinkedHashMap<String, Pair<String, String>>(); public void setHeader( String name, String value ) { String ucName = name.toUpperCase(); _headers.put( ucName, new Pair<String,String>( name, value ) ); } public List<String> getHeaderNames() { ArrayList<String> ret = new ArrayList<String>(); for ( Pair<String, String> pair : _headers.values() ) { ret.add( pair.getFirst() ); } return Collections.unmodifiableList( ret ); } public String getHeader( String name ) { Pair<String, String> ret = _headers.get( name.toUpperCase() ); return ret == null ? null : ret.getSecond(); } @Override public String toString() { return _headers.values().toString(); } }