package com.l7tech.policy.code.transformer;

import com.l7tech.util.HexUtils;
import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64EncodedStringFieldTransformer extends FieldTransformer {
   public Base64EncodedStringFieldTransformer() {
      super(BeanTypeCategory.BASE64_ENCODED_STRING);
   }

   @Override
   public Object transformToSerialize(Object var1) {
      try {
         return new String(Base64.getDecoder().decode(this.a(var1)), StandardCharsets.UTF_8);
      } catch (IllegalArgumentException var3) {
         return new String(HexUtils.decodeBase64(var1.toString()), StandardCharsets.UTF_8);
      }
   }

   @Override
   public Object transformToDeserialize(Object var1) {
      return new String(Base64.getEncoder().encode(this.a(var1)), StandardCharsets.UTF_8);
   }

   private byte[] a(Object var1) {
      return var1.toString().getBytes(StandardCharsets.UTF_8);
   }
}
