Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Logback: the reliable, generic, fast and flexible logging framework. Copyright (C) 1999-2011, QOS.ch. All rights reserved. This program and the accompanying materials are dual-licensed under either the terms of the Eclipse Public License v1.0 as published by the Eclipse Foundation or (per the licensee's choosing) under the terms of the GNU Lesser General Public License version 2.1 as published by the Free Software Foundation.
 
 package ch.qos.logback.core.joran.util;
 
 
Utility class which can convert string into objects.

Author(s):
Ceki Gülcü
 
 public class StringToObjectConverter {
 
   private static final Class[] STING_CLASS_PARAMETER = new Class[] { String.class };
 
   static public boolean canBeBuiltFromSimpleString(Class<?> parameterClass) {
     Package p = parameterClass.getPackage();
     if (parameterClass.isPrimitive()) {
       return true;
     } else if (p != null && "java.lang".equals(p.getName())) {
       return true;
     } else if (followsTheValueOfConvention(parameterClass)) {
       return true;
     } else if (parameterClass.isEnum()) {
       return true;
     } else if (isOfTypeCharset(parameterClass)) {
       return true;
     }
     return false;
   }

  
Convert val a String parameter to an object of a given type.
 
   @SuppressWarnings("unchecked")
   public static Object convertArg(ContextAware caString valClass<?> type) {
     if (val == null) {
       return null;
     }
     String v = val.trim();
     if (String.class.isAssignableFrom(type)) {
       return v;
     } else if (..isAssignableFrom(type)) {
       return new Integer(v);
     } else if (..isAssignableFrom(type)) {
       return new Long(v);
     } else if (..isAssignableFrom(type)) {
       return new Float(v);
     } else if (..isAssignableFrom(type)) {
       return new Double(v);
     } else if (..isAssignableFrom(type)) {
       if ("true".equalsIgnoreCase(v)) {
         return .;
       } else if ("false".equalsIgnoreCase(v)) {
         return .;
       }
     } else if (type.isEnum()) {
       return convertToEnum(cav, (Class<? extends Enum>) type);
     } else if (StringToObjectConverter.followsTheValueOfConvention(type)) {
       return convertByValueOfMethod(catypev);
     } else if (isOfTypeCharset(type)) {
       return convertToCharset(caval);
     }
 
     return null;
   }
 
   static private boolean isOfTypeCharset(Class<?> type) {
     return Charset.class.isAssignableFrom(type);
   }
 
   static private Charset convertToCharset(ContextAware caString val) {
     try {
       return Charset.forName(val);
     } catch (UnsupportedCharsetException e) {
       ca.addError("Failed to get charset [" + val + "]"e);
       return null;
     }
   }
 
   static private boolean followsTheValueOfConvention(Class<?> parameterClass) {
     try {
      Method valueOfMethod = parameterClass.getMethod(.,
          );
      int mod = valueOfMethod.getModifiers();
      if (Modifier.isStatic(mod)) {
        return true;
      }
    } catch (SecurityException e) {
      // nop
    } catch (NoSuchMethodException e) {
      // nop
    }
    return false;
  }
  private static Object convertByValueOfMethod(ContextAware caClass<?> type,
      String val) {
    try {
      Method valueOfMethod = type.getMethod(.,
          );
      return valueOfMethod.invoke(nullval);
    } catch (Exception e) {
      ca.addError("Failed to invoke " + .
          + "{} method in class [" + type.getName() + "] with value [" + val
          + "]");
      return null;
    }
  }
  @SuppressWarnings("unchecked")
  private static Object convertToEnum(ContextAware caString val,
      Class<? extends EnumenumType) {
    return Enum.valueOf(enumTypeval);
  }
    return false;
  }
New to GrepCode? Check out our FAQ X