📄 emailutils.java
字号:
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.commons.mail;import java.util.Random;/** * Utility methods used by commons-email. * * <p> * These methods are copied from other commons components (commons-lang) to avoid creating * a dependency for such a small component. * </p> * * <p> * This is a package scoped class, and should not be used directly by users. * </p> * * @author jakarta-commons * @version $Id: EmailUtils.java 510809 2007-02-23 04:28:31Z dion $ * * @since 1.0 */final class EmailUtils{ /** * <p> * Random object used by random method. This has to be not local to the random method * so as to not return the same value in the same millisecond. * </p> */ private static final Random RANDOM = new Random(); /** * Constructs a new <code>EmailException</code> with no detail message. */ private EmailUtils() { super(); } /** * <p> * Checks if a String is empty ("") or null. * </p> * * @param str the String to check, may be null * * @return <code>true</code> if the String is empty or null * * @since Commons Lang v2.1, svn 240418 */ static boolean isEmpty(String str) { return (str == null) || (str.length() == 0); } /** * <p> * Checks if a String is not empty ("") and not null. * </p> * * @param str the String to check, may be null * * @return <code>true</code> if the String is not empty and not null * * @since Commons Lang v2.1, svn 240418 */ static boolean isNotEmpty(String str) { return (str != null) && (str.length() > 0); } /** * <p> * Validate an argument, throwing <code>IllegalArgumentException</code> if the argument is <code>null</code>. * </p> * * @param object the object to check is not <code>null</code> * @param message the exception message you would like to see if the object is <code>null</code> * * @throws IllegalArgumentException if the object is <code>null</code> * * @since Commons Lang v2.1, svn 201930 */ static void notNull(Object object, String message) { if (object == null) { throw new IllegalArgumentException(message); } } /** * <p> * Creates a random string whose length is the number of characters specified. * </p> * * <p> * Characters will be chosen from the set of alphabetic characters. * </p> * * @param count the length of random string to create * * @return the random string * * @since Commons Lang v2.1, svn 201930 */ static String randomAlphabetic(int count) { return random(count, 0, 0, true, false, null, RANDOM); } /** * <p> * Creates a random string based on a variety of options, using supplied source of randomness. * </p> * * <p> * If start and end are both <code>0</code>, start and end are set to <code>' '</code> and <code>'z'</code>, * the ASCII printable characters, will be used, unless letters and numbers are both <code>false</code>, * in which case, start and end are set to <code>0</code> and <code>Integer.MAX_VALUE</code>. * </p> * * <p> * If set is not <code>null</code>, characters between start and end are chosen. * </p> * * <p> * This method accepts a user-supplied {@link Random} instance to use as a source of randomness. By seeding a * single {@link Random} instance with a fixed seed and using it for each call, the same random sequence of strings * can be generated repeatedly and predictably. * </p> * * @param count the length of random string to create * @param start the position in set of chars to start at * @param end the position in set of chars to end before * @param letters only allow letters? * @param numbers only allow numbers? * @param chars the set of chars to choose randoms from. If <code>null</code>, * then it will use the set of all chars. * @param random a source of randomness. * * @return the random string * * @throws IllegalArgumentException if <code>count</code> < 0. * * @since Commons Lang v2.1, svn 201930 */ private static String random( int count, int start, int end, boolean letters, boolean numbers, char [] chars, Random random) { if (count == 0) { return ""; } else if (count < 0) { throw new IllegalArgumentException("Requested random string length " + count + " is less than 0."); } if ((start == 0) && (end == 0)) { end = 'z' + 1; start = ' '; if (!letters && !numbers) { start = 0; end = Integer.MAX_VALUE; } } StringBuffer buffer = new StringBuffer(); int gap = end - start; while (count-- != 0) { char ch; if (chars == null) { ch = (char) (random.nextInt(gap) + start); } else { ch = chars[random.nextInt(gap) + start]; } if ((letters && numbers && Character.isLetterOrDigit(ch)) || (letters && Character.isLetter(ch)) || (numbers && Character.isDigit(ch)) || (!letters && !numbers)) { buffer.append(ch); } else { count++; } } return buffer.toString(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -