Package com.aelitis.azureus.util

Source Code of com.aelitis.azureus.util.ImportExportUtils

package com.aelitis.azureus.util;

import java.io.IOException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.gudy.azureus2.core3.util.UrlUtils;
import org.json.simple.JSONArray;

public final class ImportExportUtils {
 
  public final static void
  exportString(
    Map    map,
    String  key,
    String  value )
 
    throws IOException
  {
    if ( value != null ){
 
      map.put( key, value.getBytes( "UTF-8" ));
    }
  }
 
  public final static void
  exportJSONString(
    Map    map,
    String  key,
    String  value )
 
    throws IOException
  {
    if ( value != null ){
 
      map.put( key, value );
    }
  }
 
  public final static String
  importString(
    Map    map,
    String  key,
    String  def )
 
    throws IOException
  {
    String  res = importString( map, key );
   
    if ( res == null ){
     
      res = def;
    }
   
    return( res );
  }
 
  public final static String
  importString(
    Map    map,
    String  key )
 
    throws IOException
  {
    if ( map == null ){
     
      return( null );
    }
   
    Object  obj = map.get( key );
   
    if ( obj instanceof String ){
     
      return((String)obj);
     
    }else if ( obj instanceof byte[]){
     
      return( new String((byte[])obj, "UTF-8" ));
    }
   
    return( null );
  }
 
  public final static long
  importLong(
    Map    map,
    String  key )
 
    throws IOException
  {
    return( importLong( map, key, 0 ));
  }
 
  public final static long
  importLong(
    Map    map,
    String  key,
    long  def )
 
    throws IOException
  {
    if ( map == null ){
     
      return( def );
    }
   
    Object  obj = map.get( key );
   
    if ( obj instanceof Long){
     
      return(((Long)obj).longValue());
     
    }else if ( obj instanceof String ){
     
      return( Long.parseLong((String)obj));
    }
   
    return( def );
  }

  public final static void
  exportLong(
    Map    map,
    String  key,
    long  value )
  {
    map.put( key, value );
  }
 
  public final static void
  exportInt(
    Map    map,
    String  key,
    int    value )
  {
    map.put( key, new Long( value ));
  }
 
  public final static int
  importInt(
    Map    map,
    String  key )
 
    throws IOException
  {
    return((int)importLong( map, key, 0 ));
  }
 
  public final static int
  importInt(
    Map    map,
    String  key,
    int    def )
 
    throws IOException
  {
    return((int)importLong( map, key, def ));
  }
 
  public final static void
  exportFloat(
    Map    map,
    String  key,
    float  value )
 
    throws IOException
  {
    exportString( map, key, String.valueOf( value ));
  }
 
  public final static float
  importFloat(
    Map    map,
    String  key,
    float  def )
 
    throws IOException
  {
    String  str = importString( map, key );
   
    if ( str == null ){
     
      return( def );
    }
   
    return( Float.parseFloat( str ));
  }
 
  public final static void
  exportBoolean(
    Map    map,
    String  key,
    boolean  value )
 
    throws IOException
  {
    map.put( key, new Long( value?1:0 ));
  }
 
  public final static boolean
  importBoolean(
    Map    map,
    String  key )
 
    throws IOException
  {
    return( importBoolean( map, key, false ));
  }
 
  public final static boolean
  importBoolean(
    Map    map,
    String  key,
    boolean  def )
 
    throws IOException
  {
    if ( map == null ){
     
      return( def );
    }
   
    Object  obj = map.get( key );
   
    if ( obj instanceof Long){
     
      return(((Long)obj).longValue() == 1 );
     
    }else if ( obj instanceof Boolean ){
     
      return(((Boolean)obj).booleanValue());
    }
   
    return( def );
  }
 
  public final static void
  exportJSONBoolean(
    Map    map,
    String  key,
    boolean  value )
 
    throws IOException
  {
    map.put( key, new Boolean( value ));
  }
 
  public static final String
  importURL(
    Map    map,
    String  key )
 
    throws IOException
  {
    String url = importString( map, key );
   
    if ( url != null ){
     
      url = url.trim();
     
      if ( url.length() == 0 ){
       
        url = null;
       
      }else{
       
        url = URLDecoder.decode( url, "UTF-8" );
      }
    }
   
    return( url );
  }
 
  public final static void
  exportURL(
    Map    map,
    String  key,
    String  value )
 
    throws IOException
  {
    exportString( map, key, value );
  }
 
  public final static void
  exportJSONURL(
    Map    map,
    String  key,
    String  value )
 
    throws IOException
  {
    exportJSONString( map, key, UrlUtils.encode( value ));
  }
 
  public static final String[]
  importStringArray(
    Map    map,
    String  key )
 
    throws IOException
  {
    List  list = (List)map.get( key );
   
    if ( list == null ){
     
      return( new String[0] );
    }
   
    String[]  res = new String[list.size()];
   
    for (int i=0;i<res.length;i++){
     
      Object obj = list.get(i);
     
      if ( obj instanceof String ){
       
        res[i] = (String)obj;
       
      }else if ( obj instanceof byte[] ){
       
        res[i] = new String((byte[])obj, "UTF-8" );
      }
    }
   
    return( res );
  }
 
  public static final void
  exportStringArray(
    Map      map,
    String    key,
    String[]  data )
 
    throws IOException
  {
    List  l = new ArrayList(data.length);
   
    map.put( key, l );
   
    for (int i=0;i<data.length;i++){
     
      l.add( data[i].getBytes( "UTF-8" ));
    }
  }
 
  public static final void
  exportJSONStringArray(
    Map      map,
    String    key,
    String[]  data )
 
    throws IOException
  {
    List  l = new JSONArray(data.length);
   
    map.put( key, l );
   
    for (int i=0;i<data.length;i++){
     
      l.add( data[i] );
    }
  }
 
  public static final void
  exportIntArray(
    Map      map,
    String    key,
    int[]    values )
  {
    if ( values == null ){
     
      return;
    }
   
    int  num = values.length;
   
    byte[]  bytes   = new byte[num*4];
    int    pos    = 0;
   
    for (int i=0;i<num;i++){
     
      int  v = values[i];
     
        bytes[pos++] = (byte)(v >>> 24);
        bytes[pos++] = (byte)(v >>> 16);
        bytes[pos++] = (byte)(v >>> 8);
        bytes[pos++] = (byte)(v);
    }
   
    map.put( key, bytes );
  }
 
  public static final int[]
  importIntArray(
    Map      map,
    String    key )
  {
    byte[]  bytes = (byte[])map.get( key );
   
    if ( bytes == null ){
     
      return( null );
    }
   
    int[]  values = new int[bytes.length/4];
   
    int  pos = 0;
   
    for (int i=0;i<values.length;i++){
     
      values[i]
        ((bytes[pos++]&0xff) << 24) +
        ((bytes[pos++]&0xff) << 16) +
        ((bytes[pos++]&0xff) << 8) +
        ((bytes[pos++]&0xff));
    }
   
    return( values );
  }
}
TOP

Related Classes of com.aelitis.azureus.util.ImportExportUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.