package com.celements.rights.access.internal; import org.apache.commons.lang.RandomStringUtils; import org.xwiki.bridge.DocumentAccessBridge; import org.xwiki.component.annotation.Component; import org.xwiki.component.annotation.Requirement; import org.xwiki.model.EntityType; import org.xwiki.model.reference.DocumentReference; import org.xwiki.model.reference.EntityReference; import org.xwiki.model.reference.SpaceReference; @Component public class EntityReferenceRandomCompleter implements IEntityReferenceRandomCompleterRole { @Requirement private DocumentAccessBridge documentAccessBridge; public EntityReference randomCompleteSpaceRef(EntityReference entityRef) { if ((entityRef != null) && (entityRef.getType() == EntityType.SPACE)) { SpaceReference spaceRef = new SpaceReference(entityRef); DocumentReference randomDocRef; do { String randomDocName = RandomStringUtils.randomAlphanumeric(50); randomDocRef = new DocumentReference(randomDocName, spaceRef); } while (documentAccessBridge.exists(randomDocRef)); entityRef = randomDocRef; } return entityRef; } }