001    package org.apache.turbine.modules;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one
005     * or more contributor license agreements.  See the NOTICE file
006     * distributed with this work for additional information
007     * regarding copyright ownership.  The ASF licenses this file
008     * to you under the Apache License, Version 2.0 (the
009     * "License"); you may not use this file except in compliance
010     * with the License.  You may obtain a copy of the License at
011     *
012     *   http://www.apache.org/licenses/LICENSE-2.0
013     *
014     * Unless required by applicable law or agreed to in writing,
015     * software distributed under the License is distributed on an
016     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017     * KIND, either express or implied.  See the License for the
018     * specific language governing permissions and limitations
019     * under the License.
020     */
021    
022    import org.apache.turbine.pipeline.PipelineData;
023    import org.apache.turbine.util.RunData;
024    /**
025     * This is an interface that defines what an Assembler is. All the
026     * current modules extend off of this class. It is currently empty and
027     * future use is yet to be determined.
028     *
029     * @author <a href="mailto:mbryson@mont.mindspring.com">Dave Bryson</a>
030     * @author <a href="mailto:peter@courcoux.biz">Peter Courcoux</a>
031     * @version $Id: Assembler.java 717934 2008-11-15 21:48:47Z tv $
032     */
033    public abstract class Assembler
034    {
035        /**
036         * This can go once RunData is replaced...
037         * @param pipelineData
038         * @return RunData
039         */
040        public final RunData getRunData(PipelineData pipelineData)
041        {
042            if(!(pipelineData instanceof RunData)){
043                throw new RuntimeException("Can't cast to rundata from pipeline data.");
044            }
045            return (RunData)pipelineData;
046        }
047        
048        /**
049         * Abstract method to provide the prefix for module related classes and templates
050         * 
051         * @return the prefix
052         */
053        public abstract String getPrefix();
054    }