Ver Fonte

Making unnecessary classes package-private.
Adding DDFeaturePredicate for more complicated conditions.

Sam Jaffe há 8 anos atrás
pai
commit
d37d068178

+ 1 - 1
src/main/lombok/org/leumasjaffe/charsheet/model/features/DDFeatFactory.java

@@ -20,7 +20,7 @@ import lombok.experimental.UtilityClass;
 
 @UtilityClass
 @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
-public final class DDFeatFactory {
+final class DDFeatFactory {
 	Set<String> resourcesLoaded = new HashSet<>();
 	Map<String, DDFeat> featStore = new HashMap<>();
 	

+ 15 - 0
src/main/lombok/org/leumasjaffe/charsheet/model/features/DDFeaturePredicate.java

@@ -0,0 +1,15 @@
+package org.leumasjaffe.charsheet.model.features;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+
+import lombok.NonNull;
+
+@FunctionalInterface
+public interface DDFeaturePredicate {
+	boolean accepts(String value);
+	
+	@JsonCreator
+	public static DDFeaturePredicate of(@NonNull String name) {
+		return v -> name.equals(v);
+	}
+}

+ 2 - 2
src/main/lombok/org/leumasjaffe/charsheet/model/features/DDPrerequisite.java

@@ -3,7 +3,7 @@ package org.leumasjaffe.charsheet.model.features;
 import lombok.AllArgsConstructor;
 
 @AllArgsConstructor
-public class DDPrerequisite {
-	String applies;
+class DDPrerequisite {
+	DDFeaturePredicate applies;
 	int value;
 }

+ 3 - 2
src/main/lombok/org/leumasjaffe/charsheet/model/features/impl/Flat.java

@@ -1,18 +1,19 @@
 package org.leumasjaffe.charsheet.model.features.impl;
 
+import org.leumasjaffe.charsheet.model.features.DDFeaturePredicate;
 import org.leumasjaffe.charsheet.model.features.DDProperty;
 
 import lombok.AllArgsConstructor;
 
 @AllArgsConstructor
 public class Flat implements DDProperty {
-	String applies;
+	DDFeaturePredicate applies;
 	Group group;
 	int value;
 	
 	@Override
 	public boolean appliesTo(String key) {
-		return applies.equals(key);
+		return applies.accepts(key);
 	}
 
 	@SuppressWarnings("unchecked")

+ 3 - 2
src/main/lombok/org/leumasjaffe/charsheet/model/features/impl/PerSpellLevel.java

@@ -1,18 +1,19 @@
 package org.leumasjaffe.charsheet.model.features.impl;
 
+import org.leumasjaffe.charsheet.model.features.DDFeaturePredicate;
 import org.leumasjaffe.charsheet.model.features.DDProperty;
 
 import lombok.AllArgsConstructor;
 
 @AllArgsConstructor
 public class PerSpellLevel implements DDProperty {
-	String applies;
+	DDFeaturePredicate applies;
 	Group group;
 	int value;
 	
 	@Override
 	public boolean appliesTo(String key) {
-		return applies.equals(key);
+		return applies.accepts(key);
 	}
 
 	@SuppressWarnings("unchecked")