/* * 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.api.ldap.model.name.Dn; import org.apache.directory.studio.openldap.config.model.ConfigurationElement; import org.apache.directory.studio.openldap.config.model.OlcConfig; import org.apache.directory.studio.openldap.config.model.OlcOverlayConfig; /** * Java bean for the 'olcDatabaseConfig' object class. It stores the common parameters * for any DB : * <ul> * <li>olcAccess</li> * <li>olcAddContentAcl</li> * <li>olcDatabase (MUST)</li> * <li>olcDisabled</li> * <li>olcExtraAttrs</li> * <li>olcHidden</li> * <li>olcLastMod</li> * <li>olcLimits</li> * <li>olcMaxDerefDepth</li> * <li>olcMirrorMode</li> * <li>olcMonitoring</li> * <li>olcPlugin</li> * <li>olcReadOnly</li> * <li>olcReplica</li> * <li>olcReplicaArgsFile</li> * <li>olcReplicaPidFile</li> * <li>olcReplicationInterval</li> * <li>olcReplogFile</li> * <li>olcRequires</li> * <li>olcRestrict</li> * <li>olcRootDN</li> * <li>olcRootPW</li> * <li>olcSchemaDN</li> * <li>olcSecurity</li> * <li>olcSizeLimit</li> * <li>olcSubordinate</li> * <li>olcSuffix</li> * <li>olcSyncrepl</li> * <li>olcSyncUseSubentry</li> * <li>olcTimeLimit</li> * <li>olcUpdateDN</li> * <li>olcUpdateRef</li> * </ul> * * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a> */ public class OlcDatabaseConfig extends OlcConfig { /** * Field for the 'olcAccess' attribute, which is an ordered multi-value String attribute */ @ConfigurationElement(attributeType = "olcAccess") private List<String> olcAccess = new ArrayList<String>(); /** * Field for the 'olcAddContentAcl' attribute. */ @ConfigurationElement(attributeType = "olcAddContentAcl") private Boolean olcAddContentAcl; /** * Field for the 'olcDatabase' attribute. */ @ConfigurationElement(attributeType = "olcDatabase", isOptional = false, isRdn = true) private String olcDatabase; /** * Field for the 'olcDisabled' attribute. (Added in OpenLDAP 2.4.36) */ @ConfigurationElement(attributeType = "olcDisabled") private Boolean olcDisabled; /** * Field for the 'olcExtraAttrs' attribute. (Added in OpenLDAP 2.4.22) */ @ConfigurationElement(attributeType = "olcExtraAttrs") private List<String> olcExtraAttrs; /** * Field for the 'olcHidden' attribute. */ @ConfigurationElement(attributeType = "olcHidden") private Boolean olcHidden; /** * Field for the 'olcLastMod' attribute. */ @ConfigurationElement(attributeType = "olcLastMod") private Boolean olcLastMod; /** * Field for the 'olcLimits' attribute. */ @ConfigurationElement(attributeType = "olcLimits") private List<String> olcLimits = new ArrayList<String>(); /** * Field for the 'olcMaxDerefDepth' attribute. */ @ConfigurationElement(attributeType = "olcMaxDerefDepth") private Integer olcMaxDerefDepth; /** * Field for the 'olcMirrorMode' attribute. */ @ConfigurationElement(attributeType = "olcMirrorMode") private Boolean olcMirrorMode; /** * Field for the 'olcMonitoring' attribute. */ @ConfigurationElement(attributeType = "olcMonitoring") private Boolean olcMonitoring; /** * Field for the 'olcPlugin' attribute. */ @ConfigurationElement(attributeType = "olcPlugin") private List<String> olcPlugin = new ArrayList<String>(); /** * Field for the 'olcReadOnly' attribute. */ @ConfigurationElement(attributeType = "olcReadOnly") private Boolean olcReadOnly; /** * Field for the 'olcReplica' attribute. */ @ConfigurationElement(attributeType = "olcReplica") private List<String> olcReplica = new ArrayList<String>(); /** * Field for the 'olcReplicaArgsFile' attribute. */ @ConfigurationElement(attributeType = "olcReplicaArgsFile") private String olcReplicaArgsFile; /** * Field for the 'olcReplicaPidFile' attribute. */ @ConfigurationElement(attributeType = "olcReplicaPidFile") private String olcReplicaPidFile; /** * Field for the 'olcReplicationInterval' attribute. */ @ConfigurationElement(attributeType = "olcReplicationInterval") private Integer olcReplicationInterval; /** * Field for the 'olcReplogFile' attribute. */ @ConfigurationElement(attributeType = "olcReplogFile") private String olcReplogFile; /** * Field for the 'olcRequires' attribute. */ @ConfigurationElement(attributeType = "olcRequires") private List<String> olcRequires = new ArrayList<String>(); /** * Field for the 'olcRestrict' attribute. */ @ConfigurationElement(attributeType = "olcRestrict") private List<String> olcRestrict = new ArrayList<String>(); /** * Field for the 'olcRootDN' attribute. */ @ConfigurationElement(attributeType = "olcRootDN") private Dn olcRootDN; /** * Field for the 'olcRootPW' attribute. */ @ConfigurationElement(attributeType = "olcRootPW") private String olcRootPW; /** * Field for the 'olcSchemaDN' attribute. */ @ConfigurationElement(attributeType = "olcSchemaDN") private Dn olcSchemaDN; /** * Field for the 'olcSecurity' attribute. */ @ConfigurationElement(attributeType = "olcSecurity") private List<String> olcSecurity = new ArrayList<String>(); /** * Field for the 'olcSizeLimit' attribute. */ @ConfigurationElement(attributeType = "olcSizeLimit") private String olcSizeLimit; /** * Field for the 'olcSubordinate' attribute. */ @ConfigurationElement(attributeType = "olcSubordinate") private String olcSubordinate; /** * Field for the 'olcSuffix' attribute. */ @ConfigurationElement(attributeType = "olcSuffix") private List<Dn> olcSuffix = new ArrayList<Dn>(); /** * Field for the 'olcSyncrepl' attribute. */ @ConfigurationElement(attributeType = "olcSyncrepl") private List<String> olcSyncrepl = new ArrayList<String>(); /** * Field for the 'olcSyncUseSubentry' attribute. (Added in OpenLDAP 2.4.20) */ @ConfigurationElement(attributeType = "olcSyncUseSubentry") private Boolean olcSyncUseSubentry; /** * Field for the 'olcTimeLimit' attribute. */ @ConfigurationElement(attributeType = "olcTimeLimit") private List<String> olcTimeLimit = new ArrayList<String>(); /** * Field for the 'olcUpdateDN' attribute. */ @ConfigurationElement(attributeType = "olcUpdateDN") private Dn olcUpdateDN; /** * Field for the 'olcUpdateRef' attribute. */ @ConfigurationElement(attributeType = "olcUpdateRef") private List<String> olcUpdateRef = new ArrayList<String>(); /** * The overlays list */ private List<OlcOverlayConfig> overlays = new ArrayList<OlcOverlayConfig>(); /** * @param strings */ public void addOlcAccess( String... strings ) { for ( String string : strings ) { olcAccess.add( string ); } } /** * @param strings The olcExtraAttrs to add */ public void addOlcExtraAttrs( String... strings ) { for ( String string : strings ) { olcExtraAttrs.add( string ); } } /** * @param strings */ public void addOlcLimits( String... strings ) { for ( String string : strings ) { olcLimits.add( string ); } } /** * @param strings */ public void addOlcPlugin( String... strings ) { for ( String string : strings ) { olcPlugin.add( string ); } } /** * @param strings */ public void addOlcReplica( String... strings ) { for ( String string : strings ) { olcReplica.add( string ); } } /** * @param strings */ public void addOlcRequires( String... strings ) { for ( String string : strings ) { olcRequires.add( string ); } } /** * @param strings */ public void addOlcRestrict( String... strings ) { for ( String string : strings ) { olcRestrict.add( string ); } } /** * @param strings */ public void addOlcSecurity( String... strings ) { for ( String string : strings ) { olcSecurity.add( string ); } } /** * @param strings */ public void addOlcSuffix( Dn... dns ) { for ( Dn dn : dns ) { olcSuffix.add( dn ); } } /** * @param strings */ public void addOlcSyncrepl( String... strings ) { for ( String string : strings ) { olcSyncrepl.add( string ); } } /** * @param strings */ public void addOlcTimeLimit( String... strings ) { for ( String string : strings ) { olcTimeLimit.add( string ); } } /** * @param strings */ public void addOlcUpdateRef( String... strings ) { for ( String string : strings ) { olcUpdateRef.add( string ); } } public void clearOlcAccess() { olcAccess.clear(); } public void clearOlcExtraAttrs() { olcExtraAttrs.clear(); } public void clearOlcLimits() { olcLimits.clear(); } public void clearOlcPlugin() { olcPlugin.clear(); } public void clearOlcReplica() { olcReplica.clear(); } public void clearOlcRequires() { olcRequires.clear(); } public void clearOlcRestrict() { olcRestrict.clear(); } public void clearOlcSecurity() { olcSecurity.clear(); } public void clearOlcSuffix() { olcSuffix.clear(); } public void clearOlcSyncrepl() { olcSyncrepl.clear(); } public void clearOlcTimeLimit() { olcTimeLimit.clear(); } public void clearOlcUpdateRef() { olcUpdateRef.clear(); } /** * @return the olcAccess */ public List<String> getOlcAccess() { return copyListString( olcAccess ); } /** * @return the olcAddContentAcl */ public Boolean getOlcAddContentAcl() { return olcAddContentAcl; } /** * @return the olcDatabase */ public String getOlcDatabase() { return olcDatabase; } /** * @return the olcDisabled */ public Boolean getOlcDisabled() { return olcDisabled; } /** * @return the olcExtraAttrs */ public List<String> getOlcExtraAttrs() { return copyListString( olcExtraAttrs ); } /** * @return the olcHidden */ public Boolean getOlcHidden() { return olcHidden; } /** * @return the olcLastMod */ public Boolean getOlcLastMod() { return olcLastMod; } /** * @return the olcLimits */ public List<String> getOlcLimits() { return copyListString( olcLimits ); } /** * @return the olcMaxDerefDepth */ public Integer getOlcMaxDerefDepth() { return olcMaxDerefDepth; } /** * @return the olcMirrorMode */ public Boolean getOlcMirrorMode() { return olcMirrorMode; } /** * @return the olcMonitoring */ public Boolean getOlcMonitoring() { return olcMonitoring; } /** * @return the olcPlugin */ public List<String> getOlcPlugin() { return copyListString( olcPlugin ); } /** * @return the olcReadOnly */ public Boolean getOlcReadOnly() { return olcReadOnly; } /** * @return the olcReplica */ public List<String> getOlcReplica() { return copyListString( olcReplica ); } /** * @return the olcReplicaArgsFile */ public String getOlcReplicaArgsFile() { return olcReplicaArgsFile; } /** * @return the olcReplicaPidFile */ public String getOlcReplicaPidFile() { return olcReplicaPidFile; } /** * @return the olcReplicationInterval */ public Integer getOlcReplicationInterval() { return olcReplicationInterval; } /** * @return the olcReplogFile */ public String getOlcReplogFile() { return olcReplogFile; } /** * @return the olcRequires */ public List<String> getOlcRequires() { return copyListString( olcRequires ); } /** * @return the olcRestrict */ public List<String> getOlcRestrict() { return copyListString( olcRestrict ); } /** * @return the olcRootDN */ public Dn getOlcRootDN() { return olcRootDN; } /** * @return the olcRootPW */ public String getOlcRootPW() { return olcRootPW; } /** * @return the olcSchemaDN */ public Dn getOlcSchemaDN() { return olcSchemaDN; } /** * @return the olcSecurity */ public List<String> getOlcSecurity() { return copyListString( olcSecurity ); } /** * @return the olcSizeLimit */ public String getOlcSizeLimit() { return olcSizeLimit; } /** * @return the olcSubordinate */ public String getOlcSubordinate() { return olcSubordinate; } /** * @return the olcSuffix */ public List<Dn> getOlcSuffix() { return olcSuffix; } /** * @return the olcSyncrepl */ public List<String> getOlcSyncrepl() { return copyListString( olcSyncrepl ); } /** * @return the olcSyncUseSubentry */ public Boolean getOlcSyncUseSubentry() { return olcSyncUseSubentry; } /** * @return the olcTimeLimit */ public List<String> getOlcTimeLimit() { return copyListString( olcTimeLimit ); } /** * @return the olcUpdateDN */ public Dn getOlcUpdateDN() { return olcUpdateDN; } /** * @return the olcUpdateRef */ public List<String> getOlcUpdateRef() { return copyListString( olcUpdateRef ); } /** * @return the overlays */ public List<OlcOverlayConfig> getOverlays() { return overlays; } /** * @param overlays */ public void setOverlays( List<OlcOverlayConfig> overlays ) { this.overlays = overlays; } public void clearOverlays() { overlays.clear(); } /** * @param o * @return * @see java.util.List#add(java.lang.Object) */ public boolean addOverlay( OlcOverlayConfig o ) { return overlays.add( o ); } /** * @param o * @return * @see java.util.List#remove(java.lang.Object) */ public boolean removeOverlay( OlcOverlayConfig o ) { return overlays.remove( o ); } /** * @param olcAccess the olcAccess to set */ public void setOlcAccess( List<String> olcAccess ) { this.olcAccess = copyListString( olcAccess ); } /** * @param olcAddContentAcl the olcAddContentAcl to set */ public void setOlcAddContentAcl( Boolean olcAddContentAcl ) { this.olcAddContentAcl = olcAddContentAcl; } /** * @param olcDatabase the olcDatabase to set */ public void setOlcDatabase( String olcDatabase ) { this.olcDatabase = olcDatabase; } /** * @param oldDisabled the olcDisabled to set */ public void setOlcDisabled( Boolean olcDisabled ) { this.olcDisabled = olcDisabled; } /** * @param olcExtraAttrs the olcExtraAttrs to set */ public void setOlcExtraAttrs( List<String> olcExtraAttrs ) { this.olcExtraAttrs = copyListString( olcExtraAttrs ); } /** * @param olcHidden the olcHidden to set */ public void setOlcHidden( Boolean olcHidden ) { this.olcHidden = olcHidden; } /** * @param olcLastMod the olcLastMod to set */ public void setOlcLastMod( Boolean olcLastMod ) { this.olcLastMod = olcLastMod; } /** * @param olcLimits the olcLimits to set */ public void setOlcLimits( List<String> olcLimits ) { this.olcLimits = copyListString( olcLimits ); } /** * @param olcMaxDerefDepth the olcMaxDerefDepth to set */ public void setOlcMaxDerefDepth( Integer olcMaxDerefDepth ) { this.olcMaxDerefDepth = olcMaxDerefDepth; } /** * @param olcMirrorMode the olcMirrorMode to set */ public void setOlcMirrorMode( Boolean olcMirrorMode ) { this.olcMirrorMode = olcMirrorMode; } /** * @param olcMonitoring the olcMonitoring to set */ public void setOlcMonitoring( Boolean olcMonitoring ) { this.olcMonitoring = olcMonitoring; } /** * @param olcPlugin the olcPlugin to set */ public void setOlcPlugin( List<String> olcPlugin ) { this.olcPlugin = copyListString( olcPlugin ); } /** * @param olcReadOnly the olcReadOnly to set */ public void setOlcReadOnly( Boolean olcReadOnly ) { this.olcReadOnly = olcReadOnly; } /** * @param olcReplica the olcReplica to set */ public void setOlcReplica( List<String> olcReplica ) { this.olcReplica = copyListString( olcReplica ); } /** * @param olcReplicaArgsFile the olcReplicaArgsFile to set */ public void setOlcReplicaArgsFile( String olcReplicaArgsFile ) { this.olcReplicaArgsFile = olcReplicaArgsFile; } /** * @param olcReplicaPidFile the olcReplicaPidFile to set */ public void setOlcReplicaPidFile( String olcReplicaPidFile ) { this.olcReplicaPidFile = olcReplicaPidFile; } /** * @param olcReplicationInterval the olcReplicationInterval to set */ public void setOlcReplicationInterval( Integer olcReplicationInterval ) { this.olcReplicationInterval = olcReplicationInterval; } /** * @param olcReplogFile the olcReplogFile to set */ public void setOlcReplogFile( String olcReplogFile ) { this.olcReplogFile = olcReplogFile; } /** * @param olcRequires the olcRequires to set */ public void setOlcRequires( List<String> olcRequires ) { this.olcRequires = copyListString( olcRequires ); } /** * @param olcRestrict the olcRestrict to set */ public void setOlcRestrict( List<String> olcRestrict ) { this.olcRestrict = copyListString( olcRestrict ); } /** * @param olcRootDN the olcRootDN to set */ public void setOlcRootDN( Dn olcRootDN ) { this.olcRootDN = olcRootDN; } /** * @param olcRootPW the olcRootPW to set */ public void setOlcRootPW( String olcRootPW ) { this.olcRootPW = olcRootPW; } /** * @param olcSchemaDN the olcSchemaDN to set */ public void setOlcSchemaDN( Dn olcSchemaDN ) { this.olcSchemaDN = olcSchemaDN; } /** * @param olcSecurity the olcSecurity to set */ public void setOlcSecurity( List<String> olcSecurity ) { this.olcSecurity = copyListString( olcSecurity ); } /** * @param olcSizeLimit the olcSizeLimit to set */ public void setOlcSizeLimit( String olcSizeLimit ) { this.olcSizeLimit = olcSizeLimit; } /** * @param olcSubordinate the olcSubordinate to set */ public void setOlcSubordinate( String olcSubordinate ) { this.olcSubordinate = olcSubordinate; } /** * @param olcSuffix the olcSuffix to set */ public void setOlcSuffix( List<Dn> olcSuffix ) { this.olcSuffix = olcSuffix; } /** * @param olcSyncrepl the olcSyncrepl to set */ public void setOlcSyncrepl( List<String> olcSyncrepl ) { this.olcSyncrepl = copyListString( olcSyncrepl ); } /** * @param olcSyncUseSubentry the olcSyncUseSubentry to set */ public void setOlcSyncUseSubentry( Boolean olcSyncUseSubentry ) { this.olcSyncUseSubentry = olcSyncUseSubentry; } /** * @param olcTimeLimit the olcTimeLimit to set */ public void setOlcTimeLimit( List<String> olcTimeLimit ) { this.olcTimeLimit = copyListString( olcTimeLimit ); } /** * @param olcUpdateDN the olcUpdateDN to set */ public void setOlcUpdateDN( Dn olcUpdateDN ) { this.olcUpdateDN = olcUpdateDN; } /** * @param olcUpdateRef the olcUpdateRef to set */ public void setOlcUpdateRef( List<String> olcUpdateRef ) { this.olcUpdateRef = copyListString( olcUpdateRef ); } /** * Gets the type of the database. * * @return the type of the database */ public String getOlcDatabaseType() { return "default"; } }