Skip to content

Commit

Permalink
Make createProblemBuilder static
Browse files Browse the repository at this point in the history
  • Loading branch information
reinsch82 committed Apr 18, 2024
1 parent 685b52f commit 4233411
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,14 @@
package org.gradle.internal.reflect;

import org.gradle.api.Action;
import org.gradle.api.problems.internal.DefaultProblemReporter;
import org.gradle.api.problems.internal.InternalProblemReporter;
import org.gradle.api.problems.internal.InternalProblems;
import org.gradle.api.problems.internal.DefaultProblemBuilder;
import org.gradle.api.problems.internal.Problem;
import org.gradle.api.problems.internal.ProblemsProgressEventEmitterHolder;
import org.gradle.internal.reflect.validation.DefaultTypeAwareProblemBuilder;
import org.gradle.internal.reflect.validation.TypeAwareProblemBuilder;
import org.gradle.internal.reflect.validation.TypeValidationContext;
import org.gradle.plugin.use.PluginId;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.Optional;
import java.util.function.Supplier;
Expand All @@ -47,11 +45,7 @@ public ProblemRecordingTypeValidationContext(

@Override
public void visitTypeProblem(Action<? super TypeAwareProblemBuilder> problemSpec) {
InternalProblems problems = ProblemsProgressEventEmitterHolder.get();
InternalProblemReporter reporter = problems.getInternalReporter();
DefaultTypeAwareProblemBuilder problemBuilder = new DefaultTypeAwareProblemBuilder(((DefaultProblemReporter) reporter).createProblemBuilder());
problemSpec.execute(problemBuilder);
recordProblem(problemBuilder.build());
recordProblem(getDefaultTypeAwareProblemBuilder(problemSpec).build());
}

private Optional<PluginId> pluginId() {
Expand All @@ -61,15 +55,19 @@ private Optional<PluginId> pluginId() {

@Override
public void visitPropertyProblem(Action<? super TypeAwareProblemBuilder> problemSpec) {
InternalProblemReporter reporter = ProblemsProgressEventEmitterHolder.get().getInternalReporter();
DefaultTypeAwareProblemBuilder problemBuilder = new DefaultTypeAwareProblemBuilder(((DefaultProblemReporter) reporter).createProblemBuilder());
problemSpec.execute(problemBuilder);
DefaultTypeAwareProblemBuilder problemBuilder = getDefaultTypeAwareProblemBuilder(problemSpec);
problemBuilder.withAnnotationType(rootType);
pluginId()
.map(PluginId::getId)
.ifPresent(id -> problemBuilder.additionalData(PLUGIN_ID, id));
recordProblem(problemBuilder.build());
}

private static @Nonnull DefaultTypeAwareProblemBuilder getDefaultTypeAwareProblemBuilder(Action<? super TypeAwareProblemBuilder> problemSpec) {
DefaultTypeAwareProblemBuilder problemBuilder = new DefaultTypeAwareProblemBuilder(new DefaultProblemBuilder());
problemSpec.execute(problemBuilder);
return problemBuilder;
}

abstract protected void recordProblem(Problem problem);
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,14 @@ public DefaultProblemReporter(ProblemEmitter emitter, List<ProblemTransformer> t

@Override
public void reporting(Action<ProblemSpec> spec) {
DefaultProblemBuilder problemBuilder = createProblemBuilder();
DefaultProblemBuilder problemBuilder = new DefaultProblemBuilder();
spec.execute(problemBuilder);
report(problemBuilder.build());
}

@Override
public RuntimeException throwing(Action<ProblemSpec> spec) {
DefaultProblemBuilder problemBuilder = createProblemBuilder();
DefaultProblemBuilder problemBuilder = new DefaultProblemBuilder();
spec.execute(problemBuilder);
Problem problem = problemBuilder.build();
RuntimeException exception = problem.getException();
Expand All @@ -62,25 +62,19 @@ public RuntimeException throwError(RuntimeException exception, Problem problem)

@Override
public RuntimeException rethrowing(RuntimeException e, Action<ProblemSpec> spec) {
DefaultProblemBuilder problemBuilder = createProblemBuilder();
DefaultProblemBuilder problemBuilder = new DefaultProblemBuilder();
spec.execute(problemBuilder);
problemBuilder.withException(e);
throw throwError(e, problemBuilder.build());
}

@Override
public Problem create(Action<InternalProblemSpec> action) {
DefaultProblemBuilder defaultProblemBuilder = createProblemBuilder();
DefaultProblemBuilder defaultProblemBuilder = new DefaultProblemBuilder();
action.execute(defaultProblemBuilder);
return defaultProblemBuilder.build();
}

// This method is only public to integrate with the existing task validation framework.
// We should rework this integration and this method private.
public DefaultProblemBuilder createProblemBuilder() {
return new DefaultProblemBuilder();
}

private Problem transformProblem(Problem problem, OperationIdentifier id) {
for (ProblemTransformer transformer : transformers) {
problem = transformer.transform(problem, id);
Expand Down

0 comments on commit 4233411

Please sign in to comment.