/* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved.
*
* This program and the accompanying materials are made available under
* the terms of the Common Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/cpl-v10.html
*
* $Id: IANTVersion.java,v 1.1.1.1.2.1 2004/07/10 03:34:52 vlad_r Exp $
*/
package com.vladium.emma.ant;
import java.io.File;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import org.apache.tools.ant.types.FileSet;
// ----------------------------------------------------------------------------
/**
* @author Vlad Roubtsov, (C) 2004
*/
public
interface IANTVersion
{
// public: ................................................................
/** 'true' iff the current runtime version is 1.2 or later */
boolean ANT_1_5_PLUS = _ANTVersion._ANT_1_5_PLUS; // static final but not inlinable
abstract class _ANTVersion
{
static final boolean _ANT_1_5_PLUS; // set in <clinit>
private _ANTVersion () { /* prevent subclassing */ }
static
{
boolean temp = true;
try
{
final Method m = FileSet.class.getMethod ("setFile", new Class [] { File.class });
// [assertion: 'm' is public]
final int modifiers = m.getModifiers ();
if ((modifiers & Modifier.STATIC) != 0)
temp = false;
}
catch (NoSuchMethodException nsme)
{
temp = false;
}
catch (SecurityException se)
{
temp = false;
}
catch (Throwable t)
{
t.printStackTrace (System.out);
temp = false;
}
_ANT_1_5_PLUS = temp;
}
} // end of nested class
} // end of interface
// ---------------------------------------------------------------------------- |