Analysis { public Builder copy() { return builder() .vcfPath(vcfPath) .genomeAssembly(genomeAssembly) .pedigree(pedigree) .probandSampleName(probandSampleName) .hpoIds(hpoIds) .inheritanceModeOptions(inheritanceModeOptions) .analysisMode(analysisMode) .frequencySources(frequencySources) .pathogenicitySources(pathogenicitySources) .steps(analysisSteps); } private  Analysis(Builder builder); Path getVcfPath(); GenomeAssembly getGenomeAssembly(); Pedigree getPedigree(); String getProbandSampleName(); InheritanceModeOptions getInheritanceModeOptions(); List<String> getHpoIds(); AnalysisMode getAnalysisMode(); Set<FrequencySource> getFrequencySources(); Set<PathogenicitySource> getPathogenicitySources(); List<AnalysisStep> getAnalysisSteps(); @JsonIgnore PriorityType getMainPrioritiserType(); @JsonIgnore List<List<AnalysisStep>> getAnalysisStepsGroupedByFunction(); @JsonCreator static Builder builder(); Builder copy(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }
@Test public void testCopyReturnsBuilder() { Analysis.Builder analysisBuilder = DEFAULT_ANALYSIS.copy(); Analysis copy = analysisBuilder.build(); assertThat(copy, equalTo(DEFAULT_ANALYSIS)); }
@Test public void testCopyBuilderCanAddNewAnalysisStep() { Analysis copy = DEFAULT_ANALYSIS.copy() .addStep(new NoneTypePrioritiser()) .build(); }