package com.redhat.ceylon.eclipse.code.editor; import java.util.Map; import org.eclipse.swt.dnd.ByteArrayTransfer; import org.eclipse.swt.dnd.TransferData; import com.redhat.ceylon.model.typechecker.model.Declaration; public class ImportsTransfer extends ByteArrayTransfer { public static final ImportsTransfer INSTANCE = new ImportsTransfer(); private static final String TYPE_NAME = "ceylon-source-with-imports-transfer-format" + System.currentTimeMillis(); private static final int TYPEID = registerType(TYPE_NAME); public static Map<Declaration,String> imports; @Override protected int[] getTypeIds() { return new int[] { TYPEID }; } @Override protected String[] getTypeNames() { return new String[] { TYPE_NAME }; } @SuppressWarnings({ "unchecked", "rawtypes" }) @Override protected void javaToNative(Object object, TransferData transferData) { if (isSupportedType(transferData)) { //TODO: serialize qualified names to NSStrings imports = (Map) object; super.javaToNative(new byte[1], transferData); } } @Override protected Map<Declaration,String> nativeToJava(TransferData transferData) { if (isSupportedType(transferData)) { //TODO: unserialize qualified names from NSStrings return imports; } else { return null; } } }