
org.emfjson.jackson.databind.ser.EMFSerializers Maven / Gradle / Ivy
/*
* Copyright (c) 2015 Guillaume Hillairet.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Guillaume Hillairet - initial API and implementation
*
*/
package org.emfjson.jackson.databind.ser;
import com.fasterxml.jackson.databind.BeanDescription;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializationConfig;
import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
import com.fasterxml.jackson.databind.ser.Serializers;
import com.fasterxml.jackson.databind.ser.std.CollectionSerializer;
import com.fasterxml.jackson.databind.type.CollectionType;
import com.fasterxml.jackson.databind.type.MapLikeType;
import org.eclipse.emf.common.util.EMap;
import org.eclipse.emf.common.util.Enumerator;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.impl.EEnumLiteralImpl;
import org.eclipse.emf.ecore.resource.Resource;
import org.emfjson.jackson.databind.deser.ReferenceEntry;
import org.emfjson.jackson.databind.property.EObjectPropertyMap;
import org.emfjson.jackson.databind.type.EcoreType;
import org.emfjson.jackson.module.EMFModule;
public class EMFSerializers extends Serializers.Base {
private final EObjectPropertyMap.Builder propertiesBuilder;
private final JsonSerializer _referenceSerializer;
private final JsonSerializer _resourceSerializer = new ResourceSerializer();
private final JsonSerializer> _dataTypeSerializer = new EDataTypeSerializer();
private final JsonSerializer> _mapSerializer = new EMapStringSerializer();
private final JsonSerializer> _enumeratorSerializer = new EnumeratorSerializer();
public EMFSerializers(EMFModule module) {
this.propertiesBuilder = EObjectPropertyMap.Builder.from(module, module.getFeatures());
this._referenceSerializer = module.getReferenceSerializer();
}
@Override
public JsonSerializer> findMapLikeSerializer(SerializationConfig config, MapLikeType type, BeanDescription beanDesc, JsonSerializer
© 2015 - 2025 Weber Informatics LLC | Privacy Policy