use of org.pentaho.platform.api.repository2.unified.webservices.RepositoryFileTreeDto in project pentaho-platform by pentaho.
the class RepositoryFileTreeAdapter method marshal.
@Override
public RepositoryFileTreeDto marshal(final RepositoryFileTree v) {
RepositoryFileTreeDto treeDto = new RepositoryFileTreeDto();
RepositoryFileDto file = RepositoryFileAdapter.toFileDto(v, membersSet, exclude, includeAcls);
if (file != null) {
treeDto.setFile(RepositoryFileAdapter.toFileDto(v, membersSet, exclude, includeAcls));
List<RepositoryFileTreeDto> children = null;
if (v.getChildren() != null) {
children = new ArrayList<RepositoryFileTreeDto>();
for (RepositoryFileTree child : v.getChildren()) {
RepositoryFileTreeDto childTreeDto = marshal(child);
if (childTreeDto != null) {
children.add(childTreeDto);
}
}
}
treeDto.setChildren(children);
return treeDto;
} else {
return null;
}
}
use of org.pentaho.platform.api.repository2.unified.webservices.RepositoryFileTreeDto in project pentaho-platform by pentaho.
the class RepositoryFileUtils method convertFromRepositoryFileTree.
public static RepositoryFileTreeDto convertFromRepositoryFileTree(RepositoryFileTree tree) {
RepositoryFileTreeDto fileTreeDto = new RepositoryFileTreeDto();
List<RepositoryFileTreeDto> fileList = new ArrayList<RepositoryFileTreeDto>();
RepositoryFileDto file = convertFromRepositoryFile(tree.getFile());
fileTreeDto.setFile(file);
for (RepositoryFileTree treeItem : tree.getChildren()) {
fileList.add(convertFromRepositoryFileTree(treeItem));
}
fileTreeDto.setChildren(fileList);
return fileTreeDto;
}
use of org.pentaho.platform.api.repository2.unified.webservices.RepositoryFileTreeDto in project pentaho-platform by pentaho.
the class RepositoryFileUtils method convertToRepositoryFileTree.
public static RepositoryFileTree convertToRepositoryFileTree(RepositoryFileTreeDto tree) {
RepositoryFileTree fileTree = new RepositoryFileTree();
List<RepositoryFileTree> fileList = new ArrayList<RepositoryFileTree>();
RepositoryFile file = convertToRepositoryFile(tree.getFile());
fileTree.setFile(file);
for (RepositoryFileTreeDto treeItem : tree.getChildren()) {
fileList.add(convertToRepositoryFileTree(treeItem));
}
fileTree.setChildren(fileList);
return fileTree;
}
use of org.pentaho.platform.api.repository2.unified.webservices.RepositoryFileTreeDto in project pentaho-platform by pentaho.
the class RepositoryFileTreeAdapterTest method testWhenChildrenIsDeleted.
@Test
public void testWhenChildrenIsDeleted() throws Exception {
// mock RepositoryFile to return null
RepositoryFile mockFile = mock(RepositoryFileProxy.class);
when(mockFile.isHidden()).thenReturn(null);
// create tree with the mockFile
RepositoryFileTree nullValueDir = new RepositoryFileTree(mockFile, Collections.<RepositoryFileTree>emptyList());
RepositoryFile root = new RepositoryFile.Builder("rootDir").build();
ArrayList<RepositoryFileTree> children = new ArrayList<RepositoryFileTree>(1);
children.add(nullValueDir);
RepositoryFileTree rootDir = new RepositoryFileTree(root, children);
// to DTO
RepositoryFileTreeAdapter adapter = new RepositoryFileTreeAdapter();
RepositoryFileTreeDto dtoThere = adapter.marshal(rootDir);
// as isHidden() returns null, it's expected that null was returned, so root has no children
assertTrue(dtoThere.getChildren().isEmpty());
}
use of org.pentaho.platform.api.repository2.unified.webservices.RepositoryFileTreeDto in project pentaho-platform by pentaho.
the class RepositoryFileTreeAdapterTest method testBIServer7777.
/**
* Assert empty list in RepositoryFileTree#children survives full jaxb serialization roundtrip
*/
@Test
public void testBIServer7777() throws Exception {
IUnifiedRepository unifiedRepository = mock(IUnifiedRepository.class);
PentahoSystem.registerObject(unifiedRepository);
RepositoryFileAcl acl = new RepositoryFileAcl.Builder("admin").build();
when(unifiedRepository.getAcl(anyString())).thenReturn(acl);
IRepositoryVersionManager mockRepositoryVersionManager = mock(IRepositoryVersionManager.class);
when(mockRepositoryVersionManager.isVersioningEnabled(anyString())).thenReturn(true);
when(mockRepositoryVersionManager.isVersionCommentEnabled(anyString())).thenReturn(false);
JcrRepositoryFileUtils.setRepositoryVersionManager(mockRepositoryVersionManager);
// file tree with empty children
RepositoryFile empty = new RepositoryFile.Builder("empty").build();
RepositoryFileTree emptyDir = new RepositoryFileTree(empty, Collections.<RepositoryFileTree>emptyList());
RepositoryFile root = new RepositoryFile.Builder("rootDir").build();
ArrayList<RepositoryFileTree> children = new ArrayList<RepositoryFileTree>(1);
children.add(emptyDir);
RepositoryFileTree rootDir = new RepositoryFileTree(root, children);
// to DTO
RepositoryFileTreeAdapter adapter = new RepositoryFileTreeAdapter();
RepositoryFileTreeDto dtoThere = adapter.marshal(rootDir);
assertNotNull(dtoThere.getChildren().get(0).getChildren());
// serialize
final JAXBContext jaxbContext = JAXBContext.newInstance(RepositoryFileTreeDto.class);
Marshaller marshaller = jaxbContext.createMarshaller();
StringWriter sw = new StringWriter();
marshaller.marshal(dtoThere, sw);
// and bring it back
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
StringReader sr = new StringReader(sw.toString());
RepositoryFileTreeDto dtoBackAgain = (RepositoryFileTreeDto) unmarshaller.unmarshal(sr);
assertNotNull(dtoBackAgain.getChildren().get(0).getChildren());
// unmarshall
RepositoryFileTree rootDir2 = adapter.unmarshal(dtoBackAgain);
assertNotNull(rootDir2.getChildren().get(0).getChildren());
assertEquals(rootDir, rootDir2);
}
Aggregations