mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-12-24 17:47:38 +01:00
Minor fixes as found by Checkstyle
This commit is contained in:
parent
ed9c5ef8a7
commit
8aa573b9ed
@ -25,4 +25,6 @@ exclude_paths:
|
||||
- 'src/main/java/fr/xephi/authme/mail/OAuth2SaslClient.java'
|
||||
- 'src/main/java/fr/xephi/authme/mail/OAuth2SaslClientFactory.java'
|
||||
- 'src/main/java/fr/xephi/authme/security/crypts/BCryptService.java'
|
||||
- 'src/main/java/fr/xephi/authme/security/crypts/PHPBB.java'
|
||||
- 'src/main/java/fr/xephi/authme/security/crypts/WHIRLPOOL.java'
|
||||
- 'src/main/java/fr/xephi/authme/security/crypts/WORDPRESS.java'
|
||||
|
@ -23,6 +23,7 @@ import javax.inject.Inject;
|
||||
* @deprecated Use {@link NewAPI}
|
||||
*/
|
||||
@Deprecated
|
||||
@SuppressWarnings({"checkstyle:AbbreviationAsWordInName"}) // Justification: Class name cannot be changed anymore
|
||||
public class API {
|
||||
|
||||
private static AuthMe instance;
|
||||
|
@ -24,6 +24,7 @@ import java.util.List;
|
||||
* NewAPI authmeApi = AuthMe.getApi();
|
||||
* </code>
|
||||
*/
|
||||
@SuppressWarnings({"checkstyle:AbbreviationAsWordInName"}) // Justification: Class name cannot be changed anymore
|
||||
public class NewAPI {
|
||||
|
||||
private static NewAPI singleton;
|
||||
|
@ -19,7 +19,7 @@ import static java.util.Arrays.asList;
|
||||
* {@code /authme} has a child whose label is {@code "register"}, then {@code /authme register} is the command that
|
||||
* the child defines.
|
||||
*/
|
||||
public class CommandDescription {
|
||||
public final class CommandDescription {
|
||||
|
||||
/**
|
||||
* Defines the labels to execute the command. For example, if labels are "register" and "r" and the parent is
|
||||
|
@ -3,7 +3,6 @@ package fr.xephi.authme.command.executable.captcha;
|
||||
import fr.xephi.authme.command.PlayerCommand;
|
||||
import fr.xephi.authme.data.CaptchaManager;
|
||||
import fr.xephi.authme.data.auth.PlayerCache;
|
||||
import fr.xephi.authme.command.PlayerCommand;
|
||||
import fr.xephi.authme.data.limbo.LimboCache;
|
||||
import fr.xephi.authme.message.MessageKey;
|
||||
import fr.xephi.authme.service.CommonService;
|
||||
|
@ -6,6 +6,8 @@ import fr.xephi.authme.settings.properties.DatabaseSettings;
|
||||
/**
|
||||
* Database column names.
|
||||
*/
|
||||
// Justification: String is immutable and this class is used to easily access the configurable column names
|
||||
@SuppressWarnings({"checkstyle:VisibilityModifier", "checkstyle:MemberName", "checkstyle:AbbreviationAsWordInName"})
|
||||
public final class Columns {
|
||||
|
||||
public final String NAME;
|
||||
|
@ -16,6 +16,7 @@ import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
/**
|
||||
@ -40,19 +41,17 @@ public class RakamakConverter implements Converter {
|
||||
@Override
|
||||
// TODO ljacqu 20151229: Restructure this into smaller portions
|
||||
public void execute(CommandSender sender) {
|
||||
boolean useIP = settings.getProperty(ConverterSettings.RAKAMAK_USE_IP);
|
||||
boolean useIp = settings.getProperty(ConverterSettings.RAKAMAK_USE_IP);
|
||||
String fileName = settings.getProperty(ConverterSettings.RAKAMAK_FILE_NAME);
|
||||
String ipFileName = settings.getProperty(ConverterSettings.RAKAMAK_IP_FILE_NAME);
|
||||
File source = new File(pluginFolder, fileName);
|
||||
File ipfiles = new File(pluginFolder, ipFileName);
|
||||
HashMap<String, String> playerIP = new HashMap<>();
|
||||
HashMap<String, HashedPassword> playerPSW = new HashMap<>();
|
||||
File ipFiles = new File(pluginFolder, ipFileName);
|
||||
Map<String, String> playerIP = new HashMap<>();
|
||||
Map<String, HashedPassword> playerPassword = new HashMap<>();
|
||||
try {
|
||||
BufferedReader users;
|
||||
BufferedReader ipFile;
|
||||
ipFile = new BufferedReader(new FileReader(ipfiles));
|
||||
BufferedReader ipFile = new BufferedReader(new FileReader(ipFiles));
|
||||
String line;
|
||||
if (useIP) {
|
||||
if (useIp) {
|
||||
String tempLine;
|
||||
while ((tempLine = ipFile.readLine()) != null) {
|
||||
if (tempLine.contains("=")) {
|
||||
@ -63,20 +62,20 @@ public class RakamakConverter implements Converter {
|
||||
}
|
||||
ipFile.close();
|
||||
|
||||
users = new BufferedReader(new FileReader(source));
|
||||
BufferedReader users = new BufferedReader(new FileReader(source));
|
||||
while ((line = users.readLine()) != null) {
|
||||
if (line.contains("=")) {
|
||||
String[] arguments = line.split("=");
|
||||
HashedPassword hashedPassword = passwordSecurity.computeHash(arguments[1], arguments[0]);
|
||||
playerPSW.put(arguments[0], hashedPassword);
|
||||
playerPassword.put(arguments[0], hashedPassword);
|
||||
|
||||
}
|
||||
}
|
||||
users.close();
|
||||
for (Entry<String, HashedPassword> m : playerPSW.entrySet()) {
|
||||
for (Entry<String, HashedPassword> m : playerPassword.entrySet()) {
|
||||
String playerName = m.getKey();
|
||||
HashedPassword psw = playerPSW.get(playerName);
|
||||
String ip = useIP ? playerIP.get(playerName) : "127.0.0.1";
|
||||
HashedPassword psw = playerPassword.get(playerName);
|
||||
String ip = useIp ? playerIP.get(playerName) : "127.0.0.1";
|
||||
PlayerAuth auth = PlayerAuth.builder()
|
||||
.name(playerName)
|
||||
.realName(playerName)
|
||||
|
@ -45,6 +45,12 @@ public class OnStartupTasks {
|
||||
OnStartupTasks() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends bstats metrics.
|
||||
*
|
||||
* @param plugin the plugin instance
|
||||
* @param settings the settings
|
||||
*/
|
||||
public static void sendMetrics(AuthMe plugin, Settings settings) {
|
||||
final Metrics metrics = new Metrics(plugin);
|
||||
|
||||
|
@ -111,7 +111,7 @@ class OnJoinVerifier implements Reloadable {
|
||||
* @param event the login event to verify
|
||||
*
|
||||
* @return true if the player's connection should be refused (i.e. the event does not need to be processed
|
||||
* further), false if the player is not refused
|
||||
* further), false if the player is not refused
|
||||
*/
|
||||
public boolean refusePlayerForFullServer(PlayerLoginEvent event) {
|
||||
final Player player = event.getPlayer();
|
||||
|
@ -14,6 +14,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package fr.xephi.authme.listener.protocollib;
|
||||
|
||||
import com.comphenix.protocol.PacketType;
|
||||
@ -46,7 +47,7 @@ class InventoryPacketAdapter extends PacketAdapter {
|
||||
private static final int MAIN_SIZE = 27;
|
||||
private static final int HOTBAR_SIZE = 9;
|
||||
|
||||
public InventoryPacketAdapter(AuthMe plugin) {
|
||||
InventoryPacketAdapter(AuthMe plugin) {
|
||||
super(plugin, PacketType.Play.Server.SET_SLOT, PacketType.Play.Server.WINDOW_ITEMS);
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,7 @@ import fr.xephi.authme.data.auth.PlayerCache;
|
||||
|
||||
class TabCompletePacketAdapter extends PacketAdapter {
|
||||
|
||||
public TabCompletePacketAdapter(AuthMe plugin) {
|
||||
TabCompletePacketAdapter(AuthMe plugin) {
|
||||
super(plugin, ListenerPriority.NORMAL, PacketType.Play.Client.TAB_COMPLETE);
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,8 @@ public class PermissionsBukkitHandler implements PermissionHandler {
|
||||
|
||||
@Override
|
||||
public boolean addToGroup(Player player, String group) {
|
||||
return Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "permissions player addgroup " + player.getName() + " " + group);
|
||||
return Bukkit.dispatchCommand(Bukkit.getConsoleSender(),
|
||||
"permissions player addgroup " + player.getName() + " " + group);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -46,17 +47,19 @@ public class PermissionsBukkitHandler implements PermissionHandler {
|
||||
|
||||
@Override
|
||||
public boolean removeFromGroup(Player player, String group) {
|
||||
return Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "permissions player removegroup " + player.getName() + " " + group);
|
||||
return Bukkit.dispatchCommand(Bukkit.getConsoleSender(),
|
||||
"permissions player removegroup " + player.getName() + " " + group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setGroup(Player player, String group) {
|
||||
return Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "permissions player setgroup " + player.getName() + " " + group);
|
||||
return Bukkit.dispatchCommand(Bukkit.getConsoleSender(),
|
||||
"permissions player setgroup " + player.getName() + " " + group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getGroups(Player player) {
|
||||
List<String> groups = new ArrayList<String>();
|
||||
List<String> groups = new ArrayList<>();
|
||||
for (Group group : permissionsBukkitInstance.getGroups(player.getUniqueId())) {
|
||||
groups.add(group.getName());
|
||||
}
|
||||
|
@ -30,7 +30,8 @@ public class ZPermissionsHandler implements PermissionHandler {
|
||||
|
||||
@Override
|
||||
public boolean addToGroup(Player player, String group) {
|
||||
return Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "permissions player " + player.getName() + " addgroup " + group);
|
||||
return Bukkit.dispatchCommand(Bukkit.getConsoleSender(),
|
||||
"permissions player " + player.getName() + " addgroup " + group);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -41,20 +42,23 @@ public class ZPermissionsHandler implements PermissionHandler {
|
||||
@Override
|
||||
public boolean hasPermissionOffline(String name, PermissionNode node) {
|
||||
Map<String, Boolean> perms = zPermissionsService.getPlayerPermissions(null, null, name);
|
||||
if (perms.containsKey(node.getNode()))
|
||||
if (perms.containsKey(node.getNode())) {
|
||||
return perms.get(node.getNode());
|
||||
else
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean removeFromGroup(Player player, String group) {
|
||||
return Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "permissions player " + player.getName() + " removegroup " + group);
|
||||
return Bukkit.dispatchCommand(Bukkit.getConsoleSender(),
|
||||
"permissions player " + player.getName() + " removegroup " + group);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setGroup(Player player, String group) {
|
||||
return Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "permissions player " + player.getName() + " setgroup " + group);
|
||||
return Bukkit.dispatchCommand(Bukkit.getConsoleSender(),
|
||||
"permissions player " + player.getName() + " setgroup " + group);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -56,10 +56,10 @@ class PasswordRegisterExecutorProvider {
|
||||
/** Registration executor for password registration. */
|
||||
class PasswordRegisterExecutor implements RegistrationExecutor {
|
||||
|
||||
protected final Player player;
|
||||
private final Player player;
|
||||
private final String password;
|
||||
private final String email;
|
||||
protected HashedPassword hashedPassword;
|
||||
private HashedPassword hashedPassword;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
@ -105,6 +105,14 @@ class PasswordRegisterExecutorProvider {
|
||||
}
|
||||
syncProcessManager.processSyncPasswordRegister(player);
|
||||
}
|
||||
|
||||
protected Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
protected HashedPassword getHashedPassword() {
|
||||
return hashedPassword;
|
||||
}
|
||||
}
|
||||
|
||||
/** Executor for password registration via API call. */
|
||||
@ -147,8 +155,9 @@ class PasswordRegisterExecutorProvider {
|
||||
public void executePostPersistAction() {
|
||||
super.executePostPersistAction();
|
||||
|
||||
String qrCodeUrl = TwoFactor.getQRBarcodeURL(player.getName(), Bukkit.getIp(), hashedPassword.getHash());
|
||||
commonService.send(player, MessageKey.TWO_FACTOR_CREATE, hashedPassword.getHash(), qrCodeUrl);
|
||||
String hash = getHashedPassword().getHash();
|
||||
String qrCodeUrl = TwoFactor.getQRBarcodeURL(getPlayer().getName(), Bukkit.getIp(), hash);
|
||||
commonService.send(getPlayer(), MessageKey.TWO_FACTOR_CREATE, hash, qrCodeUrl);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -8,15 +8,15 @@ public abstract class SeparateSaltMethod implements EncryptionMethod {
|
||||
@Override
|
||||
public abstract String computeHash(String password, String salt, String name);
|
||||
|
||||
@Override
|
||||
public abstract String generateSalt();
|
||||
|
||||
@Override
|
||||
public HashedPassword computeHash(String password, String name) {
|
||||
String salt = generateSalt();
|
||||
return new HashedPassword(computeHash(password, salt, name), salt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public abstract String generateSalt();
|
||||
|
||||
@Override
|
||||
public boolean comparePassword(String password, HashedPassword hashedPassword, String name) {
|
||||
return hashedPassword.getHash().equals(computeHash(password, hashedPassword.getSalt(), null));
|
||||
|
@ -17,13 +17,13 @@ public abstract class UsernameSaltMethod implements EncryptionMethod {
|
||||
public abstract HashedPassword computeHash(String password, String name);
|
||||
|
||||
@Override
|
||||
public boolean comparePassword(String password, HashedPassword hashedPassword, String name) {
|
||||
return hashedPassword.getHash().equals(computeHash(password, name).getHash());
|
||||
public String computeHash(String password, String salt, String name) {
|
||||
return computeHash(password, name).getHash();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String computeHash(String password, String salt, String name) {
|
||||
return computeHash(password, name).getHash();
|
||||
public boolean comparePassword(String password, HashedPassword hashedPassword, String name) {
|
||||
return hashedPassword.getHash().equals(computeHash(password, name).getHash());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -13,7 +13,6 @@ import org.bukkit.World;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import org.bukkit.scheduler.BukkitScheduler;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
@ -172,7 +171,7 @@ public class BukkitService implements SettingsDependent {
|
||||
* @return a BukkitTask that contains the id number
|
||||
* @throws IllegalArgumentException if plugin is null
|
||||
* @throws IllegalStateException if this was already scheduled
|
||||
* @see BukkitScheduler#runTaskTimer(Plugin, Runnable, long, long)
|
||||
* @see BukkitScheduler#runTaskTimer(org.bukkit.plugin.Plugin, Runnable, long, long)
|
||||
*/
|
||||
public BukkitTask runTaskTimer(BukkitRunnable task, long delay, long period) {
|
||||
return task.runTaskTimer(authMe, delay, period);
|
||||
|
@ -6,7 +6,7 @@ import ch.jalu.configme.properties.Property;
|
||||
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
|
||||
|
||||
public class BackupSettings implements SettingsHolder {
|
||||
public final class BackupSettings implements SettingsHolder {
|
||||
|
||||
@Comment("Enable or disable automatic backup")
|
||||
public static final Property<Boolean> ENABLED =
|
||||
|
@ -6,7 +6,7 @@ import ch.jalu.configme.properties.Property;
|
||||
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
|
||||
|
||||
public class ConverterSettings implements SettingsHolder {
|
||||
public final class ConverterSettings implements SettingsHolder {
|
||||
|
||||
@Comment("Rakamak file name")
|
||||
public static final Property<String> RAKAMAK_FILE_NAME =
|
||||
|
@ -7,7 +7,7 @@ import fr.xephi.authme.datasource.DataSourceType;
|
||||
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
|
||||
|
||||
public class DatabaseSettings implements SettingsHolder {
|
||||
public final class DatabaseSettings implements SettingsHolder {
|
||||
|
||||
@Comment({"What type of database do you want to use?",
|
||||
"Valid values: sqlite, mysql"})
|
||||
|
@ -9,7 +9,7 @@ import java.util.List;
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newListProperty;
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
|
||||
|
||||
public class EmailSettings implements SettingsHolder {
|
||||
public final class EmailSettings implements SettingsHolder {
|
||||
|
||||
@Comment("Email SMTP server host")
|
||||
public static final Property<String> SMTP_HOST =
|
||||
|
@ -9,7 +9,7 @@ import java.util.List;
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newListProperty;
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
|
||||
|
||||
public class HooksSettings implements SettingsHolder {
|
||||
public final class HooksSettings implements SettingsHolder {
|
||||
|
||||
@Comment("Do we need to hook with multiverse for spawn checking?")
|
||||
public static final Property<Boolean> MULTIVERSE =
|
||||
|
@ -7,7 +7,7 @@ import fr.xephi.authme.output.LogLevel;
|
||||
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
|
||||
|
||||
public class PluginSettings implements SettingsHolder {
|
||||
public final class PluginSettings implements SettingsHolder {
|
||||
|
||||
@Comment({
|
||||
"Do you want to enable the session feature?",
|
||||
|
@ -10,7 +10,7 @@ import static ch.jalu.configme.properties.PropertyInitializer.newListProperty;
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
|
||||
|
||||
|
||||
public class ProtectionSettings implements SettingsHolder {
|
||||
public final class ProtectionSettings implements SettingsHolder {
|
||||
|
||||
@Comment("Enable some servers protection (country based login, antibot)")
|
||||
public static final Property<Boolean> ENABLE_PROTECTION =
|
||||
|
@ -6,7 +6,7 @@ import ch.jalu.configme.properties.Property;
|
||||
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
|
||||
|
||||
public class PurgeSettings implements SettingsHolder {
|
||||
public final class PurgeSettings implements SettingsHolder {
|
||||
|
||||
@Comment("If enabled, AuthMe automatically purges old, unused accounts")
|
||||
public static final Property<Boolean> USE_AUTO_PURGE =
|
||||
|
@ -8,7 +8,7 @@ import fr.xephi.authme.process.register.RegistrationType;
|
||||
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
|
||||
|
||||
public class RegistrationSettings implements SettingsHolder {
|
||||
public final class RegistrationSettings implements SettingsHolder {
|
||||
|
||||
@Comment("Enable registration on the server?")
|
||||
public static final Property<Boolean> IS_ENABLED =
|
||||
@ -42,7 +42,8 @@ public class RegistrationSettings implements SettingsHolder {
|
||||
"EMAIL_MANDATORY = for password register: 2nd argument MUST be an email address"
|
||||
})
|
||||
public static final Property<RegisterSecondaryArgument> REGISTER_SECOND_ARGUMENT =
|
||||
newProperty(RegisterSecondaryArgument.class, "settings.registration.secondArg", RegisterSecondaryArgument.CONFIRMATION);
|
||||
newProperty(RegisterSecondaryArgument.class, "settings.registration.secondArg",
|
||||
RegisterSecondaryArgument.CONFIRMATION);
|
||||
|
||||
@Comment({
|
||||
"Do we force kick a player after a successful registration?",
|
||||
|
@ -10,7 +10,7 @@ import static ch.jalu.configme.properties.PropertyInitializer.newListProperty;
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newLowercaseListProperty;
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
|
||||
|
||||
public class RestrictionSettings implements SettingsHolder {
|
||||
public final class RestrictionSettings implements SettingsHolder {
|
||||
|
||||
@Comment({
|
||||
"Can not authenticated players chat?",
|
||||
|
@ -12,7 +12,7 @@ import java.util.Set;
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newLowercaseListProperty;
|
||||
import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
|
||||
|
||||
public class SecuritySettings implements SettingsHolder {
|
||||
public final class SecuritySettings implements SettingsHolder {
|
||||
|
||||
@Comment({"Stop the server if we can't contact the sql database",
|
||||
"Take care with this, if you set this to false,",
|
||||
@ -86,7 +86,8 @@ public class SecuritySettings implements SettingsHolder {
|
||||
"- 'password'",
|
||||
"- 'help'"})
|
||||
public static final Property<List<String>> UNSAFE_PASSWORDS =
|
||||
newLowercaseListProperty("settings.security.unsafePasswords", "123456", "password", "qwerty", "12345", "54321", "123456789", "help");
|
||||
newLowercaseListProperty("settings.security.unsafePasswords",
|
||||
"123456", "password", "qwerty", "12345", "54321", "123456789", "help");
|
||||
|
||||
@Comment("Tempban a user's IP address if they enter the wrong password too many times")
|
||||
public static final Property<Boolean> TEMPBAN_ON_MAX_LOGINS =
|
||||
|
@ -24,7 +24,7 @@ public final class RandomStringUtils {
|
||||
* @return The random string
|
||||
*/
|
||||
public static String generate(int length) {
|
||||
return generate(length, LOWER_ALPHANUMERIC_INDEX);
|
||||
return generateString(length, LOWER_ALPHANUMERIC_INDEX);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -35,7 +35,7 @@ public final class RandomStringUtils {
|
||||
* @return The random hexadecimal string
|
||||
*/
|
||||
public static String generateHex(int length) {
|
||||
return generate(length, HEX_MAX_INDEX);
|
||||
return generateString(length, HEX_MAX_INDEX);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -46,10 +46,10 @@ public final class RandomStringUtils {
|
||||
* @return The random string
|
||||
*/
|
||||
public static String generateLowerUpper(int length) {
|
||||
return generate(length, CHARS.length);
|
||||
return generateString(length, CHARS.length);
|
||||
}
|
||||
|
||||
private static String generate(int length, int maxIndex) {
|
||||
private static String generateString(int length, int maxIndex) {
|
||||
if (length < 0) {
|
||||
throw new IllegalArgumentException("Length must be positive but was " + length);
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ import java.util.stream.Collectors;
|
||||
*
|
||||
* @param <A> the argument type
|
||||
*/
|
||||
public class TagReplacer<A> {
|
||||
public final class TagReplacer<A> {
|
||||
|
||||
private final List<Tag<A>> tags;
|
||||
private final Collection<String> messages;
|
||||
|
Loading…
Reference in New Issue
Block a user