All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.atmosphere.jboss.websockets.oio.internal.WebSocketHeaders Maven / Gradle / Ivy

/*
 * Copyright 2012 JBoss, by Red Hat, Inc
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.atmosphere.jboss.websockets.oio.internal;

import org.atmosphere.jboss.websockets.oio.HttpRequestBridge;
import org.atmosphere.jboss.websockets.oio.HttpResponseBridge;
import org.atmosphere.jboss.websockets.oio.HttpRequestBridge;
import org.atmosphere.jboss.websockets.oio.HttpResponseBridge;

/**
 * @author Mike Brock
 */
public enum WebSocketHeaders {
  SEC_WEBSOCKET_KEY("Sec-WebSocket-Key"),
  SEC_WEBSOCKET_KEY1("Sec-WebSocket-Key1"),
  SEC_WEBSOCKET_KEY2("Sec-WebSocket-Key2"),
  SEC_WEBSOCKET_LOCATION("Sec-WebSocket-Location"),
  ORIGIN("Origin"),
  SEC_WEBSOCKET_ORIGIN("Sec-WebSocket-Origin"),
  SEC_WEBSOCKET_PROTOCOL("Sec-WebSocket-Protocol"),
  SEC_WEBSOCKET_VERSION("Sec-WebSocket-Version"),
  SEC_WEBSOCKET_ACCEPT("Sec-WebSocket-Accept");

  private final String canonicalHeaderName;

  private WebSocketHeaders(String canonicalHeaderName) {
    this.canonicalHeaderName = canonicalHeaderName;
  }

  public final String getCanonicalHeaderName() {
    return canonicalHeaderName;
  }

  public final String get(final HttpRequestBridge request) {
    return request.getHeader(getCanonicalHeaderName());
  }

  public final String get(final HttpResponseBridge response) {
    return response.getHeader(getCanonicalHeaderName());
  }

  public final boolean isIn(final HttpRequestBridge request) {
    return get(request) != null;
  }

  public final boolean isIn(final HttpResponseBridge response) {
    return get(response) != null;
  }

  public final void copy(final HttpRequestBridge from, final HttpResponseBridge response) {
    if (isIn(from)) {
      set(response, get(from));
    }
  }

  public final void set(final HttpResponseBridge response, final String value) {
    response.setHeader(getCanonicalHeaderName(), value);
  }

  public final boolean matches(final HttpRequestBridge request, final String matchTo) {
    final String val = get(request);
    return val != null && val.equals(matchTo);
  }

  public final boolean matches(final HttpResponseBridge request, final String matchTo) {
    final String val = get(request);
    return val != null && val.equals(matchTo);
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy