Hi Hen,
2013/10/21 <bay...@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