All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.infinispan.commons.configuration.attributes.ClassAttributeSerializer Maven / Gradle / Ivy

package org.infinispan.commons.configuration.attributes;

import org.infinispan.commons.configuration.ConfigurationBuilderInfo;
import org.infinispan.commons.configuration.ConfigurationInfo;
import org.infinispan.commons.util.Util;

/**
 * Attribute serializer that converters an instance to its class name when serializing and the other way around when deserializing.
 *
 * @since 10.0
 */
public class ClassAttributeSerializer extends AttributeSerializer {

   public static final AttributeSerializer INSTANCE = new ClassAttributeSerializer<>();

   @Override
   public Object readAttributeValue(String enclosingElement, AttributeDefinition attributeDefinition, Object attrValue, B builderInfo) {
      return Util.getInstance(attrValue.toString(), builderInfo.getClass().getClassLoader());
   }

   @Override
   public Object getSerializationValue(Attribute attribute, U configurationElement) {
      T attributeValue = attribute.get();
      if (attributeValue == null) {
         return null;
      }
      return attributeValue.getClass().getName();
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy