return valueFactory.createValue(((Number)value).longValue()); } else if (value instanceof Double || value instanceof Float) { return valueFactory.createValue(((Number)value).doubleValue()); } else if (value instanceof Boolean) { return valueFactory.createValue((Boolean)value); try { Date date = dateFormat.parse(valueString); return valueFactory.createValue(date); } catch (ParseException e) { return valueFactory.createValue(valueString);
private void addFileContent( ZipInputStream zipInputStream, ZipEntry entry, Context context, Node zipFileNode ) throws RepositoryException, IOException { Node contentNode = zipFileNode.addNode(JcrConstants.JCR_CONTENT, JcrConstants.NT_RESOURCE); // on session pre-save the appropriate properties should be set automatically contentNode.addMixin(JcrConstants.MIX_LAST_MODIFIED); // set the content bytes byte[] contentBytes = readContent(zipInputStream); org.modeshape.jcr.api.Binary contentBinary = context.valueFactory().createBinary(contentBytes); contentNode.setProperty(JcrConstants.JCR_DATA, contentBinary); // Figure out the mime type ... String mimeType = contentBinary.getMimeType(entry.getName()); if (mimeType != null) { contentNode.setProperty(JcrConstants.JCR_MIME_TYPE, mimeType); } }
private void recordMetadata( Node rootNode, org.modeshape.jcr.api.ValueFactory valueFactory, MSOfficeMetadata metadata ) throws RepositoryException { setProperty(rootNode, TITLE, metadata.getTitle()); setProperty(rootNode, SUBJECT, metadata.getSubject()); setProperty(rootNode, AUTHOR, metadata.getAuthor()); setProperty(rootNode, KEYWORDS, metadata.getKeywords()); setProperty(rootNode, COMMENT, metadata.getComment()); setProperty(rootNode, TEMPLATE, metadata.getTemplate()); setProperty(rootNode, SAVED, valueFactory.createValue(metadata.getLastSaved())); setProperty(rootNode, REVISION, metadata.getRevision()); setProperty(rootNode, TOTAL_EDITING_TIME, metadata.getTotalEditingTime()); setProperty(rootNode, LAST_PRINTED, valueFactory.createValue(metadata.getLastPrinted())); setProperty(rootNode, CREATED, valueFactory.createValue(metadata.getCreated())); setProperty(rootNode, PAGES, metadata.getPages()); setProperty(rootNode, WORDS, metadata.getWords()); setProperty(rootNode, CHARACTERS, metadata.getCharacters()); setProperty(rootNode, CREATING_APPLICATION, metadata.getCreatingApplication()); setProperty(rootNode, THUMBNAIL, valueFactory.createBinary(metadata.getThumbnail())); }
@Test @FixFor("MODE-1969") public void shouldNotAllowSimpleReferencesWithoutMixReferenceableMixin() throws Exception { registerNodeTypes("cnd/simple-references.cnd"); JcrRootNode rootNode = session.getRootNode(); AbstractJcrNode a = rootNode.addNode("A"); org.modeshape.jcr.api.ValueFactory valueFactory = session.getValueFactory(); Node testNode = rootNode.addNode("test", "test:node"); try { testNode.setProperty("test:singleRef", valueFactory.createSimpleReference(a)); fail("Simple references should not be allowed if the target node doesn't have the mix:referenceable mixin"); } catch (RepositoryException e) { // expected } finally { a.remove(); testNode.remove(); session.save(); } }
private void recordMetadata( Node rootNode, org.modeshape.jcr.api.ValueFactory valueFactory, MSOfficeMetadata metadata ) throws RepositoryException { setProperty(rootNode, TITLE, metadata.getTitle()); setProperty(rootNode, SUBJECT, metadata.getSubject()); setProperty(rootNode, AUTHOR, metadata.getAuthor()); setProperty(rootNode, KEYWORDS, metadata.getKeywords()); setProperty(rootNode, COMMENT, metadata.getComment()); setProperty(rootNode, TEMPLATE, metadata.getTemplate()); setProperty(rootNode, SAVED, valueFactory.createValue(metadata.getLastSaved())); setProperty(rootNode, REVISION, metadata.getRevision()); setProperty(rootNode, TOTAL_EDITING_TIME, metadata.getTotalEditingTime()); setProperty(rootNode, LAST_PRINTED, valueFactory.createValue(metadata.getLastPrinted())); setProperty(rootNode, CREATED, valueFactory.createValue(metadata.getCreated())); setProperty(rootNode, PAGES, metadata.getPages()); setProperty(rootNode, WORDS, metadata.getWords()); setProperty(rootNode, CHARACTERS, metadata.getCharacters()); setProperty(rootNode, CREATING_APPLICATION, metadata.getCreatingApplication()); setProperty(rootNode, THUMBNAIL, valueFactory.createBinary(metadata.getThumbnail())); }
testNode.setProperty("test:singleRef", valueFactory.createSimpleReference(a)); testNode.setProperty("test:multiRef", new Value[] { valueFactory.createSimpleReference(b), valueFactory.createSimpleReference(c) }); session.save();
/** * @param node the node whose multi-valued property a value is being added to (cannot be <code>null</code>) * @param propertyName the multi-valued property name (cannot be <code>null</code> or empty) * @param newValue the value being added (cannot be <code>null</code> or empty) * @throws Exception if there is a problem adding the property value */ protected void addPropertyValue( final Node node, final String propertyName, final String newValue ) throws Exception { CheckArg.isNotEmpty(newValue, "newValue"); addPropertyValue(node, propertyName, this.context.valueFactory().createValue(newValue)); }
final Binary binary = modevf.createBinary(content, hint);
/** * @param node the node whose multi-valued property a value is being added to (cannot be <code>null</code>) * @param propertyName the multi-valued property name (cannot be <code>null</code> or empty) * @param newValue the value being added (cannot be <code>null</code> or empty) * @throws Exception if there is a problem adding the property value */ protected void addPropertyValue( final Node node, final String propertyName, final String newValue ) throws Exception { CheckArg.isNotEmpty(newValue, "newValue"); addPropertyValue(node, propertyName, this.context.valueFactory().createValue(newValue)); }
private void sequencePowerpoint( Node rootNode, org.modeshape.jcr.api.ValueFactory valueFactory, InputStream stream ) throws IOException, RepositoryException { PowerpointMetadata deck = PowerPointMetadataReader.instance(stream); recordMetadata(rootNode, valueFactory, deck.getMetadata()); for (SlideMetadata slideMetadata : deck.getSlides()) { Node slide = rootNode.addNode(SLIDE, SLIDE_NODE); setProperty(slide, TITLE, slideMetadata.getTitle()); setProperty(slide, TEXT, slideMetadata.getText()); setProperty(slide, NOTES, slideMetadata.getNotes()); setProperty(slide, THUMBNAIL, valueFactory.createBinary(slideMetadata.getThumbnail())); } }
final Value value = this.writer.getContext().valueFactory().createValue(defaultValue); propDefn.setDefaultValues(new Value[] {value}); propDefn.setAutoCreated(true);
private void sequencePowerpoint( Node rootNode, org.modeshape.jcr.api.ValueFactory valueFactory, InputStream stream ) throws IOException, RepositoryException { PowerpointMetadata deck = PowerPointMetadataReader.instance(stream); recordMetadata(rootNode, valueFactory, deck.getMetadata()); for (SlideMetadata slideMetadata : deck.getSlides()) { Node slide = rootNode.addNode(SLIDE, SLIDE_NODE); setProperty(slide, TITLE, slideMetadata.getTitle()); setProperty(slide, TEXT, slideMetadata.getText()); setProperty(slide, NOTES, slideMetadata.getNotes()); setProperty(slide, THUMBNAIL, valueFactory.createBinary(slideMetadata.getThumbnail())); } }
final Value value = this.writer.getContext().valueFactory().createValue(defaultValue); propDefn.setDefaultValues(new Value[] {value}); propDefn.setAutoCreated(true);
final Value newValue = this.writer.getContext().valueFactory().createValue(newModelType); Value[] modelTypes = null;
final Value newValue = this.writer.getContext().valueFactory().createValue(newModelType); Value[] modelTypes = null;
} else { referencerNode.setProperty(propertyName, new Value[] { this.context.valueFactory().createValue( resolved.getName()) });
} else { referencerNode.setProperty(propertyName, new Value[] { this.context.valueFactory().createValue( resolved.getName()) });
other3.setProperty("propC", "value3"); Value[] refValues = new Value[2]; refValues[0] = session.getValueFactory().createValue(other2); refValues[1] = session.getValueFactory().createValue(other3); other3.setProperty("otherNode", a); other3.setProperty("otherNodes", refValues);
@Test @FixFor( "MODE-2156" ) public void settingTheSameReferencePropertyMultipleTimeShouldNotIncreaseTheRefCount() throws Exception { JcrRootNode rootNode = session.getRootNode(); AbstractJcrNode a = rootNode.addNode("A"); a.addMixin("mix:referenceable"); org.modeshape.jcr.api.ValueFactory valueFactory = session.getValueFactory(); Node testNode = rootNode.addNode("test"); Value simpleReference = valueFactory.createValue(a); testNode.setProperty("ref", simpleReference); testNode.setProperty("ref", simpleReference); testNode.setProperty("ref", simpleReference); session.save(); testNode.getProperty("ref").remove(); session.save(); try { testNode.getProperty("ref").getNode(); fail("Target node for simple reference property should not be found"); } catch (javax.jcr.PathNotFoundException pne) { // expected } a.remove(); session.save(); testNode.remove(); session.save(); }
@FixFor( "MODE-2312" ) @Test public void shouldUseImplicitPathIndex() throws Exception { Node root = session().getRootNode(); Node newNode1 = root.addNode("nodeA"); newNode1.setProperty("foo", "X"); newNode1.addMixin("mix:referenceable"); Node newNode2 = root.addNode("nodeB"); newNode2.setProperty("foo", "Y"); session().save(); // print = true; // Compute a query plan that should use this index ... final String pathValue = newNode1.getPath(); Query query = jcrSql2Query("SELECT [jcr:path] FROM [nt:unstructured] WHERE [jcr:path] = '" + pathValue + "'"); validateQuery().rowCount(1L).useIndex(IndexPlanners.NODE_BY_PATH_INDEX_NAME).validate(query, query.execute()); query = jcrSql2Query("SELECT A.* FROM [nt:unstructured] AS A WHERE A.[jcr:path] = $pathValue"); query.bindValue("pathValue", valueFactory().createValue(pathValue)); validateQuery().rowCount(1L).useIndex(IndexPlanners.NODE_BY_PATH_INDEX_NAME).validate(query, query.execute()); }