20 package net.sf.gridarta.model.validation.checks;
22 import java.util.ArrayList;
23 import java.util.Collection;
24 import java.util.regex.Pattern;
35 import org.jetbrains.annotations.NotNull;
42 public class SlayingChecker<G
extends GameObject<G, A, R>, A extends
MapArchObject<A>, R extends
Archetype<G, A, R>> extends
AbstractValidator<G, A, R> implements
GameObjectValidator<G, A, R> {
55 private final Collection<Entry<G, A, R>>
entries =
new ArrayList<>();
64 super(validatorPreferences);
74 entries.add(
new Entry<>(gameObjectMatcher, regex));
79 boolean useDefaultRegex =
true;
81 if (entry.validate(gameObject, errorCollector)) {
82 useDefaultRegex =
false;
86 if (useDefaultRegex) {
87 final CharSequence slaying = gameObject.getAttributeString(
BaseObject.
SLAYING,
true);
88 if (!defaultRegex.matcher(slaying).matches()) {
This is the base class for validators.
Interface for classes that match GameObjects.
This package contains classes related to matching GameObjects, so called GameObjectMatchers.
Interface for GameObject Validators.
This package contains the framework for validating maps.
String SLAYING
The name of the "slaying" attribute.
An GameObjectValidator to assert that game objects do not have critical slaying strings.
Base package of all Gridarta classes.
Reflects a game object (object on a map).
SlayingChecker(@NotNull final ValidatorPreferences validatorPreferences, @NotNull final Pattern defaultRegex)
Creates a new instance.
Configuration parameters for Validators.
GameObjects are the objects based on Archetypes found on maps.
final Pattern defaultRegex
The regular expression for any "slaying" field not matching any specific game object.
final ValidatorPreferences validatorPreferences
The ValidatorPreferences to use.
An entry to match consisting of a GameObjectMatcher and a regular expression which defined the allowe...
final Collection< Entry< G, A, R > > entries
The matchers to check.
Validation error that's used when the SlayingChecker detected a possible error on the map...
An interface for classes that collect errors.
void validateGameObject(@NotNull final G gameObject, @NotNull final ErrorCollector< G, A, R > errorCollector)
Validates a game object.
Interface for MapArchObjects.
void addMatcher(@NotNull final GameObjectMatcher gameObjectMatcher, @NotNull final Pattern regex)
Adds a matcher to check.