}
if (PseudoColumns.isUuid(propName)) {
// This is a special case of obtaining the "jcr:uuid" value from the row, except that the
// CachedNode instances don't know about this property ...
final TypeFactory<?> typeFactory = context.getTypeSystem().getStringFactory();
final NodeTypes nodeTypes = context.getNodeTypes();
return new PropertyValueExtractor(selectorName, propertyName, typeFactory) {
@Override
public Object getValueInRow( RowAccessor row ) {
CachedNode node = row.getNode(indexInRow);
if (node == null) return null;
if (nodeTypes.isReferenceable(node.getPrimaryType(cache), node.getMixinTypes(cache))) {
// The node is a 'mix:referenceable' node, so return the UUID ...
NodeKey key = node.getKey();
return key.getIdentifier();
}
return null;