private TypeSpecificConfigModel createLocalTypeSpecific( RepoType type, LocalRepoDescriptor descriptor) { MavenTypeSpecificConfigModel mavenModel = null; TypeSpecificConfigModel model = null; switch (type) { case Bower: model = new BowerTypeSpecificConfigModel(); break; case Docker: DockerTypeSpecificConfigModel dockerType = new DockerTypeSpecificConfigModel(); DockerApiVersion dockerApiVersion = descriptor.getDockerApiVersion(); if (dockerApiVersion != null) { dockerType.setDockerApiVersion(dockerApiVersion); } dockerType.setForceDockerAuthentication(descriptor.isForceDockerAuthentication()); model = dockerType; break; case NuGet: NugetTypeSpecificConfigModel nugetType = new NugetTypeSpecificConfigModel(); populateSharedNuGetValues(nugetType, descriptor); nugetType.setMaxUniqueSnapshots(descriptor.getMaxUniqueSnapshots()); model = nugetType; break; case Npm: model = new NpmTypeSpecificConfigModel(); break; case Pypi: model = new PypiTypeSpecificConfigModel(); break; case Vagrant: model = new VagrantTypeSpecificConfigModel(); break; case GitLfs: model = new GitLfsTypeSpecificConfigModel(); break; case Debian: DebTypeSpecificConfigModel debType = new DebTypeSpecificConfigModel(); debType.setTrivialLayout(descriptor.isDebianTrivialLayout()); model = debType; break; case YUM: YumTypeSpecificConfigModel yumType = new YumTypeSpecificConfigModel(); yumType.setMetadataFolderDepth(descriptor.getYumRootDepth()); yumType.setGroupFileNames(descriptor.getYumGroupFileNames()); yumType.setAutoCalculateYumMetadata(descriptor.isCalculateYumMetadata()); model = yumType; break; case Gems: model = new GemsTypeSpecificConfigModel(); break; case Generic: model = new GenericTypeSpecificConfigModel(); break; case Maven: mavenModel = new MavenTypeSpecificConfigModel(); break; case Gradle: mavenModel = new GradleTypeSpecificConfigModel(); break; case Ivy: mavenModel = new IvyTypeSpecificConfigModel(); break; case SBT: mavenModel = new SbtTypeSpecificConfigModel(); break; } if (model != null) { return model; } // We will get here only if our model is maven / gradle / ivy / sbt and we populate the values populateMavenLocalValues(mavenModel, descriptor); return mavenModel; }