package com.l7tech.policy.code.transformer;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class BasicObject2StringFieldTransformer extends FieldTransformer {
   private final Constructor<?> b;
   private Method c;

   public BasicObject2StringFieldTransformer(Class<?> var1) {
      super(BeanTypeCategory.BASIC_OBJECT_STRING);

      try {
         this.b = var1.getConstructor(String.class);
      } catch (Exception var3) {
         throw new IllegalArgumentException(var3);
      }
   }

   public BasicObject2StringFieldTransformer(Class<?> var1, String var2) {
      super(BeanTypeCategory.BASIC_OBJECT_STRING);

      try {
         if (var2 != null) {
            this.b = null;
            this.c = var1.getDeclaredMethod(var2, String.class);
         } else {
            this.b = var1.getConstructor(String.class);
         }
      } catch (Exception var4) {
         throw new IllegalArgumentException(var4);
      }
   }

   @Override
   public Object transformToSerialize(Object var1) {
      return var1.toString();
   }

   @Override
   public Object transformToDeserialize(Object var1) {
      try {
         try {
            if (this.b != null) {
               return this.b.newInstance(var1);
            }
         } catch (Exception var3) {
            throw a(var3);
         }

         return this.c.invoke(null, var1);
      } catch (Exception var4) {
         throw new IllegalArgumentException(var4);
      }
   }

   private static Exception a(Exception var0) {
      return var0;
   }
}
