1f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project/* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved.
2f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project *
3f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project * This program and the accompanying materials are made available under
4f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project * the terms of the Common Public License v1.0 which accompanies this distribution,
5f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project * and is available at http://www.eclipse.org/legal/cpl-v10.html
6f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project *
7f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project * $Id: IANTVersion.java,v 1.1.1.1.2.1 2004/07/10 03:34:52 vlad_r Exp $
8f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project */
9f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Projectpackage com.vladium.emma.ant;
10f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project
11f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Projectimport java.io.File;
12f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Projectimport java.lang.reflect.Method;
13f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Projectimport java.lang.reflect.Modifier;
14f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project
15f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Projectimport org.apache.tools.ant.types.FileSet;
16f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project
17f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project// ----------------------------------------------------------------------------
18f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project/**
19f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project * @author Vlad Roubtsov, (C) 2004
20f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project */
21f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Projectpublic
22f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Projectinterface IANTVersion
23f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project{
24f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project    // public: ................................................................
25f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project
26f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project    /** 'true' iff the current runtime version is 1.2 or later */
27f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project    boolean ANT_1_5_PLUS = _ANTVersion._ANT_1_5_PLUS; // static final but not inlinable
28f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project
29f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project
30f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project    abstract class _ANTVersion
31f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project    {
32f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project        static final boolean _ANT_1_5_PLUS; // set in <clinit>
33f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project
34f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project        private _ANTVersion () {  /* prevent subclassing */ }
35f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project
36f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project        static
37f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project        {
38f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project            boolean temp = true;
39f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project            try
40f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project            {
41f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project                final Method m = FileSet.class.getMethod ("setFile", new Class [] { File.class });
42f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project
43f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project                // [assertion: 'm' is public]
44f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project
45f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project                final int modifiers = m.getModifiers ();
46f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project                if ((modifiers & Modifier.STATIC) != 0)
47f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project                    temp = false;
48f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project            }
49f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project            catch (NoSuchMethodException nsme)
50f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project            {
51f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project                temp = false;
52f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project            }
53f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project            catch (SecurityException se)
54f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project            {
55f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project                temp = false;
56f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project            }
57f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project            catch (Throwable t)
58f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project            {
59f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project                t.printStackTrace (System.out);
60f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project                temp = false;
61f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project            }
62f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project
63f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project            _ANT_1_5_PLUS = temp;
64f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project        }
65f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project
66f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project    } // end of nested class
67f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project
68f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project} // end of interface
69f6fe897e173f4e4bda72a7dddb091b667066764aThe Android Open Source Project// ----------------------------------------------------------------------------