Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source.
   * Copyright 2014 Red Hat, Inc., and individual contributors
   * as indicated by the @author tags.
   *
   * 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 io.undertow.websockets;
 
 import java.util.List;

Author(s):
Stuart Douglas
 
 public class WebSocketExtension {
 
     private final String name;
     private final List<Parameterparameters;
 
     public WebSocketExtension(String nameList<Parameterparameters) {
         this. = name;
         this. = Collections.unmodifiableList(new ArrayList<>(parameters));
     }
 
     public String getName() {
         return ;
     }
 
     public List<ParametergetParameters() {
         return ;
     }
 
     public static final class Parameter {
         private final String name;
         private final String value;
 
         public Parameter(String nameString value) {
             this. = name;
             this. = value;
         }
 
         public String getName() {
             return ;
         }
 
         public String getValue() {
             return ;
         }
 
         @Override
         public String toString() {
             return "{'" +  + '\'' +
                     ": '" +  + '\'' +
                     '}';
         }
     }
 
     @Override
     public String toString() {
         return "WebSocketExtension{" +
                 "name='" +  + '\'' +
                 ", parameters=" +  +
                 '}';
     }
 
     public static List<WebSocketExtensionparse(final String extensionHeader) {
         if(extensionHeader == null || extensionHeader.isEmpty()) {
             return Collections.emptyList();
         }
         List<WebSocketExtensionextensions = new ArrayList<>();
         //TODO: more efficient parsing algorithm
         String[] parts = extensionHeader.split(",");
         for (String part : parts) {
             String[] items = part.split(";");
             if (items.length > 0) {
                 final List<Parameterparams = new ArrayList<>(items.length - 1);
                 String name = items[0].trim();
                 for (int i = 1; i < items.length; ++i) {
                     String[] param = items[i].split("=");
                     if (param.length == 2) {
                         params.add(new Parameter(param[0].trim(), param[1].trim()));
                     }
                 }
                 extensions.add(new WebSocketExtension(nameparams));
             }
         }
        return extensions;
    }
New to GrepCode? Check out our FAQ X