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

org.terracotta.modules.ehcache.store.ValueModeHandlerSerialization Maven / Gradle / Ivy

/*
 * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
 */
package org.terracotta.modules.ehcache.store;

import net.sf.ehcache.Element;
import net.sf.ehcache.ElementData;
import net.sf.ehcache.EternalElementData;
import net.sf.ehcache.NonEternalElementData;

import org.terracotta.modules.ehcache.collections.SerializationHelper;

import java.io.IOException;
import java.io.Serializable;

public class ValueModeHandlerSerialization implements ValueModeHandler {

  @Override
  public Object getRealKeyObject(String portableKey) {
    try {
      return SerializationHelper.deserializeFromString(portableKey, null);
    } catch (IOException e) {
      return null;
    } catch (ClassNotFoundException e) {
      return null;
    }
  }

  @Override
  public Object getRealKeyObject(String portableKey, ClassLoader loader) {
    try {
      return SerializationHelper.deserializeFromString(portableKey, loader);
    } catch (IOException e) {
      return null;
    } catch (ClassNotFoundException e) {
      return null;
    }
  }

  @Override
  public String createPortableKey(Object key) throws IOException {
    return SerializationHelper.serializeToString(key);
  }

  @Override
  public ElementData createElementData(Element element) {
    if(element.isEternal()) {
      return new EternalElementData(element);
    } else {
      return new NonEternalElementData(element);
    }
  }

  @Override
  public Element createElement(Object key, Serializable value) {
    return value == null ? null : ((ElementData) value).createElement(key);
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy