package org.emfjson.cdo.sample; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.SerializerProvider; import org.eclipse.emf.cdo.CDOObject; import org.eclipse.emf.cdo.common.id.CDOID; import org.eclipse.emf.cdo.common.id.CDOIDUtil; import org.eclipse.emf.cdo.util.CDOUtil; import org.eclipse.emf.ecore.EObject; import org.emfjson.jackson.databind.ser.references.ReferenceSerializer; import java.io.IOException; public class CDOReferenceSerializer implements ReferenceSerializer { @Override public void serialize(EObject source, EObject value, JsonGenerator jg, SerializerProvider provider) throws IOException { final CDOObject cdoObject = CDOUtil.getCDOObject(value); final CDOID cdoid = CDOIDUtil.getCDOID(cdoObject); if (cdoid != null) { jg.writeNumber(CDOIDUtil.getLong(cdoid)); } else { jg.writeNull(); } } }