diff options
author | Reinier Zwitserloot <r.zwitserloot@projectlombok.org> | 2021-04-16 06:40:35 +0200 |
---|---|---|
committer | Reinier Zwitserloot <r.zwitserloot@projectlombok.org> | 2021-04-16 06:40:35 +0200 |
commit | 415e303ac283df8d694b311f4f8df08f6e79cf0e (patch) | |
tree | 99c4e502fdb90db2e8e1e27ebf855b236ac41b59 /test | |
parent | 2e212de523407c8d9f4471fea573c6c70164513b (diff) | |
download | lombok-415e303ac283df8d694b311f4f8df08f6e79cf0e.tar.gz lombok-415e303ac283df8d694b311f4f8df08f6e79cf0e.tar.bz2 lombok-415e303ac283df8d694b311f4f8df08f6e79cf0e.zip |
[pr 2702] finishing the `@StandardException` feature.
* rewritten how it works a bit: Now compatible with parent exceptions that don't have the Throwable variants.
* rewritten how it works a bit: You can now provide the full constructor only; the rest will forward to it.
* fixing up style.
* rewrite the docs.
Diffstat (limited to 'test')
4 files changed, 53 insertions, 19 deletions
diff --git a/test/transform/resource/after-delombok/StandardExceptions.java b/test/transform/resource/after-delombok/StandardExceptions.java index 47453f50..d60fcaf2 100644 --- a/test/transform/resource/after-delombok/StandardExceptions.java +++ b/test/transform/resource/after-delombok/StandardExceptions.java @@ -1,39 +1,36 @@ class EmptyException extends Exception { @java.lang.SuppressWarnings("all") public EmptyException() { + this(null, null); } - @java.lang.SuppressWarnings("all") - public EmptyException(final String message) { - super(message); + public EmptyException(final java.lang.String message) { + this(message, null); } - @java.lang.SuppressWarnings("all") - public EmptyException(final Throwable cause) { - super(cause); + public EmptyException(final java.lang.Throwable cause) { + this(cause != null ? cause.getMessage() : null, cause); } - @java.lang.SuppressWarnings("all") - public EmptyException(final String message, final Throwable cause) { - super(message, cause); + public EmptyException(final java.lang.String message, final java.lang.Throwable cause) { + super(message); + if (cause != null) super.initCause(cause); } } class NoArgsException extends Exception { public NoArgsException() { } - @java.lang.SuppressWarnings("all") - public NoArgsException(final String message) { - super(message); + protected NoArgsException(final java.lang.String message) { + this(message, null); } - @java.lang.SuppressWarnings("all") - public NoArgsException(final Throwable cause) { - super(cause); + protected NoArgsException(final java.lang.Throwable cause) { + this(cause != null ? cause.getMessage() : null, cause); } - @java.lang.SuppressWarnings("all") - public NoArgsException(final String message, final Throwable cause) { - super(message, cause); + protected NoArgsException(final java.lang.String message, final java.lang.Throwable cause) { + super(message); + if (cause != null) super.initCause(cause); } }
\ No newline at end of file diff --git a/test/transform/resource/after-ecj/StandardExceptions.java b/test/transform/resource/after-ecj/StandardExceptions.java new file mode 100644 index 00000000..a26a16f7 --- /dev/null +++ b/test/transform/resource/after-ecj/StandardExceptions.java @@ -0,0 +1,34 @@ +import lombok.AccessLevel; +import lombok.experimental.StandardException; +@StandardException class EmptyException extends Exception { + public @java.lang.SuppressWarnings("all") EmptyException() { + this(null, null); + } + public @java.lang.SuppressWarnings("all") EmptyException(final java.lang.String message) { + this(message, null); + } + public @java.lang.SuppressWarnings("all") EmptyException(final java.lang.Throwable cause) { + this(((cause != null) ? cause.getMessage() : null), cause); + } + public @java.lang.SuppressWarnings("all") EmptyException(final java.lang.String message, final java.lang.Throwable cause) { + super(message); + if ((cause != null)) + super.initCause(cause); + } +} +@StandardException(access = AccessLevel.PROTECTED) class NoArgsException extends Exception { + public NoArgsException() { + super(); + } + protected @java.lang.SuppressWarnings("all") NoArgsException(final java.lang.String message) { + this(message, null); + } + protected @java.lang.SuppressWarnings("all") NoArgsException(final java.lang.Throwable cause) { + this(((cause != null) ? cause.getMessage() : null), cause); + } + protected @java.lang.SuppressWarnings("all") NoArgsException(final java.lang.String message, final java.lang.Throwable cause) { + super(message); + if ((cause != null)) + super.initCause(cause); + } +}
\ No newline at end of file diff --git a/test/transform/resource/before/StandardExceptions.java b/test/transform/resource/before/StandardExceptions.java index 939e1b6b..1316011d 100644 --- a/test/transform/resource/before/StandardExceptions.java +++ b/test/transform/resource/before/StandardExceptions.java @@ -1,8 +1,9 @@ +import lombok.AccessLevel; import lombok.experimental.StandardException; @StandardException class EmptyException extends Exception { } -@StandardException class NoArgsException extends Exception { +@StandardException(access = AccessLevel.PROTECTED) class NoArgsException extends Exception { public NoArgsException() { } } diff --git a/test/transform/resource/messages-ecj/StandardExceptions.java.messages b/test/transform/resource/messages-ecj/StandardExceptions.java.messages new file mode 100644 index 00000000..6fdc61c5 --- /dev/null +++ b/test/transform/resource/messages-ecj/StandardExceptions.java.messages @@ -0,0 +1,2 @@ +4 The serializable class EmptyException does not declare a static final serialVersionUID field of type long +6 The serializable class NoArgsException does not declare a static final serialVersionUID field of type long |