Skip to content

Commit 188498b

Browse files
committed
LAB-2 Реализация защиты от зацикливания при генерации параметров того же типа в кейсе с циклическими/перекрестными зависимостями
1 parent f7067d0 commit 188498b

File tree

12 files changed

+86
-41
lines changed

12 files changed

+86
-41
lines changed

src/main/java/org/example/GenerateExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
public class GenerateExample {
1313
public static void main(String[] args) {
14-
InstanceGenerator instanceGenerator = new InstanceGenerator();
14+
var instanceGenerator = new InstanceGenerator();
1515
try {
1616
var generated1 = instanceGenerator.generateValueOf(Example.class);
1717
System.out.println(generated1);

src/main/java/org/example/classes/BinaryTreeNode.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.example.classes;
22

3-
import org.example.generator.annotation.CustomClassGenerator;
3+
import org.example.generator.annotation.Generatable;
44

5-
@CustomClassGenerator
5+
@Generatable
66
public class BinaryTreeNode {
77
private Integer data;
88
private BinaryTreeNode left;

src/main/java/org/example/classes/Cart.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package org.example.classes;
22

3-
import org.example.generator.annotation.CustomClassGenerator;
3+
import org.example.generator.annotation.Generatable;
44

55
import java.util.List;
66

7-
@CustomClassGenerator
7+
@Generatable
88
public class Cart {
99
private List<Product> items;
1010

src/main/java/org/example/classes/Example.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.example.classes;
22

3-
import org.example.generator.annotation.CustomClassGenerator;
3+
import org.example.generator.annotation.Generatable;
44

5-
@CustomClassGenerator
5+
@Generatable
66
public class Example {
77
int i;
88

src/main/java/org/example/classes/Product.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.example.classes;
22

3-
import org.example.generator.annotation.CustomClassGenerator;
3+
import org.example.generator.annotation.Generatable;
44

5-
@CustomClassGenerator
5+
@Generatable
66
public class Product {
77
private String name;
88
private double price;

src/main/java/org/example/classes/Rectangle.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.example.classes;
22

3-
import org.example.generator.annotation.CustomClassGenerator;
3+
import org.example.generator.annotation.Generatable;
44

5-
@CustomClassGenerator
5+
@Generatable
66
public class Rectangle implements Shape {
77
private double length;
88
private double width;

src/main/java/org/example/classes/Shape.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.example.classes;
22

3-
import org.example.generator.annotation.CustomClassGenerator;
3+
import org.example.generator.annotation.Generatable;
44

5-
@CustomClassGenerator
5+
@Generatable
66
public interface Shape {
77
double getArea();
88
double getPerimeter();

src/main/java/org/example/classes/Triangle.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.example.classes;
22

3-
import org.example.generator.annotation.CustomClassGenerator;
3+
import org.example.generator.annotation.Generatable;
44

5-
@CustomClassGenerator
5+
@Generatable
66
public class Triangle implements Shape {
77
private double sideA;
88
private double sideB;

src/main/java/org/example/generator/ClassPathScanner.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.example.generator;
22

3-
import org.example.generator.annotation.CustomClassGenerator;
3+
import org.example.generator.annotation.Generatable;
44

55
import java.io.File;
66
import java.util.Arrays;
@@ -49,7 +49,7 @@ private static Set<Class<?>> scanDirectory(File dir, String targetPackage) {
4949
private static Optional<Class<?>> tryAddClass(String className) {
5050
try {
5151
var name = Class.forName(className);
52-
if (name.isAnnotationPresent(CustomClassGenerator.class)) {
52+
if (name.isAnnotationPresent(Generatable.class)) {
5353
return Optional.of(name);
5454
}
5555
} catch (Throwable ignored) {}

src/main/java/org/example/generator/ImplementationIndex.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.example.generator;
22

33
import org.example.common.RandomProvider;
4-
import org.example.generator.annotation.CustomClassGenerator;
4+
import org.example.generator.annotation.Generatable;
55

66
import java.util.ArrayList;
77
import java.util.Arrays;
@@ -31,7 +31,7 @@ public Optional<Class<?>> randomImplementationFor(Class<?> currentInterface) {
3131
private void buildIndex() {
3232
annotatedTypes.stream()
3333
.flatMap(currentClass -> {
34-
CustomClassGenerator annotation = currentClass.getAnnotation(CustomClassGenerator.class);
34+
Generatable annotation = currentClass.getAnnotation(Generatable.class);
3535

3636
if (annotation != null && annotation.implementsFor().length > 0) {
3737
return Arrays.stream(annotation.implementsFor())

0 commit comments

Comments
 (0)