Author: bayard
Date: Mon Oct 21 21:24:47 2013
New Revision: 1534380

URL: http://svn.apache.org/r1534380
Log:
Returning NotImplementedException to Lang after it was removed in Lang 3.0 per 
the request in LANG-769. 

Added:
    
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/NotImplementedException.java
   (with props)
    
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/NotImplementedExceptionTest.java
   (with props)

Added: 
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/NotImplementedException.java
URL: 
http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/NotImplementedException.java?rev=1534380&view=auto
==============================================================================
--- 
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/NotImplementedException.java
 (added)
+++ 
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/NotImplementedException.java
 Mon Oct 21 21:24:47 2013
@@ -0,0 +1,129 @@
+/*
+ * 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.lang3;
+
+/**
+ * <p>Thrown to indicate that a block of code has not been implemented.
+ * This exception supplements <code>UnsupportedOperationException</code>
+ * by providing a more semantically rich description of the problem.</p>
+ * 
+ * <p><code>NotImplementedException</code> represents the case where the
+ * author has yet to implement the logic at this point in the program.
+ * This can act as an exception based TODO tag. </p>
+ * 
+ * <pre>
+ * public void foo() {
+ *   try {
+ *     // do something that throws an Exception
+ *   } catch (Exception ex) {
+ *     // don't know what to do here yet
+ *     throw new NotImplementedException("TODO", ex);
+ *   }
+ * }
+ * </pre>
+ *
+ * This class was originally added in Lang 2.0, but removed in 3.0.
+ *
+ * @author Apache Software Foundation
+ * @since 3.2 
+ * @version $Id: NotImplementedException.java 905636 2010-02-02 14:03:32Z 
niallp $
+ */
+public class NotImplementedException extends UnsupportedOperationException {
+
+    private static final long serialVersionUID = 20131021L;
+
+    private String code;
+
+    /**
+     * Constructs a NotImplementedException.
+     * 
+     * @param message description of the exception
+     * @since 3.2
+     */
+    public NotImplementedException(final String message) {
+        super(message);
+    }
+
+    /**
+     * Constructs a NotImplementedException.
+     * 
+     * @param cause cause of the exception
+     * @since 3.2
+     */
+    public NotImplementedException(final Throwable cause) {
+        super(cause);
+    }
+
+    /**
+     * Constructs a NotImplementedException.
+     * 
+     * @param message description of the exception
+     * @param cause cause of the exception
+     * @since 3.2
+     */
+    public NotImplementedException(final String message, final Throwable 
cause) {
+        super(message, cause);
+    }
+
+    /**
+     * Constructs a NotImplementedException.
+     * 
+     * @param message description of the exception
+     * @param String code indicating a resource for more information regarding 
the lack of implementation
+     * @since 3.2
+     */
+    public NotImplementedException(final String message, final String code) {
+        super(message);
+        this.code = code;
+    }
+
+    /**
+     * Constructs a NotImplementedException.
+     * 
+     * @param cause cause of the exception
+     * @param String code indicating a resource for more information regarding 
the lack of implementation
+     * @since 3.2
+     */
+    public NotImplementedException(final Throwable cause, final String code) {
+        super(cause);
+        this.code = code;
+    }
+
+    /**
+     * Constructs a NotImplementedException.
+     * 
+     * @param message description of the exception
+     * @param cause cause of the exception
+     * @param String code indicating a resource for more information regarding 
the lack of implementation
+     * @since 3.2
+     */
+    public NotImplementedException(final String message, final Throwable 
cause, final String code) {
+        super(message, cause);
+        this.code = code;
+    }
+
+    /**
+     * Obtain the not implemented code. This is an unformatted piece of text 
intended to point to 
+     * further information regarding the lack of implementation. It might, for 
example, be an issue 
+     * tracker ID or a URL.
+     *
+     * @return a code indicating a resource for more information regarding the 
lack of implementation
+     */
+    public String getCode() {
+        return this.code;
+    }
+}

Propchange: 
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/NotImplementedException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/NotImplementedExceptionTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/NotImplementedExceptionTest.java?rev=1534380&view=auto
==============================================================================
--- 
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/NotImplementedExceptionTest.java
 (added)
+++ 
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/NotImplementedExceptionTest.java
 Mon Oct 21 21:24:47 2013
@@ -0,0 +1,56 @@
+/*
+ * 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.lang3;
+
+import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+/**
+ * Unit tests {@link org.apache.commons.lang3.NotImplementedException}.
+ * 
+ * @version $Id: NotImplementedExceptionTest.java 905628 2010-02-02 13:29:55Z 
niallp $
+ */
+public class NotImplementedExceptionTest {
+
+    @Test
+    public void testConstructors() {
+        Throwable nested = new RuntimeException();
+        String message = "Not Implemented";
+        String code = "CODE";
+
+        NotImplementedException nie = new NotImplementedException(message);
+        assertCorrect("Issue in (String)", nie, message, null, null);
+        nie = new NotImplementedException(nested);
+        assertCorrect("Issue in (Throwable)", nie, nested.toString(), nested, 
null);
+        nie = new NotImplementedException(message, nested);
+        assertCorrect("Issue in (String, Throwable)", nie, message, nested, 
null);
+        nie = new NotImplementedException(message, code);
+        assertCorrect("Issue in (String, String)", nie, message, null, code);
+        nie = new NotImplementedException(nested, code);
+        assertCorrect("Issue in (Throwable, String)", nie, nested.toString(), 
nested, code);
+        nie = new NotImplementedException(message, nested, code);
+        assertCorrect("Issue in (String, Throwable, String)", nie, message, 
nested, code);
+    }
+
+    private void assertCorrect(String assertMessage, NotImplementedException 
nie, String message, Throwable nested, String code) {
+        assertNotNull(assertMessage + ": target is null", nie);
+        assertEquals(assertMessage + ": Message not equal", message, 
nie.getMessage());
+        assertEquals(assertMessage + ": Nested throwable not equal", nested, 
nie.getCause());
+        assertEquals(assertMessage + ": Code not equal", code, nie.getCode());
+    }
+}

Propchange: 
commons/proper/lang/trunk/src/test/java/org/apache/commons/lang3/NotImplementedExceptionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to