Class ReflectiveSchema.Factory

  • All Implemented Interfaces:
    SchemaFactory
    Enclosing class:
    ReflectiveSchema

    public static class ReflectiveSchema.Factory
    extends java.lang.Object
    implements SchemaFactory
    Factory that creates a schema by instantiating an object and looking at its public fields.

    The following example instantiates a FoodMart object as a schema that contains tables called EMPS and DEPTS based on the object's fields.

     schemas: [
         {
           name: "foodmart",
           type: "custom",
           factory: "org.apache.calcite.adapter.java.ReflectiveSchema$Factory",
           operand: {
             class: "com.acme.FoodMart",
             staticMethod: "instance"
           }
         }
       ]
      
     class FoodMart {
       public static final FoodMart instance() {
         return new FoodMart();
       }
      
       Employee[] EMPS;
       Department[] DEPTS;
     }
    • Constructor Summary

      Constructors 
      Constructor Description
      Factory()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Schema create​(SchemaPlus parentSchema, java.lang.String name, java.util.Map<java.lang.String,​java.lang.Object> operand)
      Creates a Schema.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Factory

        public Factory()
    • Method Detail

      • create

        public Schema create​(SchemaPlus parentSchema,
                             java.lang.String name,
                             java.util.Map<java.lang.String,​java.lang.Object> operand)
        Description copied from interface: SchemaFactory
        Creates a Schema.
        Specified by:
        create in interface SchemaFactory
        Parameters:
        parentSchema - Parent schema
        name - Name of this schema
        operand - The "operand" JSON property
        Returns:
        Created schema