1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.jci.compilers;
19
20 import java.util.HashMap;
21 import java.util.Map;
22
23 import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
24
25
26
27
28
29
30 public final class EclipseJavaCompilerSettings extends JavaCompilerSettings {
31
32 final private Map defaultEclipseSettings = new HashMap();
33
34 public EclipseJavaCompilerSettings() {
35 defaultEclipseSettings.put(CompilerOptions.OPTION_LineNumberAttribute, CompilerOptions.GENERATE);
36 defaultEclipseSettings.put(CompilerOptions.OPTION_SourceFileAttribute, CompilerOptions.GENERATE);
37 defaultEclipseSettings.put(CompilerOptions.OPTION_ReportUnusedImport, CompilerOptions.IGNORE);
38 defaultEclipseSettings.put(CompilerOptions.OPTION_LocalVariableAttribute, CompilerOptions.GENERATE);
39 }
40
41 public EclipseJavaCompilerSettings( final JavaCompilerSettings pSettings ) {
42 super(pSettings);
43
44 if (pSettings instanceof EclipseJavaCompilerSettings) {
45 defaultEclipseSettings.putAll(((EclipseJavaCompilerSettings)pSettings).toNativeSettings());
46 }
47 }
48
49 public EclipseJavaCompilerSettings( final Map pMap ) {
50 defaultEclipseSettings.putAll(pMap);
51 }
52
53 private static Map nativeVersions = new HashMap() {
54 private static final long serialVersionUID = 1L;
55 {
56 put("1.1", CompilerOptions.VERSION_1_1);
57 put("1.2", CompilerOptions.VERSION_1_2);
58 put("1.3", CompilerOptions.VERSION_1_3);
59 put("1.4", CompilerOptions.VERSION_1_4);
60 put("1.5", CompilerOptions.VERSION_1_5);
61 put("1.6", CompilerOptions.VERSION_1_6);
62 }};
63
64 private String toNativeVersion( final String pVersion ) {
65 final String nativeVersion = (String) nativeVersions.get(pVersion);
66
67 if (nativeVersion == null) {
68 throw new RuntimeException("unknown version " + pVersion);
69 }
70
71 return nativeVersion;
72 }
73
74 Map toNativeSettings() {
75 final Map map = new HashMap(defaultEclipseSettings);
76
77 map.put(CompilerOptions.OPTION_SuppressWarnings, isWarnings()?CompilerOptions.GENERATE:CompilerOptions.DO_NOT_GENERATE);
78 map.put(CompilerOptions.OPTION_ReportDeprecation, isDeprecations()?CompilerOptions.GENERATE:CompilerOptions.DO_NOT_GENERATE);
79 map.put(CompilerOptions.OPTION_TargetPlatform, toNativeVersion(getTargetVersion()));
80 map.put(CompilerOptions.OPTION_Source, toNativeVersion(getSourceVersion()));
81 map.put(CompilerOptions.OPTION_Encoding, getSourceEncoding());
82
83 return map;
84 }
85
86 public String toString() {
87 return toNativeSettings().toString();
88 }
89 }