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 });
}
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);
}
}
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();
}
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));
}
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;
}
Aggregations