001/**
002 * Copyright (c) 2015-2022, Michael Yang 杨福海 (fuhai999@gmail.com).
003 * <p>
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 * <p>
008 * http://www.apache.org/licenses/LICENSE-2.0
009 * <p>
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package io.jboot.components.serializer;
017
018import com.jfinal.log.Log;
019import org.nustaq.serialization.FSTConfiguration;
020
021
022public class FstSerializer implements JbootSerializer {
023
024
025    private static final Log LOG = Log.getLog(FstSerializer.class);
026    private static FSTConfiguration fst = FSTConfiguration.createDefaultConfiguration();
027
028    @Override
029    public byte[] serialize(Object obj) {
030        if (obj == null) {
031            return null;
032        }
033        return fst.asByteArray(obj);
034    }
035
036    @Override
037    public Object deserialize(byte[] bytes) {
038        if (bytes == null || bytes.length == 0) {
039            return null;
040        }
041        try {
042            return fst.asObject(bytes);
043        } catch (Exception ex) {
044            LOG.error("FstSerializer deserialize fail!", ex);
045        }
046        return null;
047    }
048
049
050}