Class NewInvocationNode

  • All Implemented Interfaces:
    Visitable

    class NewInvocationNode
    extends MethodCallNode
    A NewInvocationNode represents a new object() invocation.
    • Field Detail

      • singleInstantiation

        private boolean singleInstantiation
      • delimitedIdentifier

        private boolean delimitedIdentifier
      • isBuiltinVTI

        private boolean isBuiltinVTI
    • Method Detail

      • isBuiltinVTI

        boolean isBuiltinVTI()
        Report whether this node represents a builtin VTI.
      • setSingleInstantiation

        void setSingleInstantiation()
        Mark this node as only needing to to a single instantiation. (We can reuse the object after newing it.)
      • categorize

        boolean categorize​(JBitSet referencedTabs,
                           boolean simplePredsOnly)
                    throws StandardException
        Categorize this predicate. Initially, this means building a bit map of the referenced tables for each predicate. If the source of this ColumnReference (at the next underlying level) is not a ColumnReference or a VirtualColumnNode then this predicate will not be pushed down. For example, in: select * from (select 1 from s) a (x) where x = 1 we will not push down x = 1. NOTE: It would be easy to handle the case of a constant, but if the inner SELECT returns an arbitrary expression, then we would have to copy that tree into the pushed predicate, and that tree could contain subqueries and method calls. RESOLVE - revisit this issue once we have views.
        Overrides:
        categorize in class MethodCallNode
        Parameters:
        referencedTabs - JBitSet with bit map of referenced FromTables
        simplePredsOnly - Whether or not to consider method calls, field references and conditional nodes when building bit map
        Returns:
        boolean Whether or not source.expression is a ColumnReference or a VirtualColumnNode.
        Throws:
        StandardException - Thrown on error
        See Also:
        ValueNode.categorize(org.apache.derby.iapi.util.JBitSet, boolean)
      • assignableTo

        protected boolean assignableTo​(java.lang.String toClassName)
                                throws StandardException
        Is this class assignable to the specified class? This is useful for the VTI interface where we want to see if the class implements java.sql.ResultSet.
        Parameters:
        toClassName - The java class name we want to assign to
        Returns:
        boolean Whether or not this class is assignable to the specified class
        Throws:
        StandardException - Thrown on error
      • findPublicMethod

        protected java.lang.reflect.Member findPublicMethod​(java.lang.String methodName,
                                                            boolean staticMethod)
                                                     throws StandardException
        Is this class have a public method with the specified signiture This is useful for the VTI interface where we want to see if the class has the option static method for returning the ResultSetMetaData.
        Parameters:
        methodName - The method name we are looking for
        staticMethod - Whether or not the method we are looking for is static
        Returns:
        Member The Member representing the method (or null if the method doesn't exist).
        Throws:
        StandardException - Thrown on error