/* * 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.language.generator; import org.apache.avalon.framework.component.Component; import org.apache.avalon.framework.component.ComponentManager; import org.apache.excalibur.source.Source; import org.apache.cocoon.environment.SourceResolver; /** * This interface defines a loader for programs automatically built from XML * documents written in a <code>MarkupLanguage</code> * * @author <a href="mailto:ricardo@apache.org">Ricardo Rocha</a> * @version CVS $Id$ */ public interface ProgramGenerator extends Component { String ROLE = ProgramGenerator.class.getName(); /** * Load a program built from an XML document written in a * <code>MarkupLanguage</code> * * @param newManager The ComponentManager that it will be loaded with * @param fileName The input document's <code>File</code> name * @param markupLanguage The <code>MarkupLanguage</code> in which the input * document is written * @param programmingLanguage The <code>ProgrammingLanguage</code> in which * the program must be written * @return The loaded object * @exception Exception If an error occurs during generation or loading * @deprecated Pass Source object instead of file name. */ CompiledComponent load( ComponentManager newManager, String fileName, String markupLanguage, String programmingLanguage, SourceResolver resolver) throws Exception; /** * Load a program built from an XML document written in a * <code>MarkupLanguage</code> * * @param newManager The ComponentManager that it will be loaded with * @param source The input document's <code>File</code> name * @param markupLanguage The <code>MarkupLanguage</code> in which the input * document is written * @param programmingLanguage The <code>ProgrammingLanguage</code> in which * the program must be written * @return The loaded object * @exception Exception If an error occurs during generation or loading */ CompiledComponent load( ComponentManager newManager, Source source, String markupLanguage, String programmingLanguage, SourceResolver resolver) throws Exception; /** * Release a program instance built from an XML document written in a * <code>MarkupLanguage</code>. * * @param component to be released. */ void release(CompiledComponent component); /** * Remove a program from the generator's cache and dipose all * instances of this program. * * @param source of the program to be removed. */ void remove(Source source); }