package org.eclipse.ui.examples.adapterservice.snippets.adapter;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.core.runtime.IAdapterFactory;
public class IDAssigner implements IAdapterFactory {
int currentId;
Map<Object, String> assignedIds = new HashMap<Object, String>(); // Object->its
// id
public IDAssigner() {
currentId = 1000;
}
@Override
@SuppressWarnings("rawtypes")
public Object getAdapter(final Object adaptableObject, Class adapterType) {
if (adapterType.equals(ThingWithId.class)) {
if (!assignedIds.containsKey(adaptableObject)) {
String id = Integer.toString(currentId);
currentId++;
assignedIds.put(adaptableObject, id);
}
return new ThingWithId() {
@Override
public String getUniqueId() {
return assignedIds.get(adaptableObject);
}
};
}
return null;
}
@Override
@SuppressWarnings("rawtypes")
public Class[] getAdapterList() {
return new Class[] { ThingWithId.class };
}
}