Author: henning
Date: Wed Sep  7 02:58:35 2005
New Revision: 279287

URL: http://svn.apache.org/viewcvs?rev=279287&view=rev
Log:
- Actually add EmailUtils. 
- reformatted code to match overall commons-email style.


Added:
    
jakarta/commons/proper/email/trunk/src/java/org/apache/commons/mail/EmailUtils.java
   (with props)
Modified:
    
jakarta/commons/proper/email/trunk/src/java/org/apache/commons/mail/EmailException.java

Modified: 
jakarta/commons/proper/email/trunk/src/java/org/apache/commons/mail/EmailException.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/email/trunk/src/java/org/apache/commons/mail/EmailException.java?rev=279287&r1=279286&r2=279287&view=diff
==============================================================================
--- 
jakarta/commons/proper/email/trunk/src/java/org/apache/commons/mail/EmailException.java
 (original)
+++ 
jakarta/commons/proper/email/trunk/src/java/org/apache/commons/mail/EmailException.java
 Wed Sep  7 02:58:35 2005
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.commons.mail;
 
 import java.io.PrintStream;
@@ -29,8 +30,9 @@
  * @since 1.0
  * @version $Version: $
  */
-public class EmailException extends Exception {
-
+public class EmailException
+        extends Exception
+{
     /** Serializable version identifier */
     static final long serialVersionUID = 5550674499282474616L;
 
@@ -39,14 +41,20 @@
      */
     private static final boolean JDK_SUPPORTS_NESTED;
 
-    static {
+    static
+    {
         boolean flag = false;
-        try {
+
+        try
+        {
             Throwable.class.getDeclaredMethod("getCause", new Class[0]);
             flag = true;
-        } catch (NoSuchMethodException ex) {
+        }
+        catch (NoSuchMethodException ex)
+        {
             flag = false;
         }
+
         JDK_SUPPORTS_NESTED = flag;
     }
 
@@ -59,7 +67,8 @@
      * Constructs a new <code>EmailException</code> with no
      * detail message.
      */
-    public EmailException() {
+    public EmailException()
+    {
         super();
         this.rootCause = null;
     }
@@ -70,7 +79,8 @@
      *
      * @param msg  the error message.
      */
-    public EmailException(String msg) {
+    public EmailException(String msg)
+    {
         super(msg);
         this.rootCause = null;
     }
@@ -82,8 +92,9 @@
      * @param rootCause  the exception or error that caused this exception
      *                   to be thrown.
      */
-    public EmailException(Throwable rootCause) {
-        super((rootCause == null ? null : rootCause.getMessage()));
+    public EmailException(Throwable rootCause)
+    {
+        super(((rootCause == null) ? null : rootCause.getMessage()));
         this.rootCause = rootCause;
     }
 
@@ -95,7 +106,8 @@
      * @param rootCause  the exception or error that caused this exception
      *                   to be thrown.
      */
-    public EmailException(String msg, Throwable rootCause) {
+    public EmailException(String msg, Throwable rootCause)
+    {
         super(msg);
         this.rootCause = rootCause;
     }
@@ -105,14 +117,16 @@
      *
      * @return  the cause of this throwable, or <code>null</code>
      */
-    public Throwable getCause() {
+    public Throwable getCause()
+    {
         return rootCause;
     }
 
     /**
      * Prints the stack trace of this exception to the standard error stream.
      */
-    public void printStackTrace() {
+    public void printStackTrace()
+    {
         printStackTrace(System.err);
     }
 
@@ -121,10 +135,13 @@
      *
      * @param out  the <code>PrintStream</code> to use for output
      */
-    public void printStackTrace(PrintStream out) {
-        synchronized (out) {
+    public void printStackTrace(PrintStream out)
+    {
+        synchronized (out)
+        {
             PrintWriter pw = new PrintWriter(out, false);
             printStackTrace(pw);
+
             // Flush the PrintWriter before it's GC'ed.
             pw.flush();
         }
@@ -135,14 +152,17 @@
      *
      * @param out  the <code>PrintWriter</code> to use for output
      */
-    public void printStackTrace(PrintWriter out) {
-        synchronized (out) {
+    public void printStackTrace(PrintWriter out)
+    {
+        synchronized (out)
+        {
             super.printStackTrace(out);
-            if (rootCause != null && JDK_SUPPORTS_NESTED == false) {
+
+            if ((rootCause != null) && (JDK_SUPPORTS_NESTED == false))
+            {
                 out.print("Caused by: ");
                 rootCause.printStackTrace(out);
             }
         }
     }
-
 }

Added: 
jakarta/commons/proper/email/trunk/src/java/org/apache/commons/mail/EmailUtils.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/email/trunk/src/java/org/apache/commons/mail/EmailUtils.java?rev=279287&view=auto
==============================================================================
--- 
jakarta/commons/proper/email/trunk/src/java/org/apache/commons/mail/EmailUtils.java
 (added)
+++ 
jakarta/commons/proper/email/trunk/src/java/org/apache/commons/mail/EmailUtils.java
 Wed Sep  7 02:58:35 2005
@@ -0,0 +1,214 @@
+/*
+ * Copyright 2001-2005 The Apache Software Foundation
+ *
+ * Licensed 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 $Version: $
+ *
+ * @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 [EMAIL PROTECTED] Random} instance 
to use as a source of randomness. By seeding a single [EMAIL PROTECTED]
+     * 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> &lt; 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();
+    }
+}

Propchange: 
jakarta/commons/proper/email/trunk/src/java/org/apache/commons/mail/EmailUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
jakarta/commons/proper/email/trunk/src/java/org/apache/commons/mail/EmailUtils.java
------------------------------------------------------------------------------
    svn:keywords = Id Author



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to