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

de.javakaffee.kryoserializers.RegexSerializer Maven / Gradle / Ivy

package de.javakaffee.kryoserializers;

import java.util.regex.Pattern;

import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.Serializer;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;

/**
 * Kryo {@link Serializer} for regex {@link Pattern}s.
 * 
 * @author Martin Grotzke
 * @author serverperformance
 */
public class RegexSerializer extends Serializer {

    public RegexSerializer() {
        setImmutable(true);
    }

    @Override
    public void write(final Kryo kryo, final Output output, final Pattern pattern) {
        output.writeString(pattern.pattern());
        output.writeInt(pattern.flags(), true);
    }

    @Override
    public Pattern read(final Kryo kryo, final Input input, final Class patternClass) {
        String regex = input.readString();
        int flags = input.readInt(true);
        return Pattern.compile(regex, flags);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy