Search in sources :

Example 1 with PathFactory

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

the class BundleBindingTest method testComplexBundle.

/**
 * Tests serialization of a complex bundle.
 */
public void testComplexBundle() throws Exception {
    NodeId id = new NodeId(1, 2);
    NodePropBundle bundle = new NodePropBundle(id);
    bundle.setParentId(new NodeId(3, 4));
    bundle.setNodeTypeName(NameConstants.NT_UNSTRUCTURED);
    bundle.setMixinTypeNames(Collections.singleton(NameConstants.MIX_CREATED));
    bundle.setReferenceable(true);
    bundle.setSharedSet(new HashSet<NodeId>(Arrays.asList(new NodeId(5, 6), new NodeId(7, 8), new NodeId(9, 10))));
    PropertyEntry property;
    property = new PropertyEntry(new PropertyId(id, NameConstants.JCR_CREATED));
    property.setType(PropertyType.DATE);
    property.setMultiValued(false);
    Calendar date = Calendar.getInstance();
    date.setTimeInMillis(1234567890);
    property.setValues(new InternalValue[] { InternalValue.create(date) });
    bundle.addProperty(property);
    property = new PropertyEntry(new PropertyId(id, NameConstants.JCR_CREATEDBY));
    property.setType(PropertyType.STRING);
    property.setMultiValued(false);
    property.setValues(new InternalValue[] { InternalValue.create("test") });
    bundle.addProperty(property);
    property = new PropertyEntry(new PropertyId(id, factory.create("", "binary")));
    property.setType(PropertyType.BINARY);
    property.setMultiValued(false);
    property.setValues(new InternalValue[] { InternalValue.create(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }) });
    bundle.addProperty(property);
    property = new PropertyEntry(new PropertyId(id, factory.create("", "boolean")));
    property.setType(PropertyType.BOOLEAN);
    property.setMultiValued(true);
    property.setValues(new InternalValue[] { InternalValue.create(true), InternalValue.create(false) });
    bundle.addProperty(property);
    property = new PropertyEntry(new PropertyId(id, factory.create("", "date")));
    property.setType(PropertyType.DATE);
    property.setMultiValued(false);
    property.setValues(new InternalValue[] { InternalValue.create(date) });
    bundle.addProperty(property);
    property = new PropertyEntry(new PropertyId(id, factory.create("", "decimal")));
    property.setType(PropertyType.DECIMAL);
    property.setMultiValued(false);
    property.setValues(new InternalValue[] { InternalValue.create(new BigDecimal("1234567890.0987654321")) });
    bundle.addProperty(property);
    property = new PropertyEntry(new PropertyId(id, factory.create("", "double")));
    property.setType(PropertyType.DOUBLE);
    property.setMultiValued(true);
    property.setValues(new InternalValue[] { InternalValue.create(1.0), InternalValue.create(Math.PI) });
    bundle.addProperty(property);
    property = new PropertyEntry(new PropertyId(id, factory.create("", "long")));
    property.setType(PropertyType.LONG);
    property.setMultiValued(false);
    property.setValues(new InternalValue[] { InternalValue.create(1234567890) });
    bundle.addProperty(property);
    property = new PropertyEntry(new PropertyId(id, factory.create("", "name")));
    property.setType(PropertyType.NAME);
    property.setMultiValued(false);
    property.setValues(new InternalValue[] { InternalValue.create(NameConstants.JCR_MIMETYPE) });
    bundle.addProperty(property);
    property = new PropertyEntry(new PropertyId(id, factory.create("", "path")));
    property.setType(PropertyType.PATH);
    property.setMultiValued(true);
    PathFactory pathFactory = PathFactoryImpl.getInstance();
    Path root = pathFactory.getRootPath();
    Path path = pathFactory.create(root, NameConstants.JCR_SYSTEM, false);
    property.setValues(new InternalValue[] { InternalValue.create(root), InternalValue.create(path) });
    bundle.addProperty(property);
    property = new PropertyEntry(new PropertyId(id, factory.create("", "reference")));
    property.setType(PropertyType.REFERENCE);
    property.setMultiValued(false);
    property.setValues(new InternalValue[] { InternalValue.create(new NodeId(11, 12)) });
    bundle.addProperty(property);
    property = new PropertyEntry(new PropertyId(id, factory.create("", "string")));
    property.setType(PropertyType.STRING);
    property.setMultiValued(false);
    property.setValues(new InternalValue[] { InternalValue.create("test") });
    bundle.addProperty(property);
    property = new PropertyEntry(new PropertyId(id, factory.create("", "uri")));
    property.setType(PropertyType.URI);
    property.setMultiValued(false);
    property.setValues(new InternalValue[] { InternalValue.create(new URI("http://jackrabbit.apache.org/")) });
    bundle.addProperty(property);
    property = new PropertyEntry(new PropertyId(id, factory.create("", "weakreference")));
    property.setType(PropertyType.WEAKREFERENCE);
    property.setMultiValued(false);
    property.setValues(new InternalValue[] { InternalValue.create(new NodeId(13, 14), true) });
    bundle.addProperty(property);
    bundle.addChildNodeEntry(NameConstants.JCR_SYSTEM, new NodeId(15, 16));
    bundle.addChildNodeEntry(NameConstants.JCR_VERSIONSTORAGE, new NodeId(17, 18));
    assertBundleRoundtrip(bundle);
    assertBundleSerialization(bundle, new byte[] { 2, 0, 0, 1, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, -1, -1, -1, -1, 0, 0, 0, 6, 0, 0, 0, 12, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 73, -106, 2, -46, 0, 0, 0, 6, 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 116, 101, 115, 116, 0, 0, 0, 6, 0, 0, 0, 8, 0, 0, 0, 6, 1, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 6, 0, 0, 0, 13, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 8, 109, 105, 109, 101, 84, 121, 112, 101, 0, 0, 0, 6, 0, 0, 0, 15, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 18, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 6, 0, 0, 0, 9, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 29, 49, 57, 55, 48, 45, 48, 49, 45, 49, 53, 84, 48, 55, 58, 53, 54, 58, 48, 55, 46, 56, 57, 48, 43, 48, 49, 58, 48, 48, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 6, 0, 0, 0, 17, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 29, 104, 116, 116, 112, 58, 47, 47, 106, 97, 99, 107, 114, 97, 98, 98, 105, 116, 46, 97, 112, 97, 99, 104, 101, 46, 111, 114, 103, 47, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 116, 101, 115, 116, 0, 0, 0, 6, 0, 0, 0, 11, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 2, 63, -16, 0, 0, 0, 0, 0, 0, 64, 9, 33, -5, 84, 68, 45, 24, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 29, 49, 57, 55, 48, 45, 48, 49, 45, 49, 53, 84, 48, 55, 58, 53, 54, 58, 48, 55, 46, 56, 57, 48, 43, 48, 49, 58, 48, 48, 0, 0, 0, 6, 0, 0, 0, 10, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 1, 1, 0, 21, 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 46, 48, 57, 56, 55, 54, 53, 52, 51, 50, 49, 0, 0, 0, 6, 0, 0, 0, 14, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 123, 125, 0, 0, 0, 37, 123, 125, 9, 123, 104, 116, 116, 112, 58, 47, 47, 119, 119, 119, 46, 106, 99, 112, 46, 111, 114, 103, 47, 106, 99, 114, 47, 49, 46, 48, 125, 115, 121, 115, 116, 101, 109, -1, -1, -1, -1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 6, 115, 121, 115, 116, 101, 109, 1, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 14, 118, 101, 114, 115, 105, 111, 110, 83, 116, 111, 114, 97, 103, 101, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 10, 1, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 6, 0 });
}
Also used : Path(org.apache.jackrabbit.spi.Path) PropertyEntry(org.apache.jackrabbit.core.persistence.util.NodePropBundle.PropertyEntry) Calendar(java.util.Calendar) NodeId(org.apache.jackrabbit.core.id.NodeId) PathFactory(org.apache.jackrabbit.spi.PathFactory) URI(java.net.URI) BigDecimal(java.math.BigDecimal) PropertyId(org.apache.jackrabbit.core.id.PropertyId)

