31
31
import saker .java .compiler .api .compile .JavaCompilationConfigurationOutput ;
32
32
import saker .java .compiler .api .compile .JavaCompilationWorkerTaskIdentifier ;
33
33
import saker .java .compiler .api .compile .JavaCompilerTaskFrontendOutput ;
34
- import saker .java .compiler .impl .JavaTaskUtils ;
35
34
import saker .sdk .support .api .SDKDescription ;
36
35
37
36
public class JavaCompilerTaskFrontendOutputImpl extends SimpleStructuredObjectTaskResult
@@ -58,43 +57,41 @@ public JavaCompilationWorkerTaskIdentifier getTaskIdentifier() {
58
57
}
59
58
60
59
@ Override
61
- public SDKDescription getJavaSDK () {
62
- //TODO this method should return structured task result as well and the pinned value of the SDK description
63
- return javaSDK ;
60
+ public StructuredTaskResult getJavaSDK () {
61
+ //TODO the SDK result should be retrieved from a setup task that is started by the compiler worker before compilation
62
+ // we don't actually need to wait for the compilation to complete before retrieving the SDK description
63
+ // we can also use the SDK description if the compilation fails.
64
+ return new ConfigFieldResolverStructuredTaskResult (getTaskIdentifier (),
65
+ new JavaSDKConfigResolverTaskResult ());
64
66
}
65
67
66
68
@ Override
67
69
public StructuredTaskResult getClassDirectory () {
68
- return new ConfigFieldResolverStructuredTaskResult (
69
- JavaTaskUtils .createJavaCompilationConfigurationOutputTaskIdentifier (getTaskIdentifier ()),
70
+ return new ConfigFieldResolverStructuredTaskResult (getTaskIdentifier (),
70
71
new ClassDirectoryConfigResolverTaskResult ());
71
72
}
72
73
73
74
@ Override
74
75
public StructuredTaskResult getHeaderDirectory () {
75
- return new ConfigFieldResolverStructuredTaskResult (
76
- JavaTaskUtils .createJavaCompilationConfigurationOutputTaskIdentifier (getTaskIdentifier ()),
76
+ return new ConfigFieldResolverStructuredTaskResult (getTaskIdentifier (),
77
77
new HeaderDirectoryConfigResolverTaskResult ());
78
78
}
79
79
80
80
@ Override
81
81
public StructuredTaskResult getResourceDirectory () {
82
- return new ConfigFieldResolverStructuredTaskResult (
83
- JavaTaskUtils .createJavaCompilationConfigurationOutputTaskIdentifier (getTaskIdentifier ()),
82
+ return new ConfigFieldResolverStructuredTaskResult (getTaskIdentifier (),
84
83
new ResourceDirectoryConfigResolverTaskResult ());
85
84
}
86
85
87
86
@ Override
88
87
public StructuredTaskResult getSourceGenDirectory () {
89
- return new ConfigFieldResolverStructuredTaskResult (
90
- JavaTaskUtils .createJavaCompilationConfigurationOutputTaskIdentifier (getTaskIdentifier ()),
88
+ return new ConfigFieldResolverStructuredTaskResult (getTaskIdentifier (),
91
89
new SourceGenDirectoryConfigResolverTaskResult ());
92
90
}
93
91
94
92
@ Override
95
93
public StructuredTaskResult getModuleName () {
96
- return new ConfigFieldResolverStructuredTaskResult (
97
- JavaTaskUtils .createJavaCompilationConfigurationOutputTaskIdentifier (getTaskIdentifier ()),
94
+ return new ConfigFieldResolverStructuredTaskResult (getTaskIdentifier (),
98
95
new ModuleNameConfigResolverTaskResult ());
99
96
}
100
97
@@ -150,6 +147,21 @@ public Object resolveField(JavaCompilationConfigurationOutput config) {
150
147
}
151
148
}
152
149
150
+ public static final class JavaSDKConfigResolverTaskResult extends CompilationTaskFieldResolver {
151
+ private static final long serialVersionUID = 1L ;
152
+
153
+ /**
154
+ * For {@link Externalizable}.
155
+ */
156
+ public JavaSDKConfigResolverTaskResult () {
157
+ }
158
+
159
+ @ Override
160
+ public Object resolveField (JavaCompilationConfigurationOutput config ) {
161
+ return config .getJavaSDK ();
162
+ }
163
+ }
164
+
153
165
public static final class HeaderDirectoryConfigResolverTaskResult extends CompilationTaskFieldResolver {
154
166
private static final long serialVersionUID = 1L ;
155
167
0 commit comments