use of org.apache.jackrabbit.spi.commons.conversion.NamePathResolver in project jackrabbit by apache.
the class QueryImpl method storeAsNode.
/**
* @see Query#storeAsNode(String)
*/
public Node storeAsNode(String absPath) throws ItemExistsException, PathNotFoundException, VersionException, ConstraintViolationException, LockException, UnsupportedRepositoryOperationException, RepositoryException {
NamePathResolver resolver = mgrProvider.getNamePathResolver();
try {
Path p = resolver.getQPath(absPath).getNormalizedPath();
if (!p.isAbsolute()) {
throw new RepositoryException(absPath + " is not an absolute path");
}
String jcrParent = resolver.getJCRPath(p.getAncestor(1));
if (!session.itemExists(jcrParent)) {
throw new PathNotFoundException(jcrParent);
}
String relPath = resolver.getJCRPath(p).substring(1);
String ntName = resolver.getJCRName(NameConstants.NT_QUERY);
Node queryNode = session.getRootNode().addNode(relPath, ntName);
// set properties
queryNode.setProperty(resolver.getJCRName(NameConstants.JCR_LANGUAGE), getLanguage());
queryNode.setProperty(resolver.getJCRName(NameConstants.JCR_STATEMENT), getStatement());
node = queryNode;
return node;
} catch (NameException e) {
throw new RepositoryException(e.getMessage(), e);
}
}
use of org.apache.jackrabbit.spi.commons.conversion.NamePathResolver in project jackrabbit by apache.
the class QueryManagerImpl method getQuery.
/**
* @see QueryManager#getQuery(Node)
*/
public Query getQuery(Node node) throws InvalidQueryException, RepositoryException {
checkIsAlive();
NamePathResolver resolver = mgrProvider.getNamePathResolver();
if (!node.isNodeType(resolver.getJCRName(NameConstants.NT_QUERY))) {
throw new InvalidQueryException("Node is not of type nt:query");
}
if (node.getSession() != session) {
throw new InvalidQueryException("Node belongs to a different session.");
}
String statement = node.getProperty(resolver.getJCRName(NameConstants.JCR_STATEMENT)).getString();
String language = node.getProperty(resolver.getJCRName(NameConstants.JCR_LANGUAGE)).getString();
if (Query.JCR_JQOM.equals(language)) {
QueryObjectModelFactory qomFactory = new QOMFactory(node, resolver);
QueryObjectModelBuilder builder = QueryObjectModelBuilderRegistry.getQueryObjectModelBuilder(language);
return builder.createQueryObjectModel(statement, qomFactory, valueFactory);
} else {
return new QueryImpl(session, mgrProvider, itemMgr, wspManager, statement, language, node);
}
}
use of org.apache.jackrabbit.spi.commons.conversion.NamePathResolver in project jackrabbit by apache.
the class RepositoryServiceImpl method getRepositoryDescriptors.
/**
* {@inheritDoc}
*/
public Map<String, QValue[]> getRepositoryDescriptors() throws RepositoryException {
Map<String, QValue[]> descriptors = new HashMap<String, QValue[]>();
for (String key : repository.getDescriptorKeys()) {
if (key.equals(Repository.OPTION_TRANSACTIONS_SUPPORTED)) {
descriptors.put(key, new QValue[] { qValueFactory.create(false) });
} else {
Value[] vs = repository.getDescriptorValues(key);
QValue[] qvs = new QValue[vs.length];
for (int i = 0; i < vs.length; i++) {
// Name and path resolver that uses a dummy namespace resolver
// as Name/Path values are not expected to occur in the
// descriptors. TODO: check again.
NamePathResolver resolver = new DefaultNamePathResolver(new NamespaceResolver() {
public String getURI(String prefix) {
return prefix;
}
public String getPrefix(String uri) {
return uri;
}
});
qvs[i] = ValueFormat.getQValue(vs[i], resolver, qValueFactory);
}
descriptors.put(key, qvs);
}
}
return descriptors;
}
use of org.apache.jackrabbit.spi.commons.conversion.NamePathResolver in project jackrabbit by apache.
the class RepositoryServiceImpl method getSupportedPrivileges.
public PrivilegeDefinition[] getSupportedPrivileges(SessionInfo sessionInfo, NodeId nodeId) throws RepositoryException {
SessionInfoImpl sInfo = getSessionInfoImpl(sessionInfo);
String path = (nodeId == null) ? null : pathForId(nodeId, sInfo);
Privilege[] privs = sInfo.getSession().getAccessControlManager().getSupportedPrivileges(path);
PrivilegeDefinition[] pDefs = new PrivilegeDefinition[privs.length];
NamePathResolver npResolver = sInfo.getNamePathResolver();
for (int i = 0; i < privs.length; i++) {
Set<Name> aggrnames = null;
if (privs[i].isAggregate()) {
aggrnames = new HashSet<Name>();
for (Privilege dap : privs[i].getDeclaredAggregatePrivileges()) {
aggrnames.add(npResolver.getQName(dap.getName()));
}
}
PrivilegeDefinition def = new PrivilegeDefinitionImpl(npResolver.getQName(privs[i].getName()), privs[i].isAbstract(), aggrnames);
pDefs[i] = def;
}
return pDefs;
}
use of org.apache.jackrabbit.spi.commons.conversion.NamePathResolver in project jackrabbit by apache.
the class TestAll method getDefaultValue.
/**
* Returns the string value of the identified property default value.
*
* @param def property definition
* @param index default value index
* @return default value
*/
private String getDefaultValue(QPropertyDefinition def, int index) {
try {
QValue[] values = def.getDefaultValues();
NamespaceResolver nsResolver = new AdditionalNamespaceResolver(registry);
NamePathResolver resolver = new DefaultNamePathResolver(nsResolver);
ValueFactoryQImpl factory = new ValueFactoryQImpl(InternalValueFactory.getInstance(), resolver);
return factory.createValue(values[index]).getString();
} catch (RepositoryException e) {
throw new AssertionFailedError(e.getMessage());
}
}
Aggregations