/*
* Copyright 2017 Hewlett-Packard Enterprise Development Company, L.P.
* Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License.
*/
package com.hp.autonomy.frontend.find.hod.web;
import com.hp.autonomy.frontend.configuration.ConfigService;
import com.hp.autonomy.frontend.configuration.authentication.AuthenticationConfig;
import com.hp.autonomy.frontend.find.core.export.service.MetadataNode;
import com.hp.autonomy.frontend.find.core.web.ControllerUtils;
import com.hp.autonomy.frontend.find.core.web.FindController;
import com.hp.autonomy.frontend.find.core.web.MvcConstants;
import com.hp.autonomy.frontend.find.hod.configuration.HodFindConfig;
import com.hp.autonomy.frontend.find.hod.configuration.HodFindConfig.HodFindConfigBuilder;
import com.hp.autonomy.frontend.find.hod.export.service.HodMetadataNode;
import com.hp.autonomy.searchcomponents.core.fields.FieldDisplayNameGenerator;
import com.hpe.bigdata.frontend.spring.authentication.AuthenticationInformationRetriever;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import java.security.Principal;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@Controller
public class HodFindController extends FindController<HodFindConfig, HodFindConfigBuilder> {
@SuppressWarnings("TypeMayBeWeakened")
@Autowired
public HodFindController(final ControllerUtils controllerUtils,
final AuthenticationInformationRetriever<?, ? extends Principal> authenticationInformationRetriever,
final ConfigService<? extends AuthenticationConfig<?>> authenticationConfigService,
final ConfigService<HodFindConfig> configService,
final FieldDisplayNameGenerator fieldDisplayNameGenerator) {
super(controllerUtils, authenticationInformationRetriever, authenticationConfigService, configService, fieldDisplayNameGenerator);
}
@Override
protected Map<String, Object> getPublicConfig() {
final HodFindConfig config = configService.getConfig();
return Collections.singletonMap(MvcConstants.PUBLIC_INDEXES_ENABLED.value(), config.getHod().getPublicIndexesEnabled());
}
@Override
protected List<MetadataNode> getMetadataNodes() {
return Arrays.asList(HodMetadataNode.values());
}
}