private TypeSpecificConfigModel createRemoteTypeSpecific( RepoType type, HttpRepoDescriptor descriptor) { MavenTypeSpecificConfigModel mavenModel = null; TypeSpecificConfigModel model = null; switch (type) { case Maven: mavenModel = new MavenTypeSpecificConfigModel(); break; case Gradle: mavenModel = new GradleTypeSpecificConfigModel(); break; case Ivy: mavenModel = new IvyTypeSpecificConfigModel(); break; case SBT: mavenModel = new SbtTypeSpecificConfigModel(); break; case P2: mavenModel = new P2TypeSpecificConfigModel(); break; case Debian: DebTypeSpecificConfigModel debType = new DebTypeSpecificConfigModel(); debType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems()); model = debType; break; case Docker: DockerTypeSpecificConfigModel dockerType = new DockerTypeSpecificConfigModel(); dockerType.setEnableTokenAuthentication(descriptor.isEnableTokenAuthentication()); dockerType.setForceDockerAuthentication(descriptor.isForceDockerAuthentication()); dockerType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems()); model = dockerType; break; case NuGet: NugetTypeSpecificConfigModel nugetType = new NugetTypeSpecificConfigModel(); populateSharedNuGetValues(nugetType, descriptor); NuGetConfiguration nuget = descriptor.getNuget(); if (nuget != null) { nugetType.setDownloadContextPath(nuget.getDownloadContextPath()); nugetType.setFeedContextPath(nuget.getFeedContextPath()); } nugetType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems()); model = nugetType; break; case Npm: NpmTypeSpecificConfigModel npmType = new NpmTypeSpecificConfigModel(); npmType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems()); model = npmType; break; case Pypi: PypiTypeSpecificConfigModel pypiType = new PypiTypeSpecificConfigModel(); pypiType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems()); model = pypiType; break; case VCS: VcsTypeSpecificConfigModel vcsType = new VcsTypeSpecificConfigModel(); populateVcsValues(vcsType, descriptor); model = vcsType; break; case Bower: BowerTypeSpecificConfigModel bowerType = new BowerTypeSpecificConfigModel(); populateVcsValues(bowerType, descriptor); BowerConfiguration bowerConfiguration = descriptor.getBower(); if (bowerConfiguration != null) { bowerType.setRegistryUrl(bowerConfiguration.getBowerRegistryUrl()); } model = bowerType; break; case Gems: GemsTypeSpecificConfigModel gemsType = new GemsTypeSpecificConfigModel(); gemsType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems()); model = gemsType; break; case Generic: GenericTypeSpecificConfigModel genericType = new GenericTypeSpecificConfigModel(); genericType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems()); model = genericType; break; case YUM: YumTypeSpecificConfigModel yumType = new YumTypeSpecificConfigModel(); yumType.setListRemoteFolderItems(descriptor.isListRemoteFolderItems()); yumType.setAutoCalculateYumMetadata(null); yumType.setMetadataFolderDepth(null); yumType.setGroupFileNames(null); model = yumType; break; } if (model != null) { return model; } populateMavenRemoteValues(mavenModel, descriptor); return mavenModel; }