EMMA Coverage Report (generated Thu Dec 06 15:52:10 GMT 2007)
[all classes][com.sun.tools.javac.code]

COVERAGE SUMMARY FOR SOURCE FILE [Source.java]

nameclass, %method, %block, %line, %
Source.java50%  (1/2)83%  (19/23)72%  (268/372)75%  (40.6/54)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class Source$10%   (0/1)0%   (0/1)0%   (0/47)0%   (0/1)
<static initializer> 0%   (0/1)0%   (0/47)0%   (0/1)
     
class Source100% (1/1)86%  (19/22)82%  (268/325)75%  (40.6/54)
allowEncodingErrors (): boolean 0%   (0/1)0%   (0/8)0%   (0/1)
toSourceVersion (Source): SourceVersion 0%   (0/1)0%   (0/19)0%   (0/8)
valueOf (String): Source 0%   (0/1)0%   (0/5)0%   (0/1)
requiredTarget (): Target 100% (1/1)54%  (14/26)46%  (2.3/5)
addBridges (): boolean 100% (1/1)88%  (7/8)87%  (0.9/1)
allowAnnotations (): boolean 100% (1/1)88%  (7/8)87%  (0.9/1)
allowAnonOuterThis (): boolean 100% (1/1)88%  (7/8)87%  (0.9/1)
allowAsserts (): boolean 100% (1/1)88%  (7/8)87%  (0.9/1)
allowBoxing (): boolean 100% (1/1)88%  (7/8)87%  (0.9/1)
allowCovariantReturns (): boolean 100% (1/1)88%  (7/8)87%  (0.9/1)
allowEnums (): boolean 100% (1/1)88%  (7/8)87%  (0.9/1)
allowForeach (): boolean 100% (1/1)88%  (7/8)87%  (0.9/1)
allowGenerics (): boolean 100% (1/1)88%  (7/8)87%  (0.9/1)
allowHexFloats (): boolean 100% (1/1)88%  (7/8)87%  (0.9/1)
allowStaticImport (): boolean 100% (1/1)88%  (7/8)87%  (0.9/1)
allowVarargs (): boolean 100% (1/1)88%  (7/8)87%  (0.9/1)
enforceMandatoryWarnings (): boolean 100% (1/1)88%  (7/8)87%  (0.9/1)
<static initializer> 100% (1/1)100% (117/117)100% (15/15)
Source (String, int, String): void 100% (1/1)100% (8/8)100% (3/3)
instance (Context): Source 100% (1/1)100% (29/29)100% (8/8)
lookup (String): Source 100% (1/1)100% (5/5)100% (1/1)
values (): Source [] 100% (1/1)100% (4/4)100% (1/1)