Example 2 with PathFactory

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

the class SharedFieldComparatorSource method newComparator.

/**
 * Create a new <code>FieldComparator</code> for an embedded <code>propertyName</code>
 * and a <code>reader</code>.
 *
 * @param propertyName the relative path to the property to sort on as returned
 *          by {@link org.apache.jackrabbit.spi.Path#getString()}.
 * @return a <code>FieldComparator</code>
 * @throws java.io.IOException if an error occurs
 */
@Override
public FieldComparator newComparator(String propertyName, int numHits, int sortPos, boolean reversed) throws IOException {
    PathFactory factory = PathFactoryImpl.getInstance();
    Path path = factory.create(propertyName);
    try {
        SimpleFieldComparator simple = new SimpleFieldComparator(nsMappings.translatePath(path), field, numHits);
        return path.getLength() == 1 ? simple : new CompoundScoreFieldComparator(new FieldComparator[] { simple, new RelPathFieldComparator(path, numHits) }, numHits);
    } catch (IllegalNameException e) {
        throw Util.createIOException(e);
    }
}
Also used : Path(org.apache.jackrabbit.spi.Path) PathFactory(org.apache.jackrabbit.spi.PathFactory) AbstractFieldComparator(org.apache.jackrabbit.core.query.lucene.sort.AbstractFieldComparator) FieldComparator(org.apache.lucene.search.FieldComparator) IllegalNameException(org.apache.jackrabbit.spi.commons.conversion.IllegalNameException)

Example 3 with PathFactory

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

the class NodeEntryImpl method buildPath.

/**
 * @see HierarchyEntryImpl#buildPath(boolean)
 */
@Override
Path buildPath(boolean wspPath) throws RepositoryException {
    PathFactory pf = getPathFactory();
    // shortcut for root state
    if (parent == null) {
        return pf.getRootPath();
    }
    // build path otherwise
    PathBuilder builder = new PathBuilder(pf);
    buildPath(builder, this, wspPath);
    return builder.getPath();
}
Also used : PathBuilder(org.apache.jackrabbit.spi.commons.name.PathBuilder) PathFactory(org.apache.jackrabbit.spi.PathFactory)

Example 4 with PathFactory

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

the class Spi2davRepositoryServiceFactory method createRepositoryService.

public RepositoryService createRepositoryService(Map<?, ?> parameters) throws RepositoryException {
    if (parameters == null) {
        throw new RepositoryException("Parameter " + PARAM_REPOSITORY_URI + " missing");
    }
    String uri;
    if (parameters.get(PARAM_REPOSITORY_URI) == null) {
        throw new RepositoryException("Parameter " + PARAM_REPOSITORY_URI + " missing");
    } else {
        uri = parameters.get(PARAM_REPOSITORY_URI).toString();
    }
    IdFactory idFactory;
    Object param = parameters.get(PARAM_ID_FACTORY);
    if (param != null && param instanceof IdFactory) {
        idFactory = (IdFactory) param;
    } else {
        idFactory = IdFactoryImpl.getInstance();
    }
    NameFactory nameFactory;
    param = parameters.get(PARAM_NAME_FACTORY);
    if (param != null && param instanceof NameFactory) {
        nameFactory = (NameFactory) param;
    } else {
        nameFactory = NameFactoryImpl.getInstance();
    }
    PathFactory pathFactory;
    param = parameters.get(PARAM_PATH_FACTORY);
    if (param != null && param instanceof PathFactory) {
        pathFactory = (PathFactory) param;
    } else {
        pathFactory = PathFactoryImpl.getInstance();
    }
    QValueFactory vFactory;
    param = parameters.get(PARAM_QVALUE_FACTORY);
    if (param != null && param instanceof QValueFactory) {
        vFactory = (QValueFactory) param;
    } else {
        vFactory = QValueFactoryImpl.getInstance();
    }
    int itemInfoCacheSize = ItemInfoCacheImpl.DEFAULT_CACHE_SIZE;
    param = parameters.get(PARAM_ITEMINFO_CACHE_SIZE);
    if (param != null) {
        try {
            itemInfoCacheSize = Integer.parseInt(param.toString());
        } catch (NumberFormatException e) {
        // ignore, use default
        }
    }
    return new RepositoryServiceImpl(uri, idFactory, nameFactory, pathFactory, vFactory, itemInfoCacheSize, ConnectionOptions.fromServiceFactoryParameters(parameters));
}
Also used : IdFactory(org.apache.jackrabbit.spi.IdFactory) PathFactory(org.apache.jackrabbit.spi.PathFactory) RepositoryException(javax.jcr.RepositoryException) QValueFactory(org.apache.jackrabbit.spi.QValueFactory) NameFactory(org.apache.jackrabbit.spi.NameFactory)

Example 5 with PathFactory

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

the class ItemDefinitionProviderImpl method getRootNodeDefinition.

public QNodeDefinition getRootNodeDefinition() throws RepositoryException {
    if (rootNodeDefinition == null) {
        IdFactory idFactory = service.getIdFactory();
        PathFactory pf = service.getPathFactory();
        rootNodeDefinition = service.getNodeDefinition(sessionInfo, idFactory.createNodeId((String) null, pf.getRootPath()));
    }
    return rootNodeDefinition;
}
Also used : IdFactory(org.apache.jackrabbit.spi.IdFactory) PathFactory(org.apache.jackrabbit.spi.PathFactory)

Aggregations

PathFactory (org.apache.jackrabbit.spi.PathFactory)8 IdFactory (org.apache.jackrabbit.spi.IdFactory)5 NameFactory (org.apache.jackrabbit.spi.NameFactory)3 QValueFactory (org.apache.jackrabbit.spi.QValueFactory)3 Path (org.apache.jackrabbit.spi.Path)2 BigDecimal (java.math.BigDecimal)1 URI (java.net.URI)1 Calendar (java.util.Calendar)1 RepositoryException (javax.jcr.RepositoryException)1 NodeId (org.apache.jackrabbit.core.id.NodeId)1 PropertyId (org.apache.jackrabbit.core.id.PropertyId)1 PropertyEntry (org.apache.jackrabbit.core.persistence.util.NodePropBundle.PropertyEntry)1 AbstractFieldComparator (org.apache.jackrabbit.core.query.lucene.sort.AbstractFieldComparator)1 IllegalNameException (org.apache.jackrabbit.spi.commons.conversion.IllegalNameException)1 PathBuilder (org.apache.jackrabbit.spi.commons.name.PathBuilder)1 FieldComparator (org.apache.lucene.search.FieldComparator)1