mirror of
https://github.com/tiennm99/lombok.git
synced 2026-10-15 18:15:59 +00:00
[UtilityClass] [issue #2384] Added a test to confirm no issue.
added some tests to confirm that lombok makes things static if needed.
This commit is contained in:
5 files changed
+27
-4
No files matched your search
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Project Lombok Authors.
|
||||
* Copyright (C) 2015-2020 The Project Lombok Authors.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -113,7 +113,7 @@ public class HandleUtilityClass extends EclipseAnnotationHandler<UtilityClass> {
|
||||
if (typeNode.up().getKind() == Kind.COMPILATION_UNIT) markStatic = false;
|
||||
if (markStatic && typeNode.up().getKind() == Kind.TYPE) {
|
||||
TypeDeclaration typeDecl = (TypeDeclaration) typeNode.up().get();
|
||||
if ((typeDecl.modifiers & ClassFileConstants.AccInterface) != 0) markStatic = false;
|
||||
if ((typeDecl.modifiers & (ClassFileConstants.AccInterface | ClassFileConstants.AccAnnotation | ClassFileConstants.AccEnum)) != 0) markStatic = false;
|
||||
}
|
||||
|
||||
if (markStatic) classDecl.modifiers |= ClassFileConstants.AccStatic;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Project Lombok Authors.
|
||||
* Copyright (C) 2015-2020 The Project Lombok Authors.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -110,7 +110,7 @@ public class HandleUtilityClass extends JavacAnnotationHandler<UtilityClass> {
|
||||
if (typeNode.up().getKind() == Kind.COMPILATION_UNIT) markStatic = false;
|
||||
if (markStatic && typeNode.up().getKind() == Kind.TYPE) {
|
||||
JCClassDecl typeDecl = (JCClassDecl) typeNode.up().get();
|
||||
if ((typeDecl.mods.flags & Flags.INTERFACE) != 0) markStatic = false;
|
||||
if ((typeDecl.mods.flags & (Flags.INTERFACE | Flags.ANNOTATION | Flags.ENUM)) != 0) markStatic = false;
|
||||
}
|
||||
|
||||
if (markStatic) classDecl.mods.flags |= Flags.STATIC;
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
class UtilityClassInner {
|
||||
static final class UtilClass {
|
||||
@java.lang.SuppressWarnings("all")
|
||||
private UtilClass() {
|
||||
throw new java.lang.UnsupportedOperationException("This is a utility class and cannot be instantiated");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
class UtilityClassInner {
|
||||
static final @lombok.experimental.UtilityClass class UtilClass {
|
||||
private @java.lang.SuppressWarnings("all") UtilClass() {
|
||||
super();
|
||||
throw new java.lang.UnsupportedOperationException("This is a utility class and cannot be instantiated");
|
||||
}
|
||||
}
|
||||
UtilityClassInner() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
class UtilityClassInner {
|
||||
@lombok.experimental.UtilityClass
|
||||
class UtilClass {}
|
||||
}
|
||||
Reference in new issue
Block a user