package org.netbeans.gradle.model.internal; import org.gradle.tooling.BuildController; import org.netbeans.gradle.model.BuildInfoBuilder; import org.netbeans.gradle.model.api.ProjectInfoBuilder2; import org.netbeans.gradle.model.util.BuilderUtils; /** * These builders are for testing purposes only. That is, they must be in the * source packages (instead of test packages) so tests can pass them objects * which can only be deserialized when having the test classes on the classpath * while the builders themselves are always deserializable. */ public final class ConstBuilders { public static ProjectInfoBuilder2<Object> constProjectInfoBuilder(Object result) { return new ConstProjectInfoBuilder(result); } public static BuildInfoBuilder<Object> constBuildInfoBuilder(Object result) { return new ConstBuildInfoBuilder(result); } private static final class ConstProjectInfoBuilder implements ProjectInfoBuilder2<Object> { private static final long serialVersionUID = 1L; private final Object result; public ConstProjectInfoBuilder(Object result) { if (result == null) throw new NullPointerException("result"); this.result = result; } public Object getProjectInfo(Object project) { return result; } public String getName() { return BuilderUtils.getNameForGenericBuilder(this, result.toString()); } } private static final class ConstBuildInfoBuilder implements BuildInfoBuilder<Object> { private static final long serialVersionUID = 1L; private final Object result; public ConstBuildInfoBuilder(Object result) { if (result == null) throw new NullPointerException("result"); this.result = result; } public Object getInfo(BuildController controller) { return result; } public String getName() { return BuilderUtils.getNameForGenericBuilder(this, result.toString()); } } private ConstBuilders() { throw new AssertionError(); } }