@Override public Directory getSourceDirectory() { Directory sourceDir = super.getSourceDirectory(); if (sourceDir instanceof LDAPDirectory) { return sourceDir; } else { throw new DirectoryException(sourceDirectoryName + " is not a LDAPDirectory and thus cannot be used in a reference for " + fieldName); } }
@Override public DocumentModel getEntry(String id, boolean fetchReferences) { if (!hasPermission(SecurityConstants.READ)) { return null; } if (readAllColumns) { // bypass cache when reading all columns return getEntryFromSource(id, fetchReferences); } return directory.getCache().getEntry(id, this, fetchReferences); }
@Override public Directory getTargetDirectory() { Directory targetDir = super.getTargetDirectory(); if (targetDir instanceof LDAPDirectory) { return targetDir; } else { throw new DirectoryException(targetDirectoryName + " is not a LDAPDirectory and thus cannot be referenced as target by " + fieldName); } }
protected BaseSession(Directory directory, Class<? extends Reference> referenceClass) { this.directory = directory; schemaName = directory.getSchema(); directoryName = directory.getName(); BaseDirectoryDescriptor desc = directory.getDescriptor(); substringMatchType = desc.getSubstringMatchType(); autoincrementId = desc.isAutoincrementIdField(); permissions = desc.permissions; passwordHashAlgorithm = desc.passwordHashAlgorithm; this.referenceClass = referenceClass; computeMultiTenantId = desc.isComputeMultiTenantId(); }
@Override DirectoryEntry run(Session session) { DocumentModel docEntry = session.createEntry(entry.getDocumentModel()); return new DirectoryEntry(directory.getName(), docEntry); } });
/** * @since 9.2 */ public TableReference(ReferenceDescriptor descriptor) { this(descriptor.getFieldName(), descriptor.getDirectory(), descriptor.getReferenceName(), descriptor.getSource(), descriptor.getTarget(), descriptor.getDataFileName()); }
@Override public void deleteEntry(String id) { acquireConnection(); if (!canDeleteMultiTenantEntry(id)) { throw new OperationNotAllowedException("Operation not allowed in the current tenant context", "label.directory.error.multi.tenant.operationNotAllowed", null); } super.deleteEntry(id); }
@Override public String toString() { return "SQLSession [directory=" + directory.getName() + ", sid=" + sid + "]"; }
@Override public String getPasswordField() { return directory.getPasswordField(); }
/** * Checks if the predicate contains the field. */ public static boolean hasField(MultiExpression predicate, String field) { FieldDetector visitor = new FieldDetector(field); visitor.visitMultiExpression(predicate); return visitor.hasField; }
@Override public DocumentModelList query(Map<String, Serializable> filter, Set<String> fulltext, Map<String, String> orderBy, boolean fetchReferences) { return query(filter, fulltext, orderBy, fetchReferences, -1, 0); }
/** * Returns {@code true} if this directory supports multi tenancy, {@code false} otherwise. */ protected boolean isMultiTenant() { return directory.isMultiTenant(); }
@Override public boolean isReadOnly() { return directory.isReadOnly(); }
public DocumentModel getEntry(String entryId, EntrySource source) { return getEntry(entryId, source, true); }
@Override public DocumentModel getEntry(String id) { return getEntry(id, true); }
/** * @since 9.2 */ public MongoDBReference(ReferenceDescriptor descriptor) { this(descriptor.getFieldName(), descriptor.getDirectory(), descriptor.getReferenceName(), descriptor.getSource(), descriptor.getTarget(), descriptor.getDataFileName()); }
@Override public Directory getSourceDirectory() { Directory sourceDir = super.getSourceDirectory(); if (sourceDir instanceof LDAPDirectory) { return sourceDir; } else { throw new DirectoryException(sourceDirectoryName + " is not a LDAPDirectory and thus cannot be used in a reference for " + fieldName); } }
@Override public Directory getTargetDirectory() { Directory targetDir = super.getTargetDirectory(); if (targetDir instanceof LDAPDirectory) { return targetDir; } else { throw new DirectoryException(targetDirectoryName + " is not a LDAPDirectory and thus cannot be referenced as target by " + fieldName); } }
@Override public boolean isAuthenticating() { return directory.getPasswordField() != null; }
@Override public DocumentModelList query(Map<String, Serializable> filter, Set<String> fulltext, Map<String, String> orderBy) { return query(filter, fulltext, orderBy, false); }