001package net.sf.logdistiller.ant;
002
003/*
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *     http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016
017import org.apache.tools.ant.Project;
018import org.apache.tools.ant.types.Path;
019import org.apache.tools.ant.types.Reference;
020
021/**
022 * Definition of logevent class in Ant buildfile.
023 *
024 * <pre>
025 * &lt;logevent factory=&quot;&lt;i&gt;[event factory class]&lt;/i&gt;&quot;/&gt;
026 * </pre>
027 */
028public class AntLogEvent
029{
030    private final Project project;
031
032    private String logtype;
033
034    private Path classpath;
035
036    public AntLogEvent( Project project )
037    {
038        this.project = project;
039    }
040
041    public void setClasspath( Path classpath )
042    {
043        if ( this.classpath == null )
044        {
045            this.classpath = classpath;
046        }
047        else
048        {
049            this.classpath.append( classpath );
050        }
051    }
052
053    public Path createClasspath()
054    {
055        if ( classpath == null )
056        {
057            classpath = new Path( project );
058        }
059        return classpath.createPath();
060    }
061
062    public void setClasspathRef( Reference r )
063    {
064        createClasspath().setRefid( r );
065    }
066
067    public void setLoaderRef( Reference r )
068    {
069    }
070
071    /**
072     * @deprecated replaced by <code>logtype</code> attribute
073     */
074    public void setFactory( String factory )
075    {
076        setLogtype( factory );
077        project.log( "WARNING: attribute 'factory' is deprecated, please use attribute 'logtype' instead",
078                     Project.MSG_WARN );
079    }
080
081    public void setLogtype( String logtype )
082    {
083        this.logtype = logtype;
084    }
085
086    public String getLogtype()
087    {
088        return logtype;
089    }
090}