Package org.drools.definition.type

Examples of org.drools.definition.type.FactType


        assertFalse( kBuilder.hasErrors() );

        KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
        knowledgeBase.addKnowledgePackages( kBuilder.getKnowledgePackages() );

        FactType sw = knowledgeBase.getFactType( "org.drools.test", "StudentWorker" );
        assertEquals( 5, sw.getFields().size() );

    }
View Full Code Here


        assertFalse( kBuilder.hasErrors() );

        KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
        knowledgeBase.addKnowledgePackages( kBuilder.getKnowledgePackages() );

        FactType sw = knowledgeBase.getFactType( "org.drools.test", "MultiInhPosTrait" );
        assertEquals( 5, sw.getFields().size() );
        assertEquals( "field0", sw.getFields().get(0).getName() );
        assertEquals( "field1", sw.getFields().get(1).getName() );
        assertEquals( "mfield1", sw.getFields().get(2).getName() );
        assertEquals( "field2", sw.getFields().get(3).getName() );
        assertEquals( "mfield0", sw.getFields().get(4).getName() );

        drl =
            "package org.drools.test\n" +
            "declare trait PosTrait\n" +
            "@propertyReactive\n" +
            "    field0 : int = 100  //@position(0)\n" +
            "    field1 : int = 101  //@position(1)\n" +
            "    field2 : int = 102  //@position(0)\n" +
            "end\n" +
            "\n" +
            "declare trait MultiInhPosTrait extends PosTrait\n" +
            "@propertyReactive\n" +
            "    mfield0 : int = 200 @position(0)\n" +
            "    mfield1 : int = 201 @position(2)\n" +
            "end";
        kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(  );
        kBuilder.add( new ByteArrayResource( drl.getBytes() ), ResourceType.DRL );
        if ( kBuilder.hasErrors() ) {
            System.err.println( kBuilder.getErrors() );
        }
        assertFalse( kBuilder.hasErrors() );

        knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
        knowledgeBase.addKnowledgePackages( kBuilder.getKnowledgePackages() );

        sw = knowledgeBase.getFactType( "org.drools.test", "MultiInhPosTrait" );
        assertEquals( 5, sw.getFields().size() );
        assertEquals( "mfield0", sw.getFields().get(0).getName() );
        assertEquals( "field0", sw.getFields().get(1).getName() );
        assertEquals( "mfield1", sw.getFields().get(2).getName() );
        assertEquals( "field1", sw.getFields().get(3).getName() );
        assertEquals( "field2", sw.getFields().get(4).getName() );



        drl =
                "package org.drools.test\n" +
                        "declare trait PosTrait\n" +
                        "@propertyReactive\n" +
                        "    field0 : int = 100  @position(0)\n" +
                        "    field1 : int = 101  @position(1)\n" +
                        "    field2 : int = 102  @position(0)\n" +
                        "end\n" +
                        "\n" +
                        "declare trait MultiInhPosTrait extends PosTrait\n" +
                        "@propertyReactive\n" +
                        "    mfield0 : int = 200 //@position(0)\n" +
                        "    mfield1 : int = 201 @position(2)\n" +
                        "end";
        kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(  );
        kBuilder.add( new ByteArrayResource( drl.getBytes() ), ResourceType.DRL );
        if ( kBuilder.hasErrors() ) {
            System.err.println( kBuilder.getErrors() );
        }
        assertFalse( kBuilder.hasErrors() );

        knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
        knowledgeBase.addKnowledgePackages( kBuilder.getKnowledgePackages() );

        sw = knowledgeBase.getFactType( "org.drools.test", "MultiInhPosTrait" );
        assertEquals( 5, sw.getFields().size() );
        assertEquals( "field0", sw.getFields().get(0).getName() );
        assertEquals( "field2", sw.getFields().get(1).getName() );
        assertEquals( "field1", sw.getFields().get(2).getName() );
        assertEquals( "mfield1", sw.getFields().get(3).getName() );
        assertEquals( "mfield0", sw.getFields().get(4).getName() );



        drl =
                "package org.drools.test\n" +
                        "declare trait PosTrait\n" +
                        "@propertyReactive\n" +
                        "    field0 : int = 100  @position(1)\n" +
                        "    field1 : int = 101  @position(0)\n" +
                        "    field2 : int = 102  @position(0)\n" +
                        "end\n" +
                        "\n" +
                        "declare trait MultiInhPosTrait extends PosTrait\n" +
                        "@propertyReactive\n" +
                        "    mfield0 : int = 200 @position(0)\n" +
                        "    mfield1 : int = 201 @position(2)\n" +
                        "end";
        kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(  );
        kBuilder.add( new ByteArrayResource( drl.getBytes() ), ResourceType.DRL );
        if ( kBuilder.hasErrors() ) {
            System.err.println( kBuilder.getErrors() );
        }
        assertFalse( kBuilder.hasErrors() );

        knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
        knowledgeBase.addKnowledgePackages( kBuilder.getKnowledgePackages() );

        sw = knowledgeBase.getFactType( "org.drools.test", "MultiInhPosTrait" );
        assertEquals( 5, sw.getFields().size() );
        assertEquals( "field1", sw.getFields().get(0).getName() );
        assertEquals( "field2", sw.getFields().get(1).getName() );
        assertEquals( "mfield0", sw.getFields().get(2).getName() );
        assertEquals( "field0", sw.getFields().get(3).getName() );
        assertEquals( "mfield1", sw.getFields().get(4).getName() );



        drl =
        "package org.drools.test\n" +
                "declare trait PosTrait\n" +
                "@propertyReactive\n" +
                "    field0 : int = 100  @position(2)\n" +
                "    field1 : int = 101  @position(1)\n" +
                "    field2 : int = 102  @position(8)\n" +
                "end\n" +
                "\n" +
                "declare trait MultiInhPosTrait extends PosTrait\n" +
                "@propertyReactive\n" +
                "    mfield0 : int = 200 @position(7)\n" +
                "    mfield1 : int = 201 @position(2)\n" +
                "end";
        kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(  );
        kBuilder.add( new ByteArrayResource( drl.getBytes() ), ResourceType.DRL );
        if ( kBuilder.hasErrors() ) {
            System.err.println( kBuilder.getErrors() );
        }
        assertFalse( kBuilder.hasErrors() );

        knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
        knowledgeBase.addKnowledgePackages( kBuilder.getKnowledgePackages() );

        sw = knowledgeBase.getFactType( "org.drools.test", "MultiInhPosTrait" );
        assertEquals( 5, sw.getFields().size() );
        assertEquals( "field1", sw.getFields().get(0).getName() );
        assertEquals( "field0", sw.getFields().get(1).getName() );
        assertEquals( "mfield1", sw.getFields().get(2).getName() );
        assertEquals( "mfield0", sw.getFields().get(3).getName() );
        assertEquals( "field2", sw.getFields().get(4).getName() );



        drl =
                "package org.drools.test\n" +
                        "declare trait PosTrait\n" +
                        "@propertyReactive\n" +
                        "    field0 : int = 100  //@position(0)\n" +
                        "    field1 : int = 101  //@position(1)\n" +
                        "    field2 : int = 102  //@position(0)\n" +
                        "end\n" +
                        "\n" +
                        "declare trait SecPosTrait\n" +
                        "@propertyReactive\n" +
                        "    field3 : int = 100  //@position(0)\n" +
                        "    field1 : int = 101  //@position(1)\n" +
                        "end\n" +
                        "\n" +
                        "declare trait MultiInhPosTrait extends PosTrait, SecPosTrait\n" +
                        "@propertyReactive\n" +
                        "    mfield0 : int = 200 //@position(0)\n" +
                        "    mfield1 : int = 201 //@position(2)\n" +
                        "end";
        kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(  );
        kBuilder.add( new ByteArrayResource( drl.getBytes() ), ResourceType.DRL );
        if ( kBuilder.hasErrors() ) {
            System.err.println( kBuilder.getErrors() );
        }
        assertFalse( kBuilder.hasErrors() );

        knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
        knowledgeBase.addKnowledgePackages( kBuilder.getKnowledgePackages() );

        sw = knowledgeBase.getFactType( "org.drools.test", "MultiInhPosTrait" );
        assertEquals( 6, sw.getFields().size() );
        assertEquals( "field0", sw.getFields().get(0).getName() );
        assertEquals( "field1", sw.getFields().get(1).getName() );
        assertEquals( "field2", sw.getFields().get(2).getName() );
        assertEquals( "field3", sw.getFields().get(3).getName() );
        assertEquals( "mfield0", sw.getFields().get(4).getName() );
        assertEquals( "mfield1", sw.getFields().get(5).getName() );



        drl =
                "package org.drools.test\n" +
                        "declare trait PosTrait\n" +
                        "@propertyReactive\n" +
                        "    field0 : int = 100  @position(0)\n" +
                        "    field1 : int = 101  @position(1)\n" +
                        "    field2 : int = 102  @position(0)\n" +
                        "end\n" +
                        "\n" +
                        "declare trait SecPosTrait\n" +
                        "@propertyReactive\n" +
                        "    field3 : int = 100  @position(2)\n" +
                        "    field1 : int = 101  //@position(1)\n" +
                        "end\n" +
                        "\n" +
                        "declare trait MultiInhPosTrait extends PosTrait, SecPosTrait\n" +
                        "@propertyReactive\n" +
                        "    mfield0 : int = 200 @position(0)\n" +
                        "    mfield1 : int = 201 @position(2)\n" +
                        "end";
        kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(  );
        kBuilder.add( new ByteArrayResource( drl.getBytes() ), ResourceType.DRL );
        if ( kBuilder.hasErrors() ) {
            System.err.println( kBuilder.getErrors() );
        }
        assertFalse( kBuilder.hasErrors() );

        knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
        knowledgeBase.addKnowledgePackages( kBuilder.getKnowledgePackages() );

        sw = knowledgeBase.getFactType( "org.drools.test", "MultiInhPosTrait" );
        assertEquals( 6, sw.getFields().size() );
        assertEquals( "field0", sw.getFields().get(0).getName() );
        assertEquals( "field2", sw.getFields().get(1).getName() );
        assertEquals( "mfield0", sw.getFields().get(2).getName() );
        assertEquals( "field1", sw.getFields().get(3).getName() );
        assertEquals( "field3", sw.getFields().get(4).getName() );
        assertEquals( "mfield1", sw.getFields().get(5).getName() );

    }
