All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.softicar.platform.common.code.validator.PlatformCodeValidatorConfiguration Maven / Gradle / Ivy

Go to download

The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.

There is a newer version: 50.0.0
Show newest version
package com.softicar.platform.common.code.validator;

import com.softicar.platform.common.code.java.JavaPackageTree;
import com.softicar.platform.common.code.java.JavaPackageTreeSet;
import com.softicar.platform.common.core.java.classes.name.JavaClassName;
import com.softicar.platform.common.io.serialization.json.JsonValueReader;
import java.util.Set;
import java.util.TreeSet;

class PlatformCodeValidatorConfiguration {

	private final Set classesAllowedToHaveMainMethod;
	private final Set forbiddenClasses;
	private final JavaPackageTreeSet packageTreesAllowedToUseForbiddenClasses;

	public PlatformCodeValidatorConfiguration(JsonValueReader configurationReader) {

		this.classesAllowedToHaveMainMethod = new TreeSet<>();
		this.forbiddenClasses = new TreeSet<>();
		this.packageTreesAllowedToUseForbiddenClasses = new JavaPackageTreeSet();

		configurationReader//
			.readList("classesAllowedToHaveMainMethod")
			.forEach(this::allowClassToHaveMainMethod);

		configurationReader//
			.readList("forbiddenClasses")
			.forEach(this::addForbiddenClass);

		configurationReader//
			.readList("packageTreesAllowedToUseForbiddenClasses")
			.forEach(this::allowPackageTreeToUseForbiddenClasses);
	}

	public boolean isAllowedToHaveMainMethod(JavaClassName className) {

		return classesAllowedToHaveMainMethod.contains(className);
	}

	public boolean isForbiddenClass(JavaClassName className) {

		return forbiddenClasses.contains(className);
	}

	public boolean isAllowedToUseForbiddenClasses(JavaClassName className) {

		return packageTreesAllowedToUseForbiddenClasses.contains(className);
	}

	private void allowClassToHaveMainMethod(String className) {

		classesAllowedToHaveMainMethod.add(new JavaClassName(className));
	}

	private void addForbiddenClass(String className) {

		forbiddenClasses.add(new JavaClassName(className));
	}

	private void allowPackageTreeToUseForbiddenClasses(String rootPackageName) {

		packageTreesAllowedToUseForbiddenClasses.add(new JavaPackageTree(rootPackageName));
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy