1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.directory.server.core.factory;
20
21
22 import java.io.File;
23 import java.util.Set;
24
25 import org.apache.directory.api.ldap.model.name.Dn;
26 import org.apache.directory.api.ldap.model.schema.SchemaManager;
27 import org.apache.directory.server.core.api.DnFactory;
28 import org.apache.directory.server.core.api.partition.Partition;
29 import org.apache.directory.server.core.partition.impl.btree.mavibot.MavibotIndex;
30 import org.apache.directory.server.core.partition.impl.btree.mavibot.MavibotPartition;
31 import org.apache.directory.server.xdbm.Index;
32
33
34
35
36
37
38
39 public class MavibotPartitionFactory implements PartitionFactory
40 {
41
42
43
44
45 public MavibotPartition createPartition( SchemaManager schemaManager, DnFactory dnFactory, String id,
46 String suffix, int cacheSize,
47 File workingDirectory )
48 throws Exception
49 {
50 MavibotPartitionrtition/impl/btree/mavibot/MavibotPartition.html#MavibotPartition">MavibotPartition partition = new MavibotPartition( schemaManager, dnFactory );
51 partition.setId( id );
52 partition.setSuffixDn( new Dn( suffix ) );
53 partition.setCacheSize( cacheSize );
54 partition.setPartitionPath( workingDirectory.toURI() );
55
56 return partition;
57 }
58
59
60
61
62
63 public void addIndex( Partition partition, String attributeId, int cacheSize ) throws Exception
64 {
65 if ( !( partition instanceof MavibotPartition ) )
66 {
67 throw new IllegalArgumentException( "Partition must be a MavibotPartition" );
68 }
69
70 MavibotPartition/apache/directory/server/core/partition/impl/btree/mavibot/MavibotPartition.html#MavibotPartition">MavibotPartition mavibotPartition = ( MavibotPartition ) partition;
71 Set<Index<?, String>> indexedAttributes = mavibotPartition.getIndexedAttributes();
72
73 MavibotIndex<Object> index = new MavibotIndex<>( attributeId, false );
74 index.setCacheSize( cacheSize );
75
76 indexedAttributes.add( index );
77 mavibotPartition.setIndexedAttributes( indexedAttributes );
78 }
79 }