ClassPathResolverAdapter.java

1
package fr.sii.ogham.template.freemarker.adapter;
2
3
import java.net.URL;
4
5
import fr.sii.ogham.core.resource.resolver.ClassPathResolver;
6
import fr.sii.ogham.core.resource.resolver.DelegateResourceResolver;
7
import fr.sii.ogham.core.resource.resolver.ResourceResolver;
8
import freemarker.cache.ClassTemplateLoader;
9
import freemarker.cache.TemplateLoader;
10
11
/**
12
 * Adapter that converts general {@link ClassPathResolver} into FreeMarker
13
 * specific {@link ClassTemplateLoader}.
14
 * 
15
 * @author Cyril Dejonghe
16
 *
17
 */
18
public class ClassPathResolverAdapter extends AbstractFreeMarkerTemplateLoaderOptionsAdapter {
19
	private final ClassLoader classLoader;
20
	
21
	public ClassPathResolverAdapter(ClassLoader classLoader) {
22
		super();
23
		this.classLoader = classLoader;
24
	}
25
26
	@Override
27
	public boolean supports(ResourceResolver resolver) {
28 1 1. supports : negated conditional → RUN_ERROR
		ResourceResolver actualResolver = resolver instanceof DelegateResourceResolver ? ((DelegateResourceResolver) resolver).getActualResourceResolver() : resolver;
29 2 1. supports : replaced boolean return with false for fr/sii/ogham/template/freemarker/adapter/ClassPathResolverAdapter::supports → RUN_ERROR
2. supports : replaced boolean return with true for fr/sii/ogham/template/freemarker/adapter/ClassPathResolverAdapter::supports → RUN_ERROR
		return actualResolver instanceof ClassPathResolver;
30
	}
31
32
	@Override
33
	public TemplateLoader adapt(ResourceResolver resolver) {
34 1 1. adapt : replaced return value with null for fr/sii/ogham/template/freemarker/adapter/ClassPathResolverAdapter::adapt → RUN_ERROR
		return new FixClassTemplateLoader(getClassLoader(), "");
35
	}
36
37
	private ClassLoader getClassLoader() {
38 1 1. getClassLoader : negated conditional → RUN_ERROR
		if(classLoader!=null) {
39 1 1. getClassLoader : replaced return value with null for fr/sii/ogham/template/freemarker/adapter/ClassPathResolverAdapter::getClassLoader → NO_COVERAGE
			return classLoader;
40
		}
41 1 1. getClassLoader : replaced return value with null for fr/sii/ogham/template/freemarker/adapter/ClassPathResolverAdapter::getClassLoader → RUN_ERROR
		return Thread.currentThread().getContextClassLoader();
42
	}
43
44
	private static class FixClassTemplateLoader extends ClassTemplateLoader {
45
		public FixClassTemplateLoader(ClassLoader classLoader, String basePackagePath) {
46
			super(classLoader, basePackagePath);
47
		}
48
49
		@Override
50
		protected URL getURL(String name) {
51 1 1. getURL : negated conditional → RUN_ERROR
			String path = name.startsWith("/") ? name.substring(1) : name;
52 1 1. getURL : replaced return value with null for fr/sii/ogham/template/freemarker/adapter/ClassPathResolverAdapter$FixClassTemplateLoader::getURL → RUN_ERROR
			return super.getURL(path);
53
		}
54
	}
55
	
56
}

Mutations

28

1.1
Location : supports
Killed by :
negated conditional → RUN_ERROR

29

1.1
Location : supports
Killed by :
replaced boolean return with false for fr/sii/ogham/template/freemarker/adapter/ClassPathResolverAdapter::supports → RUN_ERROR

2.2
Location : supports
Killed by :
replaced boolean return with true for fr/sii/ogham/template/freemarker/adapter/ClassPathResolverAdapter::supports → RUN_ERROR

34

1.1
Location : adapt
Killed by :
replaced return value with null for fr/sii/ogham/template/freemarker/adapter/ClassPathResolverAdapter::adapt → RUN_ERROR

38

1.1
Location : getClassLoader
Killed by :
negated conditional → RUN_ERROR

39

1.1
Location : getClassLoader
Killed by :
replaced return value with null for fr/sii/ogham/template/freemarker/adapter/ClassPathResolverAdapter::getClassLoader → NO_COVERAGE

41

1.1
Location : getClassLoader
Killed by :
replaced return value with null for fr/sii/ogham/template/freemarker/adapter/ClassPathResolverAdapter::getClassLoader → RUN_ERROR

51

1.1
Location : getURL
Killed by :
negated conditional → RUN_ERROR

52

1.1
Location : getURL
Killed by :
replaced return value with null for fr/sii/ogham/template/freemarker/adapter/ClassPathResolverAdapter$FixClassTemplateLoader::getURL → RUN_ERROR

Active mutators

Tests examined


Report generated by PIT 1.13.1