package alien4cloud.ui.form;
import java.util.Map;
import org.elasticsearch.mapping.MappingBuilder;
import org.springframework.stereotype.Component;
import org.alien4cloud.tosca.model.types.AbstractToscaType;
import alien4cloud.dao.ElasticSearchDAO;
import alien4cloud.ui.form.exception.FormDescriptorGenerationException;
import com.google.common.collect.Maps;
@Component
public class Alien4CloudFormSuggestionDescriptorGenerator implements FormSuggestionDescriptorGenerator {
private static final String TYPE_KEY = "_type";
private static final String PATH_KEY = "_path";
private static final String INDEX_KEY = "_index";
@Override
public Map<String, Object> generateSuggestionDescriptor(Class<?> fromClass, String path) {
String index;
if (AbstractToscaType.class.isAssignableFrom(fromClass)) {
index = ElasticSearchDAO.TOSCA_ELEMENT_INDEX;
} else {
throw new FormDescriptorGenerationException("Unsupported suggestion fromClass [" + fromClass.getName() + "]");
}
String type = MappingBuilder.indexTypeFromClass(fromClass);
Map<String, Object> suggestionMetaData = Maps.newHashMap();
suggestionMetaData.put(INDEX_KEY, index);
suggestionMetaData.put(TYPE_KEY, type);
suggestionMetaData.put(PATH_KEY, path);
return suggestionMetaData;
}
}