1/*
2 * Copyright 2002-2006 Sun Microsystems, Inc.  All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.  Sun designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Sun in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25 
26package com.sun.tools.javac.code;
27 
28import com.sun.tools.javac.util.*;
29import com.sun.tools.javac.jvm.Target;
30import javax.lang.model.SourceVersion;
31import static javax.lang.model.SourceVersion.*;
32import java.util.*;
33 
34/** The source language version accepted.
35 *
36 *  <p><b>This is NOT part of any API supported by Sun Microsystems.  If
37 *  you write code that depends on this, you do so at your own risk.
38 *  This code and its internal interfaces are subject to change or
39 *  deletion without notice.</b>
40 */
41public enum Source {
42    /** 1.0 had no inner classes, and so could not pass the JCK. */
43    // public static final Source JDK1_0 =              new Source("1.0");
44 
45    /** 1.1 did not have strictfp, and so could not pass the JCK. */
46    // public static final Source JDK1_1 =              new Source("1.1");
47 
48    /** 1.2 introduced strictfp. */
49    JDK1_2("1.2"),
50 
51    /** 1.3 is the same language as 1.2. */
52    JDK1_3("1.3"),
53 
54    /** 1.4 introduced assert. */
55    JDK1_4("1.4"),
56 
57    /** 1.5 introduced generics, attributes, foreach, boxing, static import,
58     *  covariant return, enums, varargs, et al. */
59    JDK1_5("1.5"),
60 
61    /** 1.6 reports encoding problems as errors instead of warnings. */
62    JDK1_6("1.6"),
63 
64    /** 1.7 covers the to be determined language features that will be added in JDK 7. */
65    JDK1_7("1.7");
66 
67    private static final Context.Key<Source> sourceKey
68        = new Context.Key<Source>();
69 
70    public static Source instance(Context context) {
71        Source instance = context.get(sourceKey);
72        if (instance == null) {
73            Options options = Options.instance(context);
74            String sourceString = options.get("-source");
75            if (sourceString != null) instance = lookup(sourceString);
76            if (instance == null) instance = DEFAULT;
77            context.put(sourceKey, instance);
78        }
79        return instance;
80    }
81 
82    public final String name;
83 
84    private static Map<String,Source> tab = new HashMap<String,Source>();
85    static {
86        for (Source s : values()) {
87            tab.put(s.name, s);
88        }
89        tab.put("5", JDK1_5); // Make 5 an alias for 1.5
90        tab.put("6", JDK1_6); // Make 6 an alias for 1.6
91        tab.put("7", JDK1_7); // Make 7 an alias for 1.7
92    }
93 
94    private Source(String name) {
95        this.name = name;
96    }
97 
98    public static final Source DEFAULT = JDK1_5;
99 
100    public static Source lookup(String name) {
101        return tab.get(name);
102    }
103 
104    public Target requiredTarget() {
105        if (this.compareTo(JDK1_7) >= 0) return Target.JDK1_7;
106        if (this.compareTo(JDK1_6) >= 0) return Target.JDK1_6;
107        if (this.compareTo(JDK1_5) >= 0) return Target.JDK1_5;
108        if (this.compareTo(JDK1_4) >= 0) return Target.JDK1_4;
109        return Target.JDK1_1;
110    }
111 
112    /** Allow encoding errors, giving only warnings. */
113    public boolean allowEncodingErrors() {
114        return compareTo(JDK1_6) < 0;
115    }
116    public boolean allowAsserts() {
117        return compareTo(JDK1_4) >= 0;
118    }
119    public boolean allowCovariantReturns() {
120        return compareTo(JDK1_5) >= 0;
121    }
122    public boolean allowGenerics() {
123        return compareTo(JDK1_5) >= 0;
124    }
125    public boolean allowEnums() {
126        return compareTo(JDK1_5) >= 0;
127    }
128    public boolean allowForeach() {
129        return compareTo(JDK1_5) >= 0;
130    }
131    public boolean allowStaticImport() {
132        return compareTo(JDK1_5) >= 0;
133    }
134    public boolean allowBoxing() {
135        return compareTo(JDK1_5) >= 0;
136    }
137    public boolean allowVarargs() {
138        return compareTo(JDK1_5) >= 0;
139    }
140    public boolean allowAnnotations() {
141        return compareTo(JDK1_5) >= 0;
142    }
143    // hex floating-point literals supported?
144    public boolean allowHexFloats() {
145        return compareTo(JDK1_5) >= 0;
146    }
147    public boolean allowAnonOuterThis() {
148        return compareTo(JDK1_5) >= 0;
149    }
150    public boolean addBridges() {
151        return compareTo(JDK1_5) >= 0;
152    }
153    public boolean enforceMandatoryWarnings() {
154        return compareTo(JDK1_5) >= 0;
155    }
156    public static SourceVersion toSourceVersion(Source source) {
157        switch(source) {
158        case JDK1_2:
159            return RELEASE_2;
160        case JDK1_3:
161            return RELEASE_3;
162        case JDK1_4:
163            return RELEASE_4;
164        case JDK1_5:
165            return RELEASE_5;
166        case JDK1_6:
167            return RELEASE_6;
168        case JDK1_7:
169            return RELEASE_7;
170        default:
171            return null;
172        }
173    }
174}

[all classes][com.sun.tools.javac.code]
EMMA 2.0.5312 (C) Vladimir Roubtsov