Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.sk89q.worldguard.protection.flags;
- import com.google.common.base.Preconditions;
- import com.google.common.collect.Iterators;
- import java.util.Collection;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import javax.annotation.Nullable;
- public abstract class Flag<T>
- {
- private static final Pattern VALID_NAME = Pattern.compile("^[:A-Za-z0-9\\-]{1,40}$");
- private final String name;
- private final RegionGroupFlag regionGroup;
- protected Flag(String name, @Nullable RegionGroup defaultGroup)
- {
- if ((name != null) && (!isValidName(name))) {
- throw new IllegalArgumentException("������������ �������� ��� �����");
- }
- this.name = name;
- this.regionGroup = (defaultGroup != null ? new RegionGroupFlag(name + "-group", defaultGroup) : null);
- }
- protected Flag(String name)
- {
- this(name, RegionGroup.ALL);
- }
- public final String getName()
- {
- return this.name;
- }
- @Nullable
- public T getDefault()
- {
- return null;
- }
- @Nullable
- public T chooseValue(Collection<T> values)
- {
- return (T)Iterators.getNext(values.iterator(), null);
- }
- public boolean hasConflictStrategy()
- {
- return false;
- }
- public boolean implicitlySetWithMembership()
- {
- return false;
- }
- public boolean usesMembershipAsDefault()
- {
- return false;
- }
- public boolean requiresSubject()
- {
- return false;
- }
- public final RegionGroupFlag getRegionGroupFlag()
- {
- return this.regionGroup;
- }
- public abstract T parseInput(FlagContext paramFlagContext)
- throws InvalidFlagFormat;
- public abstract T unmarshal(@Nullable Object paramObject);
- public abstract Object marshal(T paramT);
- public String toString()
- {
- return getClass().getSimpleName() + "{���='" + this.name + '\'' + '}';
- }
- public static boolean isValidName(String name)
- {
- Preconditions.checkNotNull(name, "name");
- return VALID_NAME.matcher(name).matches();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement