Search in sources :

Example 41 with Name

use of org.apache.jackrabbit.spi.Name in project jackrabbit by apache.

the class BatchTest method testSetDateValue.

public void testSetDateValue() throws RepositoryException {
    NodeId nid = getNodeId(testPath);
    Name propName = resolver.getQName("dateProp");
    QValue v = rs.getQValueFactory().create(Calendar.getInstance());
    Batch b = rs.createBatch(si, nid);
    b.addProperty(nid, propName, v);
    rs.submit(b);
    PropertyInfo pi = rs.getPropertyInfo(si, getPropertyId(nid, propName));
    assertFalse(pi.isMultiValued());
    assertEquals(v, pi.getValues()[0]);
    assertEquals(v.getString(), pi.getValues()[0].getString());
    assertEquals(PropertyType.DATE, pi.getType());
    pi = getPropertyInfo(nid, propName);
    assertEquals(v, pi.getValues()[0]);
    assertEquals(v.getString(), pi.getValues()[0].getString());
    assertEquals(PropertyType.DATE, pi.getType());
}
Also used : QValue(org.apache.jackrabbit.spi.QValue) Batch(org.apache.jackrabbit.spi.Batch) NodeId(org.apache.jackrabbit.spi.NodeId) PropertyInfo(org.apache.jackrabbit.spi.PropertyInfo) Name(org.apache.jackrabbit.spi.Name)

Example 42 with Name

use of org.apache.jackrabbit.spi.Name in project jackrabbit by apache.

the class BatchTest method testSetLongValue.

public void testSetLongValue() throws RepositoryException {
    NodeId nid = getNodeId(testPath);
    Name propName = resolver.getQName("doubleProp");
    QValue v = rs.getQValueFactory().create(234567);
    Batch b = rs.createBatch(si, nid);
    b.addProperty(nid, propName, v);
    rs.submit(b);
    PropertyInfo pi = rs.getPropertyInfo(si, getPropertyId(nid, propName));
    assertFalse(pi.isMultiValued());
    assertEquals(v, pi.getValues()[0]);
    assertEquals(v.getString(), pi.getValues()[0].getString());
    assertEquals(PropertyType.LONG, pi.getType());
    pi = getPropertyInfo(nid, propName);
    assertEquals(v, pi.getValues()[0]);
    assertEquals(v.getString(), pi.getValues()[0].getString());
    assertEquals(PropertyType.LONG, pi.getType());
}
Also used : QValue(org.apache.jackrabbit.spi.QValue) Batch(org.apache.jackrabbit.spi.Batch) NodeId(org.apache.jackrabbit.spi.NodeId) PropertyInfo(org.apache.jackrabbit.spi.PropertyInfo) Name(org.apache.jackrabbit.spi.Name)

Example 43 with Name

use of org.apache.jackrabbit.spi.Name in project jackrabbit by apache.

the class BatchTest method testEmptyValueArray.

public void testEmptyValueArray() throws RepositoryException {
    NodeId nid = getNodeId(testPath);
    Name propName = resolver.getQName("mvProperty");
    Batch b = rs.createBatch(si, nid);
    b.addProperty(nid, propName, new QValue[0]);
    rs.submit(b);
    PropertyId pid = getPropertyId(nid, propName);
    PropertyInfo pi = rs.getPropertyInfo(si, pid);
    assertTrue(pi.isMultiValued());
    assertEquals(Arrays.asList(new QValue[0]), Arrays.asList(pi.getValues()));
    assertFalse(pi.getType() == PropertyType.UNDEFINED);
    Iterator<? extends ItemInfo> it = rs.getItemInfos(si, nid);
    while (it.hasNext()) {
        ItemInfo info = it.next();
        if (!info.denotesNode()) {
            PropertyInfo pInfo = (PropertyInfo) info;
            if (propName.equals((pInfo.getId().getName()))) {
                assertTrue(pi.isMultiValued());
                assertEquals(Arrays.asList(new QValue[0]), Arrays.asList(pi.getValues()));
                assertFalse(pi.getType() == PropertyType.UNDEFINED);
                break;
            }
        }
    }
}
Also used : QValue(org.apache.jackrabbit.spi.QValue) Batch(org.apache.jackrabbit.spi.Batch) ItemInfo(org.apache.jackrabbit.spi.ItemInfo) NodeId(org.apache.jackrabbit.spi.NodeId) PropertyInfo(org.apache.jackrabbit.spi.PropertyInfo) Name(org.apache.jackrabbit.spi.Name) PropertyId(org.apache.jackrabbit.spi.PropertyId)

Example 44 with Name

use of org.apache.jackrabbit.spi.Name in project jackrabbit by apache.

the class BatchTest method testSetBinaryValue.

public void testSetBinaryValue() throws RepositoryException, IOException {
    NodeId nid = getNodeId(testPath);
    Name propName = resolver.getQName("binProp");
    Batch b = rs.createBatch(si, nid);
    b.addProperty(nid, propName, rs.getQValueFactory().create(new byte[] { 'a', 'b', 'c' }));
    rs.submit(b);
    PropertyInfo pi = rs.getPropertyInfo(si, getPropertyId(nid, propName));
    assertFalse(pi.isMultiValued());
    assertEquals("abc", pi.getValues()[0].getString());
    assertEquals(PropertyType.BINARY, pi.getType());
}
Also used : Batch(org.apache.jackrabbit.spi.Batch) NodeId(org.apache.jackrabbit.spi.NodeId) PropertyInfo(org.apache.jackrabbit.spi.PropertyInfo) Name(org.apache.jackrabbit.spi.Name)

Example 45 with Name

use of org.apache.jackrabbit.spi.Name in project jackrabbit by apache.

the class NodeInfoImpl method setPropertyInfos.

//--------------------------------------------------------------------------
void setPropertyInfos(PropertyInfoImpl[] propInfos, IdFactory idFactory) throws RepositoryException {
    boolean resolveUUID = false;
    for (PropertyInfoImpl propInfo : propInfos) {
        Name pn = propInfo.getId().getName();
        if (NameConstants.JCR_UUID.equals(pn)) {
            id = idFactory.createNodeId(propInfo.getValues()[0].getString());
            resolveUUID = true;
        } else if (NameConstants.JCR_PRIMARYTYPE.equals(pn)) {
            primaryNodeTypeName = propInfo.getValues()[0].getName();
        } else if (NameConstants.JCR_MIXINTYPES.equals(pn)) {
            QValue[] vs = propInfo.getValues();
            Name[] mixins = new Name[vs.length];
            for (int i = 0; i < vs.length; i++) {
                mixins[i] = vs[i].getName();
            }
            mixinNodeTypeNames = mixins;
        }
    }
    propertyIds.clear();
    for (PropertyInfoImpl propInfo : propInfos) {
        if (resolveUUID) {
            propInfo.setId(idFactory.createPropertyId(id, propInfo.getName()));
        }
        propertyIds.add(propInfo.getId());
    }
}
Also used : QValue(org.apache.jackrabbit.spi.QValue) Name(org.apache.jackrabbit.spi.Name)

Aggregations

Name (org.apache.jackrabbit.spi.Name)382 RepositoryException (javax.jcr.RepositoryException)101 ArrayList (java.util.ArrayList)57 QValue (org.apache.jackrabbit.spi.QValue)42 NameException (org.apache.jackrabbit.spi.commons.conversion.NameException)39 HashSet (java.util.HashSet)38 Path (org.apache.jackrabbit.spi.Path)38 NodeId (org.apache.jackrabbit.core.id.NodeId)37 QPropertyDefinition (org.apache.jackrabbit.spi.QPropertyDefinition)33 ConstraintViolationException (javax.jcr.nodetype.ConstraintViolationException)32 NodeId (org.apache.jackrabbit.spi.NodeId)32 PropertyId (org.apache.jackrabbit.core.id.PropertyId)29 HashMap (java.util.HashMap)28 NamespaceException (javax.jcr.NamespaceException)28 NodeState (org.apache.jackrabbit.core.state.NodeState)28 Value (javax.jcr.Value)25 QNodeDefinition (org.apache.jackrabbit.spi.QNodeDefinition)25 InternalValue (org.apache.jackrabbit.core.value.InternalValue)23 ChildNodeEntry (org.apache.jackrabbit.core.state.ChildNodeEntry)22 PropertyState (org.apache.jackrabbit.core.state.PropertyState)22