Compare commits

..

1 Commits

2 changed files with 0 additions and 46 deletions

View File

@ -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 {
}

View File

@ -1,6 +1,5 @@
package Characters; package Characters;
import Annotations.ValidLength;
import Entity.Entity; import Entity.Entity;
import Items.Item; import Items.Item;
@ -26,8 +25,6 @@ public abstract class Character extends Entity implements IMovable, IFeelable, I
private final Gender gender; private final Gender gender;
private Entity position; private Entity position;
@ValidLength
private String currentState = ""; private String currentState = "";
protected Feels feel; protected Feels feel;
protected Item itemInHand; protected Item itemInHand;
@ -65,7 +62,6 @@ public abstract class Character extends Entity implements IMovable, IFeelable, I
protected final void setPosition(Entity obj) { protected final void setPosition(Entity obj) {
this.position = obj; this.position = obj;
this.validateFields();
} }
public final String getState() { public final String getState() {
@ -74,7 +70,6 @@ public abstract class Character extends Entity implements IMovable, IFeelable, I
protected final void setState(String state) { protected final void setState(String state) {
this.currentState = state; this.currentState = state;
this.validateFields();
} }
@Override @Override
@ -94,34 +89,4 @@ public abstract class Character extends Entity implements IMovable, IFeelable, I
public int hashCode() { public int hashCode() {
return Objects.hash(this.name, this.gender); 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();
}
}
} }