private List<TypeDeclarationDescr> getDeclaredTypeHierachy(TypeDeclarationDescr td, List< ? > jars) { List<TypeDeclarationDescr> th = new ArrayList<TypeDeclarationDescr>(); th.add( td ); TypeDeclarationDescr std; while ( (std = getDeclaredSuperType( td )) != null ) { th.add( std ); td = std; } //If the super-most class has been imported attempt to make a pseudo TypeDeclaration for the imported class if ( this.pkgDescr.getImports().size() > 0 ) { for ( ImportDescr imp : this.pkgDescr.getImports() ) { if ( imp.getTarget().endsWith( "." + td.getTypeName() ) ) { TypeDeclarationDescr pseudoTypeDeclr = makePseudoTypeDeclarationDescrFromSuperClassType( imp.getTarget(), jars ); if ( pseudoTypeDeclr != null ) { th.add( pseudoTypeDeclr ); } } } } return th; }
private List<TypeDeclarationDescr> getDeclaredTypeHierachy(TypeDeclarationDescr td, List< ? > jars) { List<TypeDeclarationDescr> th = new ArrayList<TypeDeclarationDescr>(); th.add( td ); TypeDeclarationDescr std; while ( (std = getDeclaredSuperType( td )) != null ) { th.add( std ); td = std; } //If the super-most class has been imported attempt to make a pseudo TypeDeclaration for the imported class if ( this.pkgDescr.getImports().size() > 0 ) { for ( ImportDescr imp : this.pkgDescr.getImports() ) { if ( imp.getTarget().endsWith( "." + td.getTypeName() ) ) { TypeDeclarationDescr pseudoTypeDeclr = makePseudoTypeDeclarationDescrFromSuperClassType( imp.getTarget(), jars ); if ( pseudoTypeDeclr != null ) { th.add( pseudoTypeDeclr ); } } } } return th; }
/** * Populate the fact type data. */ private void populateModelInfo(final List< ? > jars) { List<ImportDescr> imports = new ArrayList<ImportDescr>( pkgDescr.getImports() ); addAnyExternalImports( imports ); for ( ImportDescr importDescr : imports ) { String className = importDescr.getTarget(); try { addImport( className ); addFactType( jars, className ); } catch ( WildCardException e ) { this.errors.add( String.format( "Unable to introspect model for wild card imports (%s). Please explicitly import each fact type you require.", className ) ); } } }
/** * Populate the fact type data. */ private void populateModelInfo(final List< ? > jars) { List<ImportDescr> imports = new ArrayList<ImportDescr>( pkgDescr.getImports() ); addAnyExternalImports( imports ); for ( ImportDescr importDescr : imports ) { String className = importDescr.getTarget(); try { addImport( className ); addFactType( jars, className ); } catch ( WildCardException e ) { this.errors.add( String.format( "Unable to introspect model for wild card imports (%s). Please explicitly import each fact type you require.", className ) ); } } }
Set<ImportDescr> imports = new HashSet<ImportDescr>(); for (PackageDescr pd : packageDescrsForPackage) { imports.addAll( pd.getImports() ); pd.getImports().clear(); pd.addAllImports(imports);
public static Class<?> findClassByName(RuleBuildContext context, String className) { if (className == null) { return null; } String namespace = context.getRuleDescr().getNamespace(); PackageBuilder packageBuilder = context.getPackageBuilder(); Class<?> clazz = null; try { clazz = Class.forName(className.indexOf('.') < 0 ? namespace + "." + className : className, false, packageBuilder.getRootClassLoader()); } catch (ClassNotFoundException e) { } if (clazz != null) { return clazz; } Set<String> imports = new HashSet<String>(); List<PackageDescr> pkgDescrs = packageBuilder.getPackageDescrs(namespace); if (pkgDescrs == null) { return null; } for (PackageDescr pkgDescr : pkgDescrs) { for (ImportDescr importDescr : pkgDescr.getImports()) { imports.add(importDescr.getTarget()); } } return findClass(className, imports, packageBuilder.getRootClassLoader()); }
private void mergePackage( PackageRegistry pkgRegistry, PackageDescr packageDescr ) { for (final ImportDescr importDescr : packageDescr.getImports()) { pkgRegistry.addImport( importDescr ); } processEntryPointDeclarations(pkgRegistry, packageDescr); // process types in 2 steps to deal with circular and recursive declarations processUnresolvedTypes( pkgRegistry, processTypeDeclarations( pkgRegistry, packageDescr ) ); processOtherDeclarations( pkgRegistry, packageDescr ); }
private void buildTypeDeclarations(Collection<CompositePackageDescr> packages) { for (PackageDescr packageDescr : packages) { for (TypeDeclarationDescr typeDeclarationDescr : packageDescr.getTypeDeclarations()) { if (pkgBuilder.isEmpty( typeDeclarationDescr.getNamespace() )) { typeDeclarationDescr.setNamespace( packageDescr.getNamespace() ); // set the default namespace } pkgBuilder.registerGeneratedType(typeDeclarationDescr); } } Map<String, List<PackageBuilder.TypeDefinition>> unresolvedTypes = new HashMap<String, List<PackageBuilder.TypeDefinition>>(); for (PackageDescr packageDescr : packages) { List<PackageBuilder.TypeDefinition> unresolvedTypesForPkg = buildTypeDeclarations(packageDescr); if (unresolvedTypesForPkg != null) { unresolvedTypes.put(packageDescr.getNamespace(), unresolvedTypesForPkg); } } for (Map.Entry<String, List<PackageBuilder.TypeDefinition>> unresolvedType : unresolvedTypes.entrySet()) { pkgBuilder.processUnresolvedTypes(pkgBuilder.getPackageRegistry(unresolvedType.getKey()), unresolvedType.getValue()); } for (PackageDescr packageDescr : packages) { for (ImportDescr importDescr : packageDescr.getImports()) { pkgBuilder.getPackageRegistry(packageDescr.getNamespace()).addImport( importDescr ); } } }
for (ImportDescr id : packageDescr.getImports()) { if (id.getTarget().endsWith( "." + sup )) {
private void internalAdd(Resource resource, PackageDescr packageDescr) { List<ImportDescr> currentImports = getImports(); for (ImportDescr descr : packageDescr.getImports()) { if (!currentImports.contains(descr)) { addImport(descr);
public void visitPackageDescr(final PackageDescr packageDescr) { final String packageName = packageDescr.getName(); final String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> " + XmlDumper.eol + " <package name=\"" + packageName + "\" " + XmlDumper.eol + "\txmlns=\"http://drools.org/drools-5.2\" " + XmlDumper.eol + "\txmlns:xs=\"http://www.w3.org/2001/XMLSchema-instance\" " + XmlDumper.eol + "\txs:schemaLocation=\"http://drools.org/drools-5.2 drools.org/drools-5.2.xsd\"> " + XmlDumper.eol; appendXmlDump( xmlString ); appendXmlDump( processImportsList( packageDescr.getImports() ) ); appendXmlDump( processGlobalsList( packageDescr.getGlobals() ) ); appendXmlDump( processFunctionImportsList( packageDescr.getFunctionImports() )); appendXmlDump( processFunctionsList( packageDescr.getFunctions() ) ); appendXmlDump( processRules( packageDescr.getRules() ) ); appendXmlDump( "</package>" ); }
for ( ImportDescr id : packageDescr.getImports() ) { String imp = id.getTarget(); int separator = imp.lastIndexOf( '.' ); for ( ImportDescr imp : packageDescr.getImports() ) { altDescr.addImport( imp );