예제 #1
0
 public override System.Collections.Generic.IEnumerable <System.Type> ToIterable(object context)
 {
     System.Collections.Generic.IList <Net.Vpc.Upa.Config.ScanFilter> _filters = new System.Collections.Generic.List <Net.Vpc.Upa.Config.ScanFilter>();
     if (context is Net.Vpc.Upa.UPAContext)
     {
         Net.Vpc.Upa.UPAContext pg = (Net.Vpc.Upa.UPAContext)context;
         Net.Vpc.Upa.Impl.FwkConvertUtils.ListAddRange(_filters, new System.Collections.Generic.List <Net.Vpc.Upa.Config.ScanFilter>(pg.GetContextAnnotationStrategyFilters()));
     }
     else if (context is Net.Vpc.Upa.PersistenceGroup)
     {
         Net.Vpc.Upa.PersistenceGroup pg = (Net.Vpc.Upa.PersistenceGroup)context;
         foreach (Net.Vpc.Upa.Config.ScanFilter filter in pg.GetContext().GetContextAnnotationStrategyFilters())
         {
             if (filter.IsPropagate())
             {
                 _filters.Add(filter);
             }
         }
         Net.Vpc.Upa.Impl.FwkConvertUtils.ListAddRange(_filters, new System.Collections.Generic.List <Net.Vpc.Upa.Config.ScanFilter>(pg.GetContextAnnotationStrategyFilters()));
     }
     else if (context is Net.Vpc.Upa.PersistenceUnit)
     {
         Net.Vpc.Upa.PersistenceUnit pu = (Net.Vpc.Upa.PersistenceUnit)context;
         foreach (Net.Vpc.Upa.Config.ScanFilter filter in pu.GetPersistenceGroup().GetContext().GetContextAnnotationStrategyFilters())
         {
             if (filter.IsPropagate())
             {
                 _filters.Add(filter);
             }
         }
         foreach (Net.Vpc.Upa.Config.ScanFilter filter in pu.GetPersistenceGroup().GetContextAnnotationStrategyFilters())
         {
             if (filter.IsPropagate())
             {
                 _filters.Add(filter);
             }
         }
         foreach (Net.Vpc.Upa.Config.ScanFilter filter in pu.GetContextAnnotationStrategyFilters())
         {
             _filters.Add(filter);
         }
     }
     else
     {
         throw new System.ArgumentException("Unsupported context " + context);
     }
     return(new Net.Vpc.Upa.Impl.Util.Classpath.URLClassIterable(Net.Vpc.Upa.Impl.Util.Classpath.ClassPathUtils.ResolveClassPathLibs(), new Net.Vpc.Upa.Impl.Util.Classpath.DefaultConfigFilter(_filters.ToArray()), null));
 }