001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one
003     * or more contributor license agreements.  See the NOTICE file
004     * distributed with this work for additional information
005     * regarding copyright ownership.  The ASF licenses this file
006     * to you under the Apache License, Version 2.0 (the
007     * "License"); you may not use this file except in compliance
008     * with the License.  You may obtain a copy of the License at
009     *
010     *  http://www.apache.org/licenses/LICENSE-2.0
011     *
012     * Unless required by applicable law or agreed to in writing,
013     * software distributed under the License is distributed on an
014     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015     * KIND, either express or implied.  See the License for the
016     * specific language governing permissions and limitations
017     * under the License.
018     */
019    
020    package org.apache.geronimo.genesis.plugins.script;
021    
022    import org.codehaus.plexus.component.configurator.converters.lookup.ConverterLookup;
023    import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
024    import org.codehaus.plexus.component.configurator.ConfigurationListener;
025    import org.codehaus.plexus.configuration.PlexusConfiguration;
026    import org.apache.commons.logging.Log;
027    import org.apache.commons.logging.LogFactory;
028    
029    /**
030     * Container that captures a custom Plexus configuration for delayed processing.
031     *
032     * @version $Rev: 462757 $ $Date: 2006-10-11 03:24:37 -0700 (Wed, 11 Oct 2006) $
033     */
034    public class DelayedConfiguration
035    {
036        private static final Log log = LogFactory.getLog(DelayedConfiguration.class);
037    
038        private ConverterLookup converterLookup;
039    
040        private PlexusConfiguration configuration;
041    
042        private Class type;
043    
044        private Class baseType;
045    
046        private ClassLoader classLoader;
047    
048        private ExpressionEvaluator expressionEvaluator;
049    
050        private ConfigurationListener listener;
051    
052        public DelayedConfiguration(final ConverterLookup converterLookup,
053                                    final PlexusConfiguration configuration,
054                                    final Class type,
055                                    final Class baseType,
056                                    final ClassLoader classLoader,
057                                    final ExpressionEvaluator expressionEvaluator,
058                                    final ConfigurationListener listener)
059        {
060            this.converterLookup = converterLookup;
061            this.configuration = configuration;
062            this.type = type;
063            this.baseType = baseType;
064            this.classLoader = classLoader;
065            this.expressionEvaluator = expressionEvaluator;
066            this.listener = listener;
067        }
068    
069        public String toString() {
070            return String.valueOf(getConfiguration());
071        }
072    
073        public ConverterLookup getConverterLookup() {
074            return converterLookup;
075        }
076    
077        public PlexusConfiguration getConfiguration() {
078            return configuration;
079        }
080    
081        public Class getType() {
082            return type;
083        }
084    
085        public Class getBaseType() {
086            return baseType;
087        }
088    
089        public ClassLoader getClassLoader() {
090            return classLoader;
091        }
092    
093        public ExpressionEvaluator getExpressionEvaluator() {
094            return expressionEvaluator;
095        }
096    
097        public ConfigurationListener getListener() {
098            return listener;
099        }
100    }