class TargetResolverService implements TargetResolver {

	@Override
	public Target resolveTarget(URI uri) {
		ensureInitialized();

		if (uri == null) {
			return new Target(uri, TargetType.UNKNOWN);
		}
		if (illegalURItargetDetector != null) {
			if (illegalURItargetDetector.isIllegal(uri)) {
				return new Target(uri, TargetType.ILLEGAL);
			}
		}
		Target resolved = null;
		if (usedUriTargetResolveStrategy != null) {
			resolved = usedUriTargetResolveStrategy.resolveTargetFor(uri);
		}
		if (resolved == null) {
			resolved = new Target(uri, TargetType.INTERNET);
		}
		return resolved;
	}

	public  TargetResolverService();

}