mbien commented on code in PR #5444:
URL: https://github.com/apache/netbeans/pull/5444#discussion_r1099601377
##########
java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/editor/hyperlink/NamedQueryHyperlinkProvider.java:
##########
@@ -155,73 +152,69 @@ private void goToNQ(Document doc, int offset) {
if (ent != null) {
try {
- js.runUserActionTask(new Task<CompilationController>() {
-
- @Override
- public void run(CompilationController parameter) throws
Exception {
- parameter.toPhase(JavaSource.Phase.RESOLVED);
- AnnotationMirror foundAm = null;
- AnnotationValue get = null;
- Trees trees = parameter.getTrees();
-
- TypeElement entityElement =
parameter.getElements().getTypeElement(entClasst);trees.getSourcePositions().getStartPosition(parameter.getCompilationUnit(),
trees.getPath(entityElement).getLeaf());
- List<? extends AnnotationMirror> annotationMirrors =
entityElement.getAnnotationMirrors();
- if (annotationMirrors != null) {
- Iterator<? extends AnnotationMirror> iterator =
annotationMirrors.iterator();
- while (iterator.hasNext() && foundAm == null) {
- AnnotationMirror next = iterator.next();
- if
(next.getAnnotationType().toString().equals("javax.persistence.NamedQueries"))
{//NOI18N
-
- Map<? extends ExecutableElement, ? extends
AnnotationValue> maps = next.getElementValues();
-
- for (AnnotationValue vl : maps.values()) {
- List lst = (List) vl.getValue();
- for (Object val : lst) {
- if (val instanceof
AnnotationMirror) {
- AnnotationMirror am =
(AnnotationMirror) val;
- if
("javax.persistence.NamedQuery".equals(am.getAnnotationType().toString()))
{//NOI18N
- Map<? extends
ExecutableElement, ? extends AnnotationValue> elementValues =
am.getElementValues();
- for (ExecutableElement el
: elementValues.keySet()) {
- if
(el.getSimpleName().contentEquals("name")) { //NOI18N
- get =
elementValues.get(el);
- if
(get.getValue().toString().equals(nam)) {
- foundAm = am;
- break;
- }
+ js.runUserActionTask( (CompilationController parameter) -> {
+ parameter.toPhase(JavaSource.Phase.RESOLVED);
+ AnnotationMirror foundAm = null;
+ AnnotationValue get = null;
+ Trees trees = parameter.getTrees();
+ TypeElement entityElement =
parameter.getElements().getTypeElement(entClasst);
+
+ List<? extends AnnotationMirror> annotationMirrors =
entityElement.getAnnotationMirrors();
Review Comment:
good find! a whole line was hiding behind that semicolon :)
##########
java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/unit/PUDataObject.java:
##########
@@ -463,14 +446,10 @@ protected void updateDataFromModel(Object model, FileLock
lock, boolean modify)
if (model == null) {
return;
}
- try {
- Writer out = new StringWriter();
+ try (Writer out = new StringWriter()) {
((BaseBean) model).write(out);
- out.close();
getDataCache().setData(lock, out.toString(), modify);
- } catch (IOException e) {
- LOG.log(Level.INFO, null, e);
- } catch (Schema2BeansException e) {
+ } catch (IOException | Schema2BeansException e) {
Review Comment:
this technically doesn't need an arm block since `StringWriter`'s `close()`
is a no-op.
But it doesn't hurt I guess.
##########
java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/jpacontroller/JpaControllerGenerator.java:
##########
@@ -226,488 +219,501 @@ private static FileObject generateJpaController(
return controllerFileObject;//don't need npe later
}
}
- controllerJavaSource.runModificationTask(new Task<WorkingCopy>() {
- @Override
- public void run(WorkingCopy workingCopy) throws IOException {
- workingCopy.toPhase(JavaSource.Phase.RESOLVED);
-
- ExecutableElement idGetterElement =
idGetter.resolve(workingCopy);
- idGetterName[0] =
idGetterElement.getSimpleName().toString();
- TypeMirror idType = idGetterElement.getReturnType();
- TypeElement idClass = null;
- if (TypeKind.DECLARED == idType.getKind()) {
- DeclaredType declaredType = (DeclaredType) idType;
- idClass = (TypeElement) declaredType.asElement();
- embeddable[0] = idClass != null &&
JpaControllerUtil.isEmbeddableClass(idClass);
- idPropertyType[0] =
idClass.getQualifiedName().toString();
- if(!embeddable[0] &&
JpaControllerUtil.haveId(idClass)){//NOI18N
- //handle derived id, case entity/relationship
without composite keys
- derived[0] =
JpaControllerUtil.isRelationship(idGetterElement
,JpaControllerUtil.isFieldAccess(idClass)) != JpaControllerUtil.REL_NONE;
- if(derived[0]){
- ExecutableElement derivedIdGetterElement =
findPrimaryKeyGetter(workingCopy, idClass);
- derivedIdGetterName[0] =
derivedIdGetterElement.getSimpleName().toString();
- TypeMirror derivedIdType =
derivedIdGetterElement.getReturnType();
- TypeElement derivedIdClass;
- if (TypeKind.DECLARED == idType.getKind()) {
- DeclaredType derivedDeclaredType =
(DeclaredType) derivedIdType;
- derivedIdClass = (TypeElement)
derivedDeclaredType.asElement();
- derivedIdPropertyType[0] =
derivedIdClass.getQualifiedName().toString();
- }
+ controllerJavaSource.runModificationTask( (WorkingCopy
workingCopy) -> {
+ workingCopy.toPhase(JavaSource.Phase.RESOLVED);
+
+ ExecutableElement idGetterElement =
idGetter.resolve(workingCopy);
+ idGetterName[0] = idGetterElement.getSimpleName().toString();
+ TypeMirror idType = idGetterElement.getReturnType();
+ TypeElement idClass = null;
+ if (null == idType.getKind()) {
+ //instead of throwing exceptions later, just use Object
+ idPropertyType[0] = "java.lang.Object";//NOI18N
+ } else {
+ switch (idType.getKind()) {
+ case DECLARED:
+ DeclaredType declaredType = (DeclaredType) idType;
+ idClass = (TypeElement) declaredType.asElement();
+ embeddable[0] = idClass != null &&
JpaControllerUtil.isEmbeddableClass(idClass);
+ idPropertyType[0] =
idClass.getQualifiedName().toString();
+ if(!embeddable[0] &&
JpaControllerUtil.haveId(idClass)){//NOI18N
+ //handle derived id, case entity/relationship
without composite keys
+ derived[0] =
JpaControllerUtil.isRelationship(idGetterElement
,JpaControllerUtil.isFieldAccess(idClass)) != JpaControllerUtil.REL_NONE;
+ if(derived[0]){
+ ExecutableElement derivedIdGetterElement
= findPrimaryKeyGetter(workingCopy, idClass);
+ derivedIdGetterName[0] =
derivedIdGetterElement.getSimpleName().toString();
+ TypeMirror derivedIdType =
derivedIdGetterElement.getReturnType();
+ TypeElement derivedIdClass;
+ if (TypeKind.DECLARED == idType.getKind())
{
+ DeclaredType derivedDeclaredType =
(DeclaredType) derivedIdType;
+ derivedIdClass = (TypeElement)
derivedDeclaredType.asElement();
+ derivedIdPropertyType[0] =
derivedIdClass.getQualifiedName().toString();
+ }
+ }
}
- }
- } else if (TypeKind.BOOLEAN == idType.getKind()) {
- idPropertyType[0] = "boolean";//NOI18N
- } else if (TypeKind.BYTE == idType.getKind()) {
- idPropertyType[0] = "byte";//NOI18N
- } else if (TypeKind.CHAR == idType.getKind()) {
- idPropertyType[0] = "char";//NOI18N
- } else if (TypeKind.DOUBLE == idType.getKind()) {
- idPropertyType[0] = "double";//NOI18N
- } else if (TypeKind.FLOAT == idType.getKind()) {
- idPropertyType[0] = "float";//NOI18N
- } else if (TypeKind.INT == idType.getKind()) {
- idPropertyType[0] = "int";//NOI18N
- } else if (TypeKind.LONG == idType.getKind()) {
- idPropertyType[0] = "long";//NOI18N
- } else if (TypeKind.SHORT == idType.getKind()) {
- idPropertyType[0] = "short";//NOI18N
- } else {
- //instead of throwing exceptions later, just use Object
- idPropertyType[0] = "java.lang.Object";//NOI18N
+ break;
+ case BOOLEAN:
+ idPropertyType[0] = "boolean";//NOI18N
+ break;
+ case BYTE:
+ idPropertyType[0] = "byte";//NOI18N
+ break;
+ case CHAR:
+ idPropertyType[0] = "char";//NOI18N
+ break;
+ case DOUBLE:
+ idPropertyType[0] = "double";//NOI18N
+ break;
+ case FLOAT:
+ idPropertyType[0] = "float";//NOI18N
+ break;
+ case INT:
+ idPropertyType[0] = "int";//NOI18N
+ break;
+ case LONG:
+ idPropertyType[0] = "long";//NOI18N
+ break;
+ case SHORT:
+ idPropertyType[0] = "short";//NOI18N
+ break;
+ default:
+ //instead of throwing exceptions later, just use
Object
+ idPropertyType[0] = "java.lang.Object";//NOI18N
+ break;
}
+ }
+ String simpleIdPropertyType =
JpaControllerUtil.simpleClassName(idPropertyType[0]);
+
+ TypeElement controllerTypeElement =
SourceUtils.getPublicTopLevelElement(workingCopy);
+ ClassTree classTree =
workingCopy.getTrees().getTree(controllerTypeElement);
+ ClassTree modifiedClassTree = classTree;
+
+ int privateModifier = java.lang.reflect.Modifier.PRIVATE;
+ int publicModifier = java.lang.reflect.Modifier.PUBLIC;
+
+ CompilationUnitTree modifiedImportCut = null;
+
+ List<String> parameterTypes = new ArrayList<>();
+ List<String> parameterNames = new ArrayList<>();
+ String body = ""; //NOI18N
+ boolean isUserTransaction =
workingCopy.getClasspathInfo().getClassPath(ClasspathInfo.PathKind.COMPILE).findResource("javax/transaction/UserTransaction.class")!=null;
//NOI18N
+ if (isUserTransaction && isInjection) {
+ modifiedClassTree =
JpaControllerUtil.TreeMakerUtils.addVariable(modifiedClassTree, workingCopy,
"utx", "javax.transaction.UserTransaction", privateModifier, null, null);
//NOI18N
+ parameterTypes.add("javax.transaction.UserTransaction");
//NOI18N
+ parameterNames.add("utx"); //NOI18N
+ body = "this.utx = utx;\n"; //NOI18N
- String simpleIdPropertyType =
JpaControllerUtil.simpleClassName(idPropertyType[0]);
-
- TypeElement controllerTypeElement =
SourceUtils.getPublicTopLevelElement(workingCopy);
- ClassTree classTree =
workingCopy.getTrees().getTree(controllerTypeElement);
- ClassTree modifiedClassTree = classTree;
-
- int privateModifier = java.lang.reflect.Modifier.PRIVATE;
- int publicModifier = java.lang.reflect.Modifier.PUBLIC;
-
- CompilationUnitTree modifiedImportCut = null;
-
- List<String> parameterTypes = new ArrayList<String>();
- List<String> parameterNames = new ArrayList<String>();
- String body = ""; //NOI18N
- boolean isUserTransaction =
workingCopy.getClasspathInfo().getClassPath(ClasspathInfo.PathKind.COMPILE).findResource("javax/transaction/UserTransaction.class")!=null;
//NOI18N
- if (isUserTransaction && isInjection) {
- modifiedClassTree =
JpaControllerUtil.TreeMakerUtils.addVariable(modifiedClassTree, workingCopy,
"utx", "javax.transaction.UserTransaction", privateModifier, null, null);
//NOI18N
-
parameterTypes.add("javax.transaction.UserTransaction"); //NOI18N
- parameterNames.add("utx"); //NOI18N
- body = "this.utx = utx;\n"; //NOI18N
-
- }
- modifiedClassTree =
JpaControllerUtil.TreeMakerUtils.addVariable(modifiedClassTree, workingCopy,
"emf", "javax.persistence.EntityManagerFactory", privateModifier, null, null);
//NOI18N
-
parameterTypes.add("javax.persistence.EntityManagerFactory"); //NOI18N
- parameterNames.add("emf"); //NOI18N
- body += "this.emf = emf;"; //NOI18N
- MethodInfo mi = new MethodInfo("<init>", publicModifier,
"void", null, parameterTypes.toArray(new String[parameterTypes.size()]),
//NOI18N
- parameterNames.toArray(new
String[parameterNames.size()]), body, null, null);
- modifiedClassTree =
JpaControllerUtil.TreeMakerUtils.modifyDefaultConstructor(classTree,
modifiedClassTree, workingCopy, mi);
-
- MethodInfo methodInfo = new MethodInfo("getEntityManager",
publicModifier, "javax.persistence.EntityManager", null, null, null, "return
emf.createEntityManager();", null, null);
- modifiedClassTree =
JpaControllerUtil.TreeMakerUtils.addMethod(modifiedClassTree, workingCopy,
methodInfo);
-
- String bodyText;
- StringBuilder updateRelatedInCreate = new StringBuilder();
- StringBuilder updateRelatedInEditPre = new StringBuilder();
- StringBuilder attachRelatedInEdit = new StringBuilder();
- StringBuilder updateRelatedInEditPost = new
StringBuilder();
- StringBuilder updateRelatedInDestroy = new StringBuilder();
- StringBuilder initRelatedInCreate = new StringBuilder();
- StringBuilder illegalOrphansInCreate = new StringBuilder();
- StringBuilder illegalOrphansInEdit = new StringBuilder();
- StringBuilder illegalOrphansInDestroy = new
StringBuilder();
- StringBuilder initCollectionsInCreate = new
StringBuilder(); //useful in case user removes listbox from New.jsp
-
- List<ElementHandle<ExecutableElement>> allRelMethods = new
ArrayList<ElementHandle<ExecutableElement>>(toOneRelMethods);
- allRelMethods.addAll(toManyRelMethods);
-
- String[] importFqs = {"javax.persistence.Query",
- "javax.persistence.EntityNotFoundException"
- };
+ }
+ modifiedClassTree =
JpaControllerUtil.TreeMakerUtils.addVariable(modifiedClassTree, workingCopy,
"emf", "javax.persistence.EntityManagerFactory", privateModifier, null, null);
//NOI18N
+ parameterTypes.add("javax.persistence.EntityManagerFactory");
//NOI18N
+ parameterNames.add("emf"); //NOI18N
+ body += "this.emf = emf;"; //NOI18N
+ MethodInfo mi = new MethodInfo("<init>", publicModifier,
"void", null, parameterTypes.toArray(new String[0]), //NOI18N
+parameterNames.toArray(new String[0]), body, null, null);
Review Comment:
does github display this correctly and there is no indentation before
`parameterNames.toArray(new String[0]), body, null, null);`?
##########
java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/editor/completion/ETCompletionContextResolver.java:
##########
@@ -105,12 +104,7 @@ private List<JPACompletionItem>
completecreateNamedQueryparameters(JPACodeComple
}
if (ecs != null) {
try {
- entities = ecs.getEntityMappingsModel(false).runReadAction(new
MetadataModelAction<EntityMappingsMetadata, Entity[]>() {
- @Override
- public Entity[] run(EntityMappingsMetadata metadata)
throws Exception {
- return metadata.getRoot().getEntity();
- }
- });
+ entities = ecs.getEntityMappingsModel(false).runReadAction(
(EntityMappingsMetadata metadata) -> metadata.getRoot().getEntity() );
Review Comment:
just a nitpick. Consider the one-action-per-line formatting when method
chaining is used. Makes the lines shorter.
```java
entities = ecs.getEntityMappingsModel(false)
.runReadAction( (EntityMappingsMetadata metadata) ->
metadata.getRoot().getEntity() );
```
there are many comparable occurrences like this one
##########
java/j2ee.persistence/src/org/netbeans/modules/j2ee/persistence/wizard/fromdb/JavaPersistenceGenerator.java:
##########
@@ -826,21 +809,15 @@ String getMemberType(EntityMember m) {
}
private boolean isCharacterType(String type) {
- if ("java.lang.String".equals(type)) { // NOI18N
- // XXX also need to check for char[] and Character[]
- // (better to use TypeMirror)
- return true;
- }
- return false;
+ // XXX also need to check for char[] and Character[]
+ // (better to use TypeMirror)
+ return "java.lang.String".equals(type); // NOI18N
}
private boolean isDecimalType(String type) {
- if ("java.lang.Double".equals(type) || // NOI18N
+ return "java.lang.Double".equals(type) || // NOI18N
"java.lang.Float".equals(type) || // NOI18N
- "java.math.BigDecimal".equals(type)) { // NOI18N
- return true;
- }
- return false;
+ "java.math.BigDecimal".equals(type); // NOI18N
}
Review Comment:
could be a switch over string constants. Usually faster, but I don't think
this matters here tbh.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists