| /* |
| * 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.cocoon.components.modules.database; |
| |
| import org.apache.avalon.framework.activity.Disposable; |
| import org.apache.avalon.framework.configuration.Configurable; |
| import org.apache.avalon.framework.configuration.Configuration; |
| import org.apache.avalon.framework.configuration.ConfigurationException; |
| import org.apache.avalon.framework.logger.AbstractLogEnabled; |
| |
| import org.apache.cocoon.util.HashMap; |
| |
| /** |
| * AbstractDatabaseModule gives you the infrastructure for easily |
| * deploying more AutoIncrementModules. In order to get at the Logger, use |
| * getLogger(). |
| * |
| * @author <a href="mailto:haul@apache.org">Christian Haul</a> |
| * @version CVS $Id$ |
| */ |
| public abstract class AbstractAutoIncrementModule extends AbstractLogEnabled |
| implements AutoIncrementModule, Configurable, Disposable { |
| |
| /** |
| * Stores (global) configuration parameters as <code>key</code> / |
| * <code>value</code> pairs. |
| */ |
| protected HashMap settings = null; |
| |
| /** |
| * Configures the database access module. |
| * |
| * Takes all elements nested in component declaration and stores |
| * them as key-value pairs in <code>settings</code>. Nested |
| * configuration option are not catered for. This way global |
| * configuration options can be used. |
| * |
| * For nested configurations override this function. |
| * */ |
| public void configure(Configuration conf) throws ConfigurationException { |
| Configuration[] parameters = conf.getChildren(); |
| this.settings = new HashMap(parameters.length); |
| for (int i = 0; i < parameters.length; i++) { |
| String key = parameters[i].getName(); |
| String val = parameters[i].getValue(); |
| this.settings.put(key, val); |
| } |
| } |
| |
| /** |
| * dispose |
| */ |
| public void dispose() { |
| // Purposely empty so that we don't need to implement it in every |
| // class. |
| } |
| } |