/
PdfBoxConverterSupport.kt
37 lines (31 loc) · 1.51 KB
/
PdfBoxConverterSupport.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package pl.beone.promena.transformer.converter.pdfbox.applicationmodel
import pl.beone.promena.transformer.applicationmodel.exception.transformer.TransformationNotSupportedException
import pl.beone.promena.transformer.applicationmodel.mediatype.MediaType
import pl.beone.promena.transformer.applicationmodel.mediatype.MediaTypeConstants.APPLICATION_PDF
import pl.beone.promena.transformer.applicationmodel.mediatype.MediaTypeConstants.TEXT_PLAIN
import pl.beone.promena.transformer.contract.data.DataDescriptor
import pl.beone.promena.transformer.contract.model.Parameters
object PdfBoxConverterSupport {
@JvmStatic
fun isSupported(dataDescriptor: DataDescriptor, targetMediaType: MediaType, parameters: Parameters) {
dataDescriptor.descriptors.forEach { (_, mediaType) -> MediaTypeSupport.isSupported(mediaType, targetMediaType) }
ParametersSupport.isSupported(parameters)
}
object MediaTypeSupport {
private val supportedMediaType = setOf(
APPLICATION_PDF to TEXT_PLAIN
)
@JvmStatic
fun isSupported(mediaType: MediaType, targetMediaType: MediaType) {
if (!supportedMediaType.contains(mediaType to targetMediaType)) {
throw TransformationNotSupportedException.unsupportedMediaType(mediaType, targetMediaType)
}
}
}
object ParametersSupport {
@JvmStatic
fun isSupported(parameters: Parameters) {
// deliberately omitted. This transformer doesn't take any parameter
}
}
}