Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void initRuleUnitClassName() {
- String ruleUnitClassName = rule.getRuleUnitClassName();
- boolean nameInferredFromResource = false;
- if ( ruleUnitClassName == null && rule.getResource() != null && rule.getResource().getSourcePath() != null ) {
- String drlPath = rule.getResource().getSourcePath();
- int lastSep = drlPath.lastIndexOf( '/' );
- if (lastSep >= 0) {
- drlPath = drlPath.substring( lastSep+1 );
- }
- ruleUnitClassName = rule.getPackage() + "." + drlPath.substring( 0, drlPath.lastIndexOf( '.' ) ).replace( '/', '.' );
- nameInferredFromResource = true;
- }
- if (ruleUnitClassName != null) {
- TypeResolver typeResolver = getPkg().getTypeResolver();
- boolean unitFound = false;
- Class<?> ruleUnitClass = ClassUtils.safeLoadClass(typeResolver.getClassLoader(), ruleUnitClassName);
- if (ruleUnitClass != null) {
- unitFound = RuleUnit.class.isAssignableFrom( ruleUnitClass );
- if ( unitFound && nameInferredFromResource ) {
- rule.setRuleUnitClassName( ruleUnitClassName );
- }
- }
- if (!unitFound && !nameInferredFromResource) {
- addError( new RuleBuildError( rule, getParentDescr(), null,
- ruleUnitClassName + " is not a valid RuleUnit class name" ) );
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement