mobile/android/thirdparty/ch/boye/httpclientandroidlib/client/utils/JdkIdn.java

Wed, 31 Dec 2014 07:22:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:22:50 +0100
branch
TOR_BUG_3246
changeset 4
fc2d59ddac77
permissions
-rw-r--r--

Correct previous dual key logic pending first delivery installment.

     1 /*
     2  * $HeadURL$
     3  * $Revision$
     4  * $Date$
     5  *
     6  * ====================================================================
     7  *
     8  *  Licensed to the Apache Software Foundation (ASF) under one or more
     9  *  contributor license agreements.  See the NOTICE file distributed with
    10  *  this work for additional information regarding copyright ownership.
    11  *  The ASF licenses this file to You under the Apache License, Version 2.0
    12  *  (the "License"); you may not use this file except in compliance with
    13  *  the License.  You may obtain a copy of the License at
    14  *
    15  *      http://www.apache.org/licenses/LICENSE-2.0
    16  *
    17  *  Unless required by applicable law or agreed to in writing, software
    18  *  distributed under the License is distributed on an "AS IS" BASIS,
    19  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    20  *  See the License for the specific language governing permissions and
    21  *  limitations under the License.
    22  * ====================================================================
    23  *
    24  * This software consists of voluntary contributions made by many
    25  * individuals on behalf of the Apache Software Foundation.  For more
    26  * information on the Apache Software Foundation, please see
    27  * <http://www.apache.org/>.
    28  *
    29  */
    31 package ch.boye.httpclientandroidlib.client.utils;
    33 import java.lang.reflect.InvocationTargetException;
    34 import java.lang.reflect.Method;
    36 import ch.boye.httpclientandroidlib.annotation.Immutable;
    38 /**
    39  * Uses the java.net.IDN class through reflection.
    40  *
    41  * @since 4.0
    42  */
    43 @Immutable
    44 public class JdkIdn implements Idn {
    45     private final Method toUnicode;
    47     /**
    48      *
    49      * @throws ClassNotFoundException if java.net.IDN is not available
    50      */
    51     public JdkIdn() throws ClassNotFoundException {
    52         Class<?> clazz = Class.forName("java.net.IDN");
    53         try {
    54             toUnicode = clazz.getMethod("toUnicode", String.class);
    55         } catch (SecurityException e) {
    56             // doesn't happen
    57             throw new IllegalStateException(e.getMessage(), e);
    58         } catch (NoSuchMethodException e) {
    59             // doesn't happen
    60             throw new IllegalStateException(e.getMessage(), e);
    61         }
    62     }
    64     public String toUnicode(String punycode) {
    65         try {
    66             return (String) toUnicode.invoke(null, punycode);
    67         } catch (IllegalAccessException e) {
    68             throw new IllegalStateException(e.getMessage(), e);
    69         } catch (InvocationTargetException e) {
    70             Throwable t = e.getCause();
    71             throw new RuntimeException(t.getMessage(), t);
    72         }
    73     }
    75 }

mercurial