From 13016497f151449809164c0ae97a55736385b1d6 Mon Sep 17 00:00:00 2001 From: "lucio.lelii" Date: Tue, 4 May 2021 18:26:30 +0200 Subject: [PATCH] fixed a bug on Excludes --- .../handlers/items/Node2ItemConverter.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/gcube/data/access/storagehub/handlers/items/Node2ItemConverter.java b/src/main/java/org/gcube/data/access/storagehub/handlers/items/Node2ItemConverter.java index 5a9e41c..a66c3ff 100644 --- a/src/main/java/org/gcube/data/access/storagehub/handlers/items/Node2ItemConverter.java +++ b/src/main/java/org/gcube/data/access/storagehub/handlers/items/Node2ItemConverter.java @@ -79,7 +79,7 @@ public class Node2ItemConverter { public Content getContent(Node node) throws RepositoryException, BackendGenericError{ Content content = new Content(); - setGenericFields(node, Content.class, content); + setGenericFields(node, Content.class, null, content); return content; } @@ -92,7 +92,7 @@ public class Node2ItemConverter { msg.setWithAttachments(false); } - setRooItemCommonFields(node, Collections.emptyList(), Message.class, msg); + setRootItemCommonFields(node, Collections.emptyList(), Message.class, msg); return msg; } @@ -128,7 +128,7 @@ public class Node2ItemConverter { item.setLocked(node.isLocked()); - setRooItemCommonFields(node, excludes, classToHandle, item); + setRootItemCommonFields(node, excludes, classToHandle, item); return item; } @@ -141,7 +141,7 @@ public class Node2ItemConverter { } - private void setRooItemCommonFields(Node node, List excludes, Class classToHandle, T instance) throws RepositoryException{ + private void setRootItemCommonFields(Node node, List excludes, Class classToHandle, T instance) throws RepositoryException{ try{ instance.setParentId(node.getParent().getIdentifier()); @@ -159,11 +159,11 @@ public class Node2ItemConverter { instance.setPrimaryType(node.getPrimaryNodeType().getName()); - setGenericFields(node, classToHandle, instance); + setGenericFields(node, classToHandle, excludes, instance); } - private void setGenericFields(Node node, Class classToHandle, T instance){ + private void setGenericFields(Node node, Class classToHandle,List excludes, T instance){ for (Field field : retrieveAllFields(classToHandle)){ if (field.isAnnotationPresent(Attribute.class)){ Attribute attribute = field.getAnnotation(Attribute.class); @@ -180,6 +180,8 @@ public class Node2ItemConverter { } else if (field.isAnnotationPresent(NodeAttribute.class)){ String fieldNodeName = field.getAnnotation(NodeAttribute.class).value(); //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()); field.setAccessible(true); try{