package net.tootallnate.websocket;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
public class HandshakedataImpl1 implements HandshakeBuilder {
private String httpstatusmessage;
private String resourcedescriptor;
private byte[] content;
private LinkedHashMap<String,String> map;
public HandshakedataImpl1() {
map = new LinkedHashMap<String,String>();
}
public HandshakedataImpl1( Handshakedata h ) {
httpstatusmessage = h.getHttpStatusMessage();
resourcedescriptor = h.getResourceDescriptor();
content = h.getContent();
map = new LinkedHashMap<String,String>();
Iterator<String> it = h.iterateHttpFields();
while ( it.hasNext() ) {
String key = (String) it.next();
map.put( key, h.getFieldValue( key ) );
}
}
@Override
public String getResourceDescriptor() {
// validate resourcedescriptor
return resourcedescriptor == null || (resourcedescriptor.length() == 0) ? "" : resourcedescriptor;
}
@Override
public Iterator<String> iterateHttpFields() {
return Collections.unmodifiableSet( map.keySet() ).iterator();// Safety first
}
@Override
public String getFieldValue( String name ) {
String s = map.get( name );
if( s == null ) {
return "";
}
return s;
}
@Override
public byte[] getContent() {
return content;
}
@Override
public void setContent( byte[] content ) {
this.content = content;
}
@Override
public void setResourceDescriptor( String resourcedescriptor ) throws IllegalArgumentException {
this.resourcedescriptor = resourcedescriptor;
}
@Override
public void put( String name, String value ) {
map.put( name, value );
}
@Override
public boolean hasFieldValue( String name ) {
return map.containsKey( name );
}
@Override
public String getHttpStatusMessage() {
return httpstatusmessage;
}
@Override
public void setHttpStatusMessage( String message ) {
this.httpstatusmessage = message;
}
}