/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * */ package org.apache.directory.studio.openldap.config.model.database; import java.util.ArrayList; import java.util.List; import org.apache.directory.studio.openldap.common.ui.model.DatabaseTypeEnum; import org.apache.directory.studio.openldap.config.model.ConfigurationElement; /** * Java bean for the 'olcBdbConfig' object class. * * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a> */ public class OlcBdbConfig extends OlcDatabaseConfig { /** * Field for the 'olcDbDirectory' attribute. */ @ConfigurationElement(attributeType = "olcDbDirectory", isOptional = false) private String olcDbDirectory; /** * Field for the 'olcDbCacheFree' attribute. */ @ConfigurationElement(attributeType = "olcDbCacheFree") private Integer olcDbCacheFree; /** * Field for the 'olcDbCacheSize' attribute. */ @ConfigurationElement(attributeType = "olcDbCacheSize") private Integer olcDbCacheSize; /** * Field for the 'olcDbCheckpoint' attribute. */ @ConfigurationElement(attributeType = "olcDbCheckpoint") private String olcDbCheckpoint; /** * Field for the 'olcDbConfig' attribute. */ @ConfigurationElement(attributeType = "olcDbConfig") private List<String> olcDbConfig = new ArrayList<String>(); /** * Field for the 'olcDbCryptFile' attribute. */ @ConfigurationElement(attributeType = "olcDbCryptFile") private String olcDbCryptFile; /** * Field for the 'olcDbCryptKey' attribute. */ @ConfigurationElement(attributeType = "olcDbCryptKey") private byte[] olcDbCryptKey; /** * Field for the 'olcDbDirtyRead' attribute. */ @ConfigurationElement(attributeType = "olcDbDirtyRead") private Boolean olcDbDirtyRead; /** * Field for the 'olcDbDNcacheSize' attribute. */ @ConfigurationElement(attributeType = "olcDbDNcacheSize") private Integer olcDbDNcacheSize; /** * Field for the 'olcDbIDLcacheSize' attribute. */ @ConfigurationElement(attributeType = "olcDbIDLcacheSize") private Integer olcDbIDLcacheSize; /** * Field for the 'olcDbIndex' attribute. */ @ConfigurationElement(attributeType = "olcDbIndex") private List<String> olcDbIndex = new ArrayList<String>(); /** * Field for the 'olcDbLinearIndex' attribute. */ @ConfigurationElement(attributeType = "olcDbLinearIndex") private Boolean olcDbLinearIndex; /** * Field for the 'olcDbLockDetect' attribute. */ @ConfigurationElement(attributeType = "olcDbLockDetect") private String olcDbLockDetect; /** * Field for the 'olcDbMode' attribute. */ @ConfigurationElement(attributeType = "olcDbMode") private String olcDbMode; /** * Field for the 'olcDbNoSync' attribute. */ @ConfigurationElement(attributeType = "olcDbNoSync") private Boolean olcDbNoSync; /** * Field for the 'olcDbPageSize' attribute. */ @ConfigurationElement(attributeType = "olcDbPageSize") private List<String> olcDbPageSize = new ArrayList<String>(); /** * Field for the 'olcDbSearchStack' attribute. */ @ConfigurationElement(attributeType = "olcDbSearchStack") private Integer olcDbSearchStack; /** * Field for the 'olcDbShmKey' attribute. */ @ConfigurationElement(attributeType = "olcDbShmKey") private Integer olcDbShmKey; /** * @param strings */ public void addOlcDbConfig( String... strings ) { for ( String string : strings ) { olcDbConfig.add( string ); } } /** * @param strings */ public void addOlcDbIndex( String... strings ) { for ( String string : strings ) { olcDbIndex.add( string ); } } /** * @param strings */ public void addOlcDbPageSize( String... strings ) { for ( String string : strings ) { olcDbPageSize.add( string ); } } public void clearOlcDbConfig() { olcDbConfig.clear(); } public void clearOlcDbIndex() { olcDbIndex.clear(); } public void clearOlcDbPageSize() { olcDbPageSize.clear(); } /** * @return the olcDbCacheFree */ public Integer getOlcDbCacheFree() { return olcDbCacheFree; } /** * @return the olcDbCacheSize */ public Integer getOlcDbCacheSize() { return olcDbCacheSize; } /** * @return the olcDbCheckpoint */ public String getOlcDbCheckpoint() { return olcDbCheckpoint; } /** * @return the olcDbConfig */ public List<String> getOlcDbConfig() { return copyListString( olcDbConfig ); } /** * @return the olcDbCryptFile */ public String getOlcDbCryptFile() { return olcDbCryptFile; } /** * @return the olcDbCryptKey */ public byte[] getOlcDbCryptKey() { if ( olcDbCryptKey != null ) { byte[] copy = new byte[olcDbCryptKey.length]; System.arraycopy( olcDbCryptKey, 0, copy, 0, olcDbCryptKey.length ); return copy; } return olcDbCryptKey; } /** * @return the olcDbDirectory */ public String getOlcDbDirectory() { return olcDbDirectory; } /** * @return the olcDbDirtyRead */ public Boolean getOlcDbDirtyRead() { return olcDbDirtyRead; } /** * @return the olcDbDNcacheSize */ public Integer getOlcDbDNcacheSize() { return olcDbDNcacheSize; } /** * @return the olcDbIDLcacheSize */ public Integer getOlcDbIDLcacheSize() { return olcDbIDLcacheSize; } /** * @return the olcDbIndex */ public List<String> getOlcDbIndex() { return copyListString( olcDbIndex ); } /** * @return the olcDbLinearIndex */ public Boolean getOlcDbLinearIndex() { return olcDbLinearIndex; } /** * @return the olcDbLockDetect */ public String getOlcDbLockDetect() { return olcDbLockDetect; } /** * @return the olcDbMode */ public String getOlcDbMode() { return olcDbMode; } /** * @return the olcDbNoSync */ public Boolean getOlcDbNoSync() { return olcDbNoSync; } /** * @return the olcDbPageSize */ public List<String> getOlcDbPageSize() { return copyListString( olcDbPageSize ); } /** * @return the olcDbSearchStack */ public Integer getOlcDbSearchStack() { return olcDbSearchStack; } /** * @return the olcDbShmKey */ public Integer getOlcDbShmKey() { return olcDbShmKey; } /** * @param olcDbCacheFree the olcDbCacheFree to set */ public void setOlcDbCacheFree( Integer olcDbCacheFree ) { this.olcDbCacheFree = olcDbCacheFree; } /** * @param olcDbCacheSize the olcDbCacheSize to set */ public void setOlcDbCacheSize( Integer olcDbCacheSize ) { this.olcDbCacheSize = olcDbCacheSize; } /** * @param olcDbCheckpoint the olcDbCheckpoint to set */ public void setOlcDbCheckpoint( String olcDbCheckpoint ) { this.olcDbCheckpoint = olcDbCheckpoint; } /** * @param olcDbConfig the olcDbConfig to set */ public void setOlcDbConfig( List<String> olcDbConfig ) { this.olcDbConfig = copyListString( olcDbConfig ); } /** * @param olcDbCryptFile the olcDbCryptFile to set */ public void setOlcDbCryptFile( String olcDbCryptFile ) { this.olcDbCryptFile = olcDbCryptFile; } /** * @param olcDbCryptKey the olcDbCryptKey to set */ public void setOlcDbCryptKey( byte[] olcDbCryptKey ) { if ( olcDbCryptKey != null ) { this.olcDbCryptKey = new byte[olcDbCryptKey.length]; System.arraycopy( olcDbCryptKey, 0, this.olcDbCryptKey, 0, olcDbCryptKey.length ); } else { this.olcDbCryptKey = olcDbCryptKey; } } /** * @param olcDbDirectory the olcDbDirectory to set */ public void setOlcDbDirectory( String olcDbDirectory ) { this.olcDbDirectory = olcDbDirectory; } /** * @param olcDbDirtyRead the olcDbDirtyRead to set */ public void setOlcDbDirtyRead( Boolean olcDbDirtyRead ) { this.olcDbDirtyRead = olcDbDirtyRead; } /** * @param olcDbDNcacheSize the olcDbDNcacheSize to set */ public void setOlcDbDNcacheSize( Integer olcDbDNcacheSize ) { this.olcDbDNcacheSize = olcDbDNcacheSize; } /** * @param olcDbIDLcacheSize the olcDbIDLcacheSize to set */ public void setOlcDbIDLcacheSize( Integer olcDbIDLcacheSize ) { this.olcDbIDLcacheSize = olcDbIDLcacheSize; } /** * @param olcDbIndex the olcDbIndex to set */ public void setOlcDbIndex( List<String> olcDbIndex ) { this.olcDbIndex = copyListString( olcDbIndex ); } /** * @param olcDbLinearIndex the olcDbLinearIndex to set */ public void setOlcDbLinearIndex( Boolean olcDbLinearIndex ) { this.olcDbLinearIndex = olcDbLinearIndex; } /** * @param olcDbLockDetect the olcDbLockDetect to set */ public void setOlcDbLockDetect( String olcDbLockDetect ) { this.olcDbLockDetect = olcDbLockDetect; } /** * @param olcDbMode the olcDbMode to set */ public void setOlcDbMode( String olcDbMode ) { this.olcDbMode = olcDbMode; } /** * @param olcDbNoSync the olcDbNoSync to set */ public void setOlcDbNoSync( Boolean olcDbNoSync ) { this.olcDbNoSync = olcDbNoSync; } /** * @param olcDbPageSize the olcDbPageSize to set */ public void setOlcDbPageSize( List<String> olcDbPageSize ) { this.olcDbPageSize = copyListString( olcDbPageSize ); } /** * @param olcDbSearchStack the olcDbSearchStack to set */ public void setOlcDbSearchStack( Integer olcDbSearchStack ) { this.olcDbSearchStack = olcDbSearchStack; } /** * @param olcDbShmKey the olcDbShmKey to set */ public void setOlcDbShmKey( Integer olcDbShmKey ) { this.olcDbShmKey = olcDbShmKey; } /** * {@inheritDoc} */ public String getOlcDatabaseType() { return DatabaseTypeEnum.BDB.toString().toLowerCase(); }; }