package org.bundlemaker.core.project.internal.gson; import java.lang.reflect.Type; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; import com.google.gson.JsonElement; import com.google.gson.JsonParseException; import com.google.gson.JsonPrimitive; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; /** * <p> * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) */ public class IPathDeserializer implements JsonDeserializer<IPath>, JsonSerializer<IPath> { /** * {@inheritDoc} */ @Override public JsonElement serialize(IPath path, Type type, JsonSerializationContext context) { String portableString = path.toPortableString(); return new JsonPrimitive(portableString); } /** * {@inheritDoc} */ @Override public IPath deserialize(JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException { JsonPrimitive asJsonPrimitive = element.getAsJsonPrimitive(); String asString = asJsonPrimitive.getAsString(); IPath path = Path.fromPortableString(asString); return path; } }