/**
* Copyright (C) 2012-2014 Gist Labs, LLC. (http://gistlabs.com)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package com.gistlabs.mechanize.headers;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Implements a multi-value header.
*/
public class Header implements Iterable<String> {
private final String name;
private final List<String> values = new ArrayList<String>();
public Header(final String name, final String value) {
this.name = name;
this.values.add(value);
}
public String getName() {
return name;
}
public boolean isSingleValue() {
return values.size() == 1;
}
public void addValue(final String value) {
if(!values.contains(value))
values.add(value);
}
public String getValue() {
return values.get(0);
}
public List<String> getValues() {
return values;
}
@Override
public Iterator<String> iterator() {
return values.iterator();
}
@Override
public String toString() {
return String.format("%s: %s", name, values);
}
}