@@ -0,0 +1,3270 @@
+package org.fakekoji.jobmanager;%0A%0Aimport org.fakekoji.jobmanager.model.BuildJob;%0Aimport org.fakekoji.jobmanager.model.Job;%0Aimport org.fakekoji.jobmanager.model.Product;%0Aimport org.fakekoji.jobmanager.model.PullJob;%0Aimport org.fakekoji.jobmanager.model.TestJob;%0Aimport org.fakekoji.model.JDKVersion;%0A%0Apublic class ProductBumper extends JobModifier %7B%0A    private final JDKVersion fromJDKVersion;%0A    private final JDKVersion toJDKVersion;%0A    private final String fromPackageName;%0A    private final String toPackageName;%0A%0A    public ProductBumper(%0A            final String fromPackageName,%0A            final String toPackageName,%0A            final JDKVersion fromJDKVersion,%0A            final JDKVersion toJDKVersion%0A    ) %7B%0A        this.fromPackageName = fromPackageName;%0A        this.toPackageName = toPackageName;%0A        this.fromJDKVersion = fromJDKVersion;%0A        this.toJDKVersion = toJDKVersion;%0A    %7D%0A%0A    private boolean shouldJobPass(Job job) %7B%0A        return job.getProduct().getPackageName().equals(fromPackageName) && job.getJdkVersion().equals(fromJDKVersion);%0A    %7D%0A%0A    @Override%0A    boolean shouldPass(PullJob job) %7B%0A        return this.shouldJobPass(job);%0A    %7D%0A%0A    @Override%0A    boolean shouldPass(BuildJob job) %7B%0A        return this.shouldJobPass(job);%0A    %7D%0A%0A    @Override%0A    boolean shouldPass(TestJob job) %7B%0A        return this.shouldJobPass(job);%0A    %7D%0A%0A    @Override%0A    PullJob transform(PullJob job) %7B%0A        return new PullJob(%0A                job.getProjectName(),%0A                job.getRepoUrl(),%0A                new Product(%0A                        toJDKVersion.getId(),%0A                        toPackageName%0A                ),%0A                toJDKVersion,%0A                job.getRepositoriesRoot(),%0A                job.getScriptsRoot(),%0A                job.getProjectVariables()%0A        );%0A    %7D%0A%0A    @Override%0A    BuildJob transform(BuildJob job) %7B%0A        return new BuildJob(%0A                job.getPlatformProvider(),%0A                job.getProjectName(),%0A                new Product(%0A                        toJDKVersion.getId(),%0A                        toPackageName%0A                ),%0A                toJDKVersion,%0A                job.getBuildProviders(),%0A                job.getTask(),%0A                job.getPlatform(),%0A                job.getVariants(),%0A                job.getScriptsRoot(),%0A                job.getProjectVariables()%0A        );%0A    %7D%0A%0A    @Override%0A    TestJob transform(TestJob job) %7B%0A        return new TestJob(%0A                job.getPlatformProvider(),%0A                job.getProjectName(),%0A                job.getProjectType(),%0A                new Product(%0A                        toJDKVersion.getId(),%0A                        toPackageName%0A                ),%0A                toJDKVersion,%0A                job.getBuildProviders(),%0A                job.getTask(),%0A                job.getPlatform(),%0A                job.getVariants(),%0A                job.getBuildPlatform(),%0A                job.getBuildPlatformProvider(),%0A                job.getBuildTask(),%0A                job.getBuildVariants(),%0A                job.getProjectSubpackageBlacklist(),%0A                job.getProjectSubpackageWhitelist(),%0A                job.getScriptsRoot(),%0A                job.getProjectVariables()%0A        );%0A    %7D%0A%7D%0A

Create ProductBumper