OpenRewrite — рецепт шаблона рефастера недоступен для обнаружения и использования.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 OpenRewrite — рецепт шаблона рефастера недоступен для обнаружения и использования.

Сообщение Anonymous »

Понятно, что OpenRewrite имеет 3 основных метода создания рецептов: декларативный, рефастер и императивный. Речь идет о методе Refaster.
Я создал следующий класс шаблона Refaster для простого изменения кода — обеспечения того, чтобы деление происходило после умножения. (Просто пример для проверки возможностей OpenRewrite)
package com.self.openrewrite_lib.refaster;

import com.google.errorprone.refaster.annotation.AfterTemplate;
import com.google.errorprone.refaster.annotation.BeforeTemplate;
import org.openrewrite.java.template.RecipeDescriptor;

@RecipeDescriptor(name = "Multiply then divide formatter", description = "Ensures that divisions occur after multiplication for accuracy.")
public class MultiplyThenDivide {
@BeforeTemplate
public double divideThenMultiply(double original, double divisor, double multiplier) {
return original / divisor * multiplier;
}
@AfterTemplate
public double multiplyThenDivide(double original, double divisor, double multiplier) {
return original * multiplier / divisor;
}
}

После запуска компиляции mvn в терминале класс Recipe создается в каталоге target/generated-sources/annotations/com/self/openrewrite_lib/refaster .
package com.self.openrewrite_lib.refaster;

import org.jspecify.annotations.NullMarked;
import org.openrewrite.ExecutionContext;
import org.openrewrite.Preconditions;
import org.openrewrite.Recipe;
import org.openrewrite.TreeVisitor;
import org.openrewrite.java.JavaParser;
import org.openrewrite.java.JavaTemplate;
import org.openrewrite.java.JavaVisitor;
import org.openrewrite.java.search.*;
import org.openrewrite.java.template.Primitive;
import org.openrewrite.java.template.function.*;
import org.openrewrite.java.template.internal.AbstractRefasterJavaVisitor;
import org.openrewrite.java.tree.*;

import javax.annotation.Generated;
import java.util.*;

import static org.openrewrite.java.template.internal.AbstractRefasterJavaVisitor.EmbeddingOption.*;

/**

* OpenRewrite recipe created for Refaster template {@code MultiplyThenDivide}.
*/
@SuppressWarnings("all")
@NullMarked
@Generated("org.openrewrite.java.template.processor.RefasterTemplateProcessor")
public class MultiplyThenDivideRecipe extends Recipe {

/**

* Instantiates a new instance.
*/
public MultiplyThenDivideRecipe() {}

@Override
public String getDisplayName() {
return "Multiply then divide formatter";
}

@Override
public String getDescription() {
return "Ensures that divisions occur after multiplication for accuracy.";
}

@Override
public TreeVisitor\

4.0.0

org.springframework.boot
spring-boot-starter-parent
3.3.4


com.self
openrewrite-lib
0.0.1-SNAPSHOT
openrewrite-lib
Demo project for Spring Boot














1.8
1.8
17





org.openrewrite.recipe
rewrite-recipe-bom
2.21.1
pom
import






org.springframework.boot
spring-boot-starter



org.openrewrite
rewrite-java
compile


org.openrewrite
rewrite-java-17
runtime



org.openrewrite
rewrite-yaml
compile



org.openrewrite
rewrite-templating


com.google.errorprone
error_prone_core
2.34.0
provided


com.google.auto.service
auto-service-annotations





javax.annotation
javax.annotation-api
1.3.2



org.projectlombok
lombok
1.18.34
true



org.springframework.boot
spring-boot-starter-test
test



org.openrewrite
rewrite-test
test






org.springframework.boot
spring-boot-maven-plugin


maven-surefire-plugin
3.0.0-M9



org.apache.maven.plugins
maven-compiler-plugin
3.13.0

17
17

-parameters



org.projectlombok
lombok
1.18.34


org.openrewrite
rewrite-templating
1.16.1





org.openrewrite.maven
rewrite-maven-plugin
5.42.2


com.self.openrewrite_lib.refaster.MultiplyThenDivideRecipe








Подробнее здесь: https://stackoverflow.com/questions/791 ... not-usable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»