You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Benedikt Ritter <br...@apache.org> on 2013/10/22 21:26:18 UTC

Re: svn commit: r1534380 - in /commons/proper/lang/trunk/src: main/java/org/apache/commons/lang3/NotImplementedException.java test/java/org/apache/commons/lang3/NotImplementedExceptionTest.java

Hi Hen,


2013/10/21 <ba...@apache.org>

> 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
>

This author tag looks strange. Did you add it by purpose?


> + * @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
>
>
>


-- 
http://people.apache.org/~britter/
http://www.systemoutprintln.de/
http://twitter.com/BenediktRitter
http://github.com/britter

Re: svn commit: r1534380 - in /commons/proper/lang/trunk/src: main/java/org/apache/commons/lang3/NotImplementedException.java test/java/org/apache/commons/lang3/NotImplementedExceptionTest.java

Posted by Henri Yandell <fl...@gmail.com>.
On Tue, Oct 22, 2013 at 12:26 PM, Benedikt Ritter <br...@apache.org>wrote:

> Hi Hen,
>
>
> 2013/10/21 <ba...@apache.org>
>
> > + * @author Apache Software Foundation
> >
>
> This author tag looks strange. Did you add it by purpose?
>
>
Removed :)

Thanks for the catch; it was something we used to do in Commons but stopped
doing. When I copied the old code in from 2.x, it brought it back.

Hen