View Full Code Here

    @Test
    public void testExtends() throws Exception {
        //Test Base Fact Type
        StatefulKnowledgeSession ksession = genSession("test_Extends.drl");

        FactType person = ksession.getKnowledgeBase().getFactType("defaultpkg","Person");
        FactType eqPair = ksession.getKnowledgeBase().getFactType("defaultpkg","EqualityPair");

        Object p = person.newInstance();
        assertNotNull(p);

        ksession.insert("Populate");
        ksession.fireAllRules();

        // A Rule will generate 3 Persons, one with default constructor, two with field constructor
        // and 3 Students, which extends Person. One with default, one with field constructor
        assertEquals(6, ksession.getObjects(new ClassObjectFilter(person.getFactClass())).size());
        assertEquals(1+4+1+4,ksession.getObjects(new ClassObjectFilter(eqPair.getFactClass())).size());
        ksession.dispose();
    }
View Full Code Here

    @Test
    public void testGeneratedMethods() throws Exception {
        StatefulKnowledgeSession ksession = genSession("test_Extends.drl");

        FactType student = ksession.getKnowledgeBase().getFactType("defaultpkg","Student");

        Constructor constructor = student.getFactClass().getConstructor(String.class,int.class,String.class);
        assertNotNull(constructor);
        Method equals = student.getFactClass().getMethod("equals",Object.class);
        assertNotNull(equals);

        Object s1 = constructor.newInstance("John",18,"Skool");
            assertNotNull(s1);
            assertEquals("Student( name=John, age=18, school=Skool )", s1.toString());
View Full Code Here

    }

    @Test
    public void testDeepExt() throws Exception {
        StatefulKnowledgeSession ksession = genSession("test_Extends.drl");
        FactType LTstudent = ksession.getKnowledgeBase().getFactType("defaultpkg","LongTermStudent");

        Constructor constructor = LTstudent.getFactClass().getConstructor(String.class,int.class,String.class,String.class,int.class);
        assertNotNull(constructor);

        Object ls1 = constructor.newInstance("John",18,"Skool","C1245",4);
        Object ls2 = constructor.newInstance("John",33,"Skool","C1421",4);
View Full Code Here

    @Test
    public void testExtendsLegacy() throws Exception {
        StatefulKnowledgeSession ksession = genSession("test_ExtLegacy.drl",0);

        FactType leg = ksession.getKnowledgeBase().getFactType("org.drools","BetterLegacy");
        assertNotNull(leg);

        Object b = leg.newInstance();

        assertEquals(3.3,leg.get(b,"doubleField"));
        assertNull(leg.get(b,"objField"));
        assertEquals(245,leg.get(b,"intField"));
        assertEquals("XX",leg.get(b,"strField"));
        assertEquals(true,leg.get(b,"prop"));
        assertEquals("Hello",leg.get(b,"oneMoreField"));

        System.out.println(b);

    }
View Full Code Here

     @Test
     public void testExtendsAcrossFiles() throws Exception {
        StatefulKnowledgeSession ksession = genSession(new String[] {"test_Ext1.drl","test_Ext2.drl","test_Ext3.drl","test_Ext4.drl"} ,0);

        FactType person = ksession.getKnowledgeBase().getFactType("org.drools.compiler.test","Person");
            assertNotNull(person);
        FactType student = ksession.getKnowledgeBase().getFactType("org.drools.compiler.test","Student");
            assertNotNull(student);

        FactType worker = ksession.getKnowledgeBase().getFactType("org.drools.compiler.anothertest","Worker");
            assertNotNull(worker);

        FactType ltss = ksession.getKnowledgeBase().getFactType("defaultpkg","SubLTStudent");
            assertNotNull(ltss);

        Constructor ctor = worker.getFactClass().getConstructor(String.class,int.class,String.class, double.class, int.class);
            assertNotNull(ctor);
View Full Code Here


    @Test
     public void testFieldInit() throws Exception {
        StatefulKnowledgeSession ksession = genSession("test_ExtFieldInit.drl");
        FactType test = ksession.getKnowledgeBase().getFactType("org.drools.compiler", "MyBean3");

        Object x = test.newInstance();
        assertNotNull(x);

        assertEquals(12,test.get(x,"fieldint"));
        assertEquals("xyz",test.get(x,"fieldstr"));
        assertEquals(3.23,test.get(x,"fielddbl"));
        assertEquals(0,test.get(x,"field0"));
        assertEquals(0.0f,test.get(x,"field1"));
        assertEquals(1.2f,test.get(x,"fieldflt"));
        short sht = 2;
        assertEquals(sht,test.get(x,"fieldsht"));
        assertEquals(0,test.get(x,"field2"));
        byte byt = 1;
        assertEquals(byt,test.get(x,"fieldbyt"));
        assertEquals(true,test.get(x,"fieldbln"));
        assertEquals('x',test.get(x,"fieldchr"));
        assertEquals(9999L,test.get(x,"fieldlng"));


        System.out.println(x);

    }
View Full Code Here

        // test kbase serialization
        kbase = SerializationHelper.serializeObject( kbase );

        // Retrieve the generated fact type
        FactType cheeseFact = kbase.getFactType( "org.drools.generatedbeans",
                                                 "Cheese" );

        // Create a new Fact instance
        Object cheese = cheeseFact.newInstance();

        // Set a field value using the more verbose method chain...
        // should we add short cuts?
        //        cheeseFact.getField( "type" ).set( cheese,
        //                                           "stilton" );

        cheeseFact.set( cheese,
                        "type",
                        "stilton" );
        assertEquals( "stilton",
                      cheeseFact.get( cheese,
                                      "type" ) );

        FactType personType = kbase.getFactType( "org.drools.generatedbeans",
                                                 "Person" );

        Object ps = personType.newInstance();
        personType.set( ps,
                        "age",
                        42 );

        Map<String, Object> personMap = personType.getAsMap( ps );
        assertEquals( 42,
                      personMap.get( "age" ) );

        personMap.put( "age",
                       43 );
        personType.setFromMap( ps,
                               personMap );

        assertEquals( 43,
                      personType.get( ps,
                                      "age" ) );

        // just documenting toString() result:
        //        assertEquals( "Cheese( type=stilton )",
        //                      cheese.toString() );

        // reading the field attribute, using the method chain
        assertEquals( "stilton",
                      cheeseFact.getField( "type" ).get( cheese ) );

        // creating a stateful session
        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
        Object cg = cheeseFact.newInstance();
        ksession.setGlobal( "cg",
                            cg );
        List<Object> result = new ArrayList<Object>();
        ksession.setGlobal( "list",
                            result );

        // inserting fact
        ksession.insert( cheese );

        // firing rules
        ksession.fireAllRules();

        // checking results
        assertEquals( 1,
                      result.size() );
        assertEquals( new Integer( 5 ),
                      result.get( 0 ) );

        // creating a person that likes the cheese:
        // Retrieve the generated fact type
        FactType personFact = kbase.getFactType( "org.drools.generatedbeans",
                                                 "Person" );

        // Create a new Fact instance
        Object person = personFact.newInstance();

        // Set a field value using the more verbose method chain...
        // should we add short cuts?
        personFact.getField( "likes" ).set( person,
                                            cheese );
        // demonstrating primitive type support
        personFact.getField( "age" ).set( person,
                                          7 );

        // just documenting toString() result:
        //        assertEquals( "Person( age=7, likes=Cheese( type=stilton ) )",
        //                      person.toString() );
View Full Code Here

        // test kbase serialization
        kbase = SerializationHelper.serializeObject( kbase );

        // Retrieve the generated fact type
        FactType pf = kbase.getFactType( "mortgages",
                                         "Applicant" );
        FactType af = kbase.getFactType( "mortgages",
                                         "LoanApplication" );

        Object person = pf.newInstance();
        pf.set( person,
                "creditRating",
                "OK" );

        Object application = af.newInstance();
        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
        ksession.insert( person );
        ksession.insert( application );

        ksession.fireAllRules();
View Full Code Here

TOP

Related Classes of org.drools.definition.type.FactType

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.