webidor/src/main/java/cz/xelfi/quoridor/webidor/JAXBContextResolver.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Sun, 30 Aug 2009 14:44:49 +0200
changeset 49 75074e02f345
parent 35 2e85dd878f04
child 77 d574ac6e44cc
permissions -rw-r--r--
At least we are able to generate the index page
     1 /*
     2  *
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     4  * 
     5  * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
     6  * 
     7  * The contents of this file are subject to the terms of either the GNU
     8  * General Public License Version 2 only ("GPL") or the Common Development
     9  * and Distribution License("CDDL") (collectively, the "License").  You
    10  * may not use this file except in compliance with the License. You can obtain
    11  * a copy of the License at https://jersey.dev.java.net/CDDL+GPL.html
    12  * or jersey/legal/LICENSE.txt.  See the License for the specific
    13  * language governing permissions and limitations under the License.
    14  * 
    15  * When distributing the software, include this License Header Notice in each
    16  * file and include the License file at jersey/legal/LICENSE.txt.
    17  * Sun designates this particular file as subject to the "Classpath" exception
    18  * as provided by Sun in the GPL Version 2 section of the License file that
    19  * accompanied this code.  If applicable, add the following below the License
    20  * Header, with the fields enclosed by brackets [] replaced by your own
    21  * identifying information: "Portions Copyrighted [year]
    22  * [name of copyright owner]"
    23  * 
    24  * Contributor(s):
    25  * 
    26  * If you wish your version of this file to be governed by only the CDDL or
    27  * only the GPL Version 2, indicate your decision by adding "[Contributor]
    28  * elects to include this software in this distribution under the [CDDL or GPL
    29  * Version 2] license."  If you don't indicate a single choice of license, a
    30  * recipient has the option to distribute your version of this file under
    31  * either the CDDL, the GPL Version 2 or to extend the choice of license to
    32  * its licensees as provided above.  However, if you add GPL Version 2 code
    33  * and therefore, elected the GPL Version 2 license, then the option applies
    34  * only if the new code is made subject to such option by the copyright
    35  * holder.
    36  */
    37 
    38 package cz.xelfi.quoridor.webidor;
    39 
    40 import com.sun.jersey.api.json.JSONConfiguration;
    41 import com.sun.jersey.api.json.JSONJAXBContext;
    42 import java.util.Arrays;
    43 import java.util.HashSet;
    44 import java.util.Set;
    45 import javax.ws.rs.ext.ContextResolver;
    46 import javax.ws.rs.ext.Provider;
    47 import javax.xml.bind.JAXBContext;
    48 
    49 /**
    50  *
    51  * @author japod
    52  */
    53 @Provider
    54 public final class JAXBContextResolver implements ContextResolver<JAXBContext> {
    55     
    56     private final JAXBContext context;
    57     
    58     private final Set<Class> types;
    59     
    60     private final Class[] cTypes = {Game.class, GameId.class, GameResult.class };
    61     
    62     public JAXBContextResolver() throws Exception {
    63         this.types = new HashSet(Arrays.asList(cTypes));
    64         this.context = new JSONJAXBContext(JSONConfiguration.natural().build(), cTypes);
    65     }
    66     
    67     public JAXBContext getContext(Class<?> objectType) {
    68         return (types.contains(objectType)) ? context : null;
    69     }
    70 }