| /* 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 |
| // ---------------------------------------------------------------------------- |