What about FactType.getFactClass()? Should avoid all issues. Admittedly, in order to get the FactType, you'll have to start with a package name and the declared type name as strings, but these ought to be identlical to what you have in your DRL. But the Class is the Class.
But I think OP's problem is solved... Cheers -W On 10/11/2013, Stephen Masters <stephen.mast...@me.com> wrote: > That’s what I meant … if a Java fact is being used, then using .getClass() > is a better approach than strings. > > I wrote the method to support DRL declared types originally. If I create a > declared type, then I know that the simple name will match the name of my > declared type once Drools has converted it internally into a Java class. > However, I can’t reference the class directly at Java compile time, so a > class-based solution won’t work. Additionally, I don’t like to assume that > the full class name with packages, that Drools will generate will remain the > same across different versions. Whereas I do know that within my code, I > won’t be creating 2 facts with the same simple name. > > Admittedly these days, I tend to avoid using declared types that are > expected to exist outside of working memory, so there’s not much reason for > me to use this String-based finder any more. In fact I wrote a new method > earlier today, with a Class argument, as it is a better idea for most of my > uses these days. :) > > > > On 10 Nov 2013, at 15:06, Wolfgang Laun <wolfgang.l...@gmail.com> wrote: > >> I just see that I forgot to add "equals": >> return object.getClass().equals( factClass ); >> >> @Stephen: I don't understand "if a Java fact is being used". Sure, the >> object filter's accept takes an object, so object.getClass() is the >> typical way to go. But why the detour into strings? >> ....StudentBean.class isn't much longer than the class name as a >> string ;-) >> >> -W >> >> On 10/11/2013, Stephen Masters <stephen.mast...@me.com> wrote: >>> Good point Wolfgang … it’s a bit of my code that I provided. I tend to >>> use >>> SimpleName to make it easy to find declared types as well as Java >>> classes. >>> But if a Java fact is being used, then getClass() is a much better idea. >>> >>> >>> On 10 Nov 2013, at 07:27, Wolfgang Laun <wolfgang.l...@gmail.com> wrote: >>> >>>> Digging a bit into Java's API always helps ;-) Note that >>>> Class.getSimpleName() really does what it says, as opposed to >>>> Class.getName(). >>>> >>>> It would be best to avoid the String representation: >>>> >>>> Collection findFacts( StatefulKnowledgeSession session, Class factClass >>>> ){... >>>> public boolean accept( Object object ){ >>>> return object.getClass().( factClass ); >>>> }...} >>>> >>>> -W >>>> >>>> On 10/11/2013, forsakendoll <forsakend...@hotmail.com> wrote: >>>>> How can I get the value from a stateful session. As they say I can use >>>>> this: >>>>> >>>>> protected Collection findFacts( final StatefulKnowledgeSession >>>>> session, >>>>> final String factClass ) >>>>> { >>>>> ObjectFilter filter = new ObjectFilter() >>>>> { >>>>> @Override >>>>> public boolean accept( Object object ) >>>>> { >>>>> return object.getClass().getSimpleName().equals( >>>>> factClass >>>>> ); >>>>> } >>>>> }; >>>>> >>>>> Collection results = session.getObjects( filter ); >>>>> >>>>> return results; >>>>> } >>>>> >>>>> to get the value from the rules. Given the fact the code already red >>>>> the >>>>> rules when I tried this: >>>>> >>>>> StatefulKnowledgeSession ksession = >>>>> aKnowledgeBase.newStatefulKnowledgeSession(); >>>>> >>>>> ksession.insert( aBean ); >>>>> ksession.fireAllRules(); >>>>> >>>>> Collection result = findFacts( ksession, >>>>> "com.neu.als.thesis.db.beans.StudentBean" ); >>>>> >>>>> ksession.dispose(); >>>>> for( Object test : result ) >>>>> { >>>>> System.out.println( test == null ); >>>>> System.out.println( test ); >>>>> } >>>>> >>>>> Nothing is printed. What is the proper way to get bean that I inserted >>>>> in >>>>> the rules? >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> View this message in context: >>>>> http://drools.46999.n3.nabble.com/Drools-get-value-from-stateful-session-tp4026712.html >>>>> Sent from the Drools: User forum mailing list archive at Nabble.com. >>>>> _______________________________________________ >>>>> rules-users mailing list >>>>> rules-users@lists.jboss.org >>>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>>> >>>> _______________________________________________ >>>> rules-users mailing list >>>> rules-users@lists.jboss.org >>>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users@lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >> >> _______________________________________________ >> rules-users mailing list >> rules-users@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users > > > _______________________________________________ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users