fixed a bug on Excludes

This commit is contained in:
lucio.lelii 2021-05-04 18:26:30 +02:00
parent eab7dc19b4
commit 13016497f1
1 changed files with 8 additions and 6 deletions

View File

@ -79,7 +79,7 @@ public class Node2ItemConverter {
public Content getContent(Node node) throws RepositoryException, BackendGenericError{ public Content getContent(Node node) throws RepositoryException, BackendGenericError{
Content content = new Content(); Content content = new Content();
setGenericFields(node, Content.class, content); setGenericFields(node, Content.class, null, content);
return content; return content;
} }
@ -92,7 +92,7 @@ public class Node2ItemConverter {
msg.setWithAttachments(false); msg.setWithAttachments(false);
} }
setRooItemCommonFields(node, Collections.emptyList(), Message.class, msg); setRootItemCommonFields(node, Collections.emptyList(), Message.class, msg);
return msg; return msg;
} }
@ -128,7 +128,7 @@ public class Node2ItemConverter {
item.setLocked(node.isLocked()); item.setLocked(node.isLocked());
setRooItemCommonFields(node, excludes, classToHandle, item); setRootItemCommonFields(node, excludes, classToHandle, item);
return item; return item;
} }
@ -141,7 +141,7 @@ public class Node2ItemConverter {
} }
private <T extends RootItem> void setRooItemCommonFields(Node node, List<String> excludes, Class<T> classToHandle, T instance) throws RepositoryException{ private <T extends RootItem> void setRootItemCommonFields(Node node, List<String> excludes, Class<T> classToHandle, T instance) throws RepositoryException{
try{ try{
instance.setParentId(node.getParent().getIdentifier()); instance.setParentId(node.getParent().getIdentifier());
@ -159,11 +159,11 @@ public class Node2ItemConverter {
instance.setPrimaryType(node.getPrimaryNodeType().getName()); instance.setPrimaryType(node.getPrimaryNodeType().getName());
setGenericFields(node, classToHandle, instance); setGenericFields(node, classToHandle, excludes, instance);
} }
private <T> void setGenericFields(Node node, Class<T> classToHandle, T instance){ private <T> void setGenericFields(Node node, Class<T> classToHandle,List<String> excludes, T instance){
for (Field field : retrieveAllFields(classToHandle)){ for (Field field : retrieveAllFields(classToHandle)){
if (field.isAnnotationPresent(Attribute.class)){ if (field.isAnnotationPresent(Attribute.class)){
Attribute attribute = field.getAnnotation(Attribute.class); Attribute attribute = field.getAnnotation(Attribute.class);
@ -180,6 +180,8 @@ public class Node2ItemConverter {
} else if (field.isAnnotationPresent(NodeAttribute.class)){ } else if (field.isAnnotationPresent(NodeAttribute.class)){
String fieldNodeName = field.getAnnotation(NodeAttribute.class).value(); String fieldNodeName = field.getAnnotation(NodeAttribute.class).value();
//for now it excludes only first level node //for now it excludes only first level node
if (excludes!=null && excludes.contains(fieldNodeName)) continue;
//for now it excludes only first level node
logger.trace("retrieving field node "+field.getName()); logger.trace("retrieving field node "+field.getName());
field.setAccessible(true); field.setAccessible(true);
try{ try{