/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.start.validators.internal; import java.util.Map; import de.rcenvironment.core.configuration.ConfigurationSegment; import de.rcenvironment.core.configuration.ConfigurationService; import de.rcenvironment.core.start.common.validation.api.InstanceValidationResult; import de.rcenvironment.core.start.common.validation.api.InstanceValidationResultFactory; import de.rcenvironment.core.start.common.validation.spi.DefaultInstanceValidator; import de.rcenvironment.core.utils.common.StringUtils; /** * Ensures that the Connection configuration values are valid. * * @author Goekhan Guerkan */ public class HostConfigurationValidator extends DefaultInstanceValidator { /** * Constant. */ private static final String HOST = "host"; /** * The invalid IP to check. */ private static final String INVALID_IP = "0.0.0.0"; private static final String VALIDATIONNAME = "Connection configuration (host IP check)"; private ConfigurationService configurationService; @Override public InstanceValidationResult validate() { ConfigurationSegment configurationSegment = configurationService.getConfigurationSegment("network"); Map<String, ConfigurationSegment> connectionElements = configurationSegment.listElements("connections"); for (Map.Entry<String, ConfigurationSegment> entry : connectionElements.entrySet()) { ConfigurationSegment segment = entry.getValue(); final String hostString = segment.getString(HOST); if (hostString == null) { continue; // this case is handled within the parameter parsing code; this connection will be ignored } if (hostString.equals(INVALID_IP)) { String message = StringUtils.format(Messages.invalidIPconfig, entry.getKey()); return InstanceValidationResultFactory.createResultForFailureWhichRequiresInstanceShutdown( VALIDATIONNAME, message, message); } } return InstanceValidationResultFactory.createResultForPassed(VALIDATIONNAME); } protected void bindConfigurationService(ConfigurationService configIn) { configurationService = configIn; } }