package fr.opensagres.nosql.ide.ui.extensions;
import fr.opensagres.nosql.ide.core.extensions.ICommandIdProvider;
import fr.opensagres.nosql.ide.core.extensions.IServerType;
import fr.opensagres.nosql.ide.core.model.ITreeSimpleNode;
import fr.opensagres.nosql.ide.core.model.NodeTypeConstants;
import fr.opensagres.nosql.ide.core.utils.StringUtils;
import fr.opensagres.nosql.ide.ui.handlers.wizards.database.NewDatabaseWizardHandler;
public abstract class AbstractCommandIdProvider implements ICommandIdProvider {
public String getCommmandId(int type, Object element) {
if (element instanceof IServerType) {
return getServerTypeCommandId(type, (IServerType) element);
} else if (element instanceof ITreeSimpleNode) {
String commandId = getCommmandId(type, (ITreeSimpleNode) element);
if (StringUtils.isNotEmpty(commandId)) {
return commandId;
}
return getGenericCommandId(type, (ITreeSimpleNode) element);
}
return null;
}
protected abstract String getServerTypeCommandId(int type,
IServerType element);
private String getGenericCommandId(int type, ITreeSimpleNode element) {
switch (element.getType()) {
case NodeTypeConstants.Server:
switch (type) {
case OPEN_NEW_WIZARD:
return NewDatabaseWizardHandler.ID;
}
}
return null;
}
protected abstract String getCommmandId(int type, ITreeSimpleNode element);
}