public Map<String,String> prepareInstallProperties(@Nullable String configFile,@Nullable Path binaries,InstallType installType,Artifact artifact,Version version2Install,boolean isInstall) throws IOException {
switch (artifact.getName()) {
case InstallManagerArtifact.NAME:
    return Collections.emptyMap();
case CDECArtifact.NAME:
  Map<String,String> properties;
if (isInstall) {
  if (binaries != null) {
    properties=loadConfigProperties(binaries,installType);
  }
 else   if (configFile != null) {
    properties=loadConfigProperties(configFile);
  }
 else {
    properties=loadCodenvyDefaultProperties(version2Install,installType);
  }
  if (installType == InstallType.MULTI_SERVER) {
    setupSSHAccessProperties(properties);
  }
  setupSshKeyParts(properties);
  setupProxyProperties(properties);
}
 else {
  Map<String,String> newProperties;
  if (binaries != null) {
    newProperties=loadConfigProperties(binaries,installType);
  }
 else {
    Optional<Version> installVersion=artifact.getInstalledVersion();
    if (!installVersion.isPresent()) {
      throw new IOException("It is impossible to obtain installed version.");
    }
    newProperties=configFile != null ? loadConfigProperties(configFile) : loadCodenvyDefaultProperties(version2Install,installType);
  }
  properties=merge(loadInstalledCodenvyProperties(installType),newProperties);
  properties.put(Config.VERSION,version2Install.toString());
  if (installType == InstallType.MULTI_SERVER) {
    properties.put(Config.PUPPET_MASTER_HOST_NAME,fetchMasterHostName());
  }
}
return properties;
default :
throw new ArtifactNotFoundException(artifact);
}
}

public Map < String , String > prepareInstallProperties ( @ Nullable String configFile , @ Nullable Path binaries , InstallType installType , Artifact artifact , Version version2Install , boolean isInstall ) throws IOException { switch ( artifact . getName ( ) ) { case InstallManagerArtifact . NAME : return Collections . emptyMap ( ) ; case CDECArtifact . NAME : Map < String , String > properties ; if ( isInstall ) { if ( binaries != null ) { properties = loadConfigProperties ( binaries , installType ) ; } else if ( configFile != null ) { properties = loadConfigProperties ( configFile ) ; } else { properties = loadCodenvyDefaultProperties ( version2Install , installType ) ; } if ( installType == InstallType . MULTI_SERVER ) { setupSSHAccessProperties ( properties ) ; } setupSshKeyParts ( properties ) ; setupProxyProperties ( properties ) ; } else { Map < String , String > newProperties ; if ( binaries != null ) { newProperties = loadConfigProperties ( binaries , installType ) ; } else { Optional < Version > installVersion = artifact . getInstalledVersion ( ) ; if ( ! installVersion . isPresent ( ) ) { throw new IOException ( "It is impossible to obtain installed version." ) ; } newProperties = configFile != null ? loadConfigProperties ( configFile ) : loadCodenvyDefaultProperties ( version2Install , installType ) ; } properties = merge ( loadInstalledCodenvyProperties ( installType ) , newProperties ) ; properties . put ( Config . VERSION , version2Install . toString ( ) ) ; if ( installType == InstallType . MULTI_SERVER ) { properties . put ( Config . PUPPET_MASTER_HOST_NAME , fetchMasterHostName ( ) ) ; } } return properties ; default : throw new ArtifactNotFoundException ( artifact ) ; } }
prepares installation properties depending on artifact and installation type .
