001/*
002 * ============================================================================
003 *  Copyright © 2002-2023 by Thomas Thrien.
004 *  All Rights Reserved.
005 * ============================================================================
006 *  Licensed to the public under the agreements of the GNU Lesser General Public
007 *  License, version 3.0 (the "License"). You may obtain a copy of the License at
008 *
009 *       http://www.gnu.org/licenses/lgpl.html
010 *
011 *  Unless required by applicable law or agreed to in writing, software
012 *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
013 *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
014 *  License for the specific language governing permissions and limitations
015 *  under the License.
016 */
017
018package org.tquadrat.foundation.javacomposer;
019
020import static org.apiguardian.api.API.Status.STABLE;
021
022import org.apiguardian.api.API;
023import org.tquadrat.foundation.annotation.ClassVersion;
024import org.tquadrat.foundation.javacomposer.internal.CodeProcessorImpl;
025
026/**
027 *  An implementation of
028 *  {@link StringTemplate.Processor}
029 *  that creates an instance of
030 *  {@link CodeBlock}
031 *  from the given String template.
032 *
033 *  @version $Id: CodeProcessor.java 1079 2023-10-22 17:44:34Z tquadrat $
034 *  @extauthor Thomas Thrien - thomas.thrien@tquadrat.org
035 *  @UMLGraph.link
036 *  @since 0.3.0
037 */
038@ClassVersion( sourceVersion = "$Id: CodeProcessor.java 1079 2023-10-22 17:44:34Z tquadrat $" )
039@API( status = STABLE, since = "0.3.0" )
040public sealed interface CodeProcessor extends StringTemplate.Processor<CodeBlock,JavaComposerException>
041    permits CodeProcessorImpl
042{
043        /*---------*\
044    ====** Methods **==========================================================
045        \*---------*/
046    /**
047     * {@inheritDoc}
048     */
049    @Override
050    public CodeBlock process( final StringTemplate template );
051}
052//  class CodeProcessorImpl
053
054/*
055 *  End of File
056 */