From 759892c3880976b19a2ad914d607b69e3a8a80f2 Mon Sep 17 00:00:00 2001 From: Ivan Zinchenko Date: Thu, 18 Jan 2024 14:13:33 +0300 Subject: [PATCH] put the annotation @ValidValue in a "feature/annotation" branch --- src/Annotations/ValidLength.java | 11 ---------- src/Characters/Character.java | 35 -------------------------------- 2 files changed, 46 deletions(-) delete mode 100644 src/Annotations/ValidLength.java diff --git a/src/Annotations/ValidLength.java b/src/Annotations/ValidLength.java deleted file mode 100644 index 41d0efa..0000000 --- a/src/Annotations/ValidLength.java +++ /dev/null @@ -1,11 +0,0 @@ -package Annotations; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -@Target(ElementType.FIELD) -@Retention(RetentionPolicy.RUNTIME) -public @interface ValidLength { -} \ No newline at end of file diff --git a/src/Characters/Character.java b/src/Characters/Character.java index 218fde1..6ebba26 100644 --- a/src/Characters/Character.java +++ b/src/Characters/Character.java @@ -1,6 +1,5 @@ package Characters; -import Annotations.ValidLength; import Entity.Entity; import Items.Item; @@ -26,8 +25,6 @@ public abstract class Character extends Entity implements IMovable, IFeelable, I private final Gender gender; private Entity position; - - @ValidLength private String currentState = ""; protected Feels feel; protected Item itemInHand; @@ -65,7 +62,6 @@ public abstract class Character extends Entity implements IMovable, IFeelable, I protected final void setPosition(Entity obj) { this.position = obj; - this.validateFields(); } public final String getState() { @@ -74,7 +70,6 @@ public abstract class Character extends Entity implements IMovable, IFeelable, I protected final void setState(String state) { this.currentState = state; - this.validateFields(); } @Override @@ -94,34 +89,4 @@ public abstract class Character extends Entity implements IMovable, IFeelable, I public int hashCode() { return Objects.hash(this.name, this.gender); } - - private void validateFields() { - for (java.lang.reflect.Field field : Character.class.getDeclaredFields()) { - if (field.isAnnotationPresent(ValidLength.class)) { - String value = getValueForField(this, field); - if (value.length() < 3 || value.length() > 20) { - setValueForField(this, field, "unknown"); - } - } - } - } - - private static String getValueForField(Object obj, java.lang.reflect.Field field) { - try { - field.setAccessible(true); - return (String) field.get(obj); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - return null; - } - - private static void setValueForField(Object obj, java.lang.reflect.Field field, String value) { - try { - field.setAccessible(true); - field.set(obj, value); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } }