private ModelEMFResource getEMFResource(ModelId modelId) { try { Node folderNode = session.getNode(modelId.getFullPath()); Node fileNode = (Node) folderNode.getNodes().next(); Node fileItem = (Node) fileNode.getPrimaryItem(); InputStream is = fileItem.getProperty("jcr:data").getBinary().getStream(); return (ModelEMFResource) ModelParserFactory.getParser(fileNode.getName()).parse(is); } catch (Exception e) { throw new FatalModelRepositoryException("Something went wrong accessing the repository", e); } }
@Test public void shouldFindMasterBranchAsPrimaryItemUnderTreeNode() throws Exception { Node git = gitNode(); Node tree = git.getNode("tree"); Item primaryItem = tree.getPrimaryItem(); assertThat(primaryItem, is(notNullValue())); assertThat(primaryItem, is(instanceOf(Node.class))); Node primaryNode = (Node) primaryItem; assertThat(primaryNode.getName(), is("master")); assertThat(primaryNode.getParent(), is(sameInstance(tree))); assertThat(primaryNode, is(sameInstance(tree.getNode("master")))); }
public Node getEditNode(String nodeType) throws Exception { Node uploadNode = getUploadedNode(); try { Item primaryItem = uploadNode.getPrimaryItem(); if (primaryItem == null || !primaryItem.isNode()) return uploadNode; if (primaryItem != null && primaryItem.isNode()) { Node primaryNode = (Node) primaryItem; if (primaryNode.isNodeType(nodeType)) return primaryNode; } } catch (Exception e) { if (LOG.isWarnEnabled()) { LOG.warn(e.getMessage()); } } return uploadNode; }
@Override public byte[] getModelContent(ModelId modelId, ContentType contentType) { try { Node folderNode = session.getNode(modelId.getFullPath()); Node fileNode = (Node) folderNode.getNodes().next(); Node fileItem = (Node) fileNode.getPrimaryItem(); InputStream is = fileItem.getProperty("jcr:data").getBinary().getStream(); if (contentType == ContentType.XMI) { ModelEMFResource resource = (ModelEMFResource) ModelParserFactory.getParser(fileNode.getName()).parse(is); return resource.toXMI(); } else { return IOUtils.toByteArray(is); } } catch (PathNotFoundException e) { throw new ModelNotFoundException("Could not find model with the given model id", e); } catch (Exception e) { throw new FatalModelRepositoryException("Something went wrong accessing the repository", e); } }