Class AbstractLazyComplexTypeImpl

    • Constructor Detail

      • AbstractLazyComplexTypeImpl

        public AbstractLazyComplexTypeImpl​(Name name,
                                           boolean identified,
                                           boolean isAbstract,
                                           List<Filter> restrictions,
                                           InternationalString description)
        Constructor arguments have the same meaning as in ComplexTypeImpl.
    • Method Detail

      • buildDescriptors

        public abstract Collection<PropertyDescriptor> buildDescriptors()
        Subclasses must override this method to return the list of descriptors that define the properties of this type. This method will only be called once at most.

        If the type has no properties, return either an empty collection or null.

        Returns:
        a collection of descriptors or null if empty
      • isInline

        public boolean isInline()
        Description copied from interface: ComplexType
        Indicates ability of XPath to notice this attribute.

        This facility is used to "hide" an attribute from XPath searches, while the compelx contents will still be navigated no additional nesting will be considered. It will be as if the content were "folded" inline resulting in a flatter nesting structure.

        Construct described using Java Interfaces:

        
         interface TestSample {
             String name;
             List measurement;
         }
         interface Measurement {
             long timestamp;
             Point point;
             long reading;
         }
         
        The above is can hold the following information:
        
         [ name="survey1",
           measurements=(
               [timestamp=3,point=(2,3), reading=4200],
               [timestamp=9,point=(2,4), reading=445600],
           )
         ]
         
        Out of the box this is represented to XPath as the following tree:
        
         root/name: survey1
         root/measurement[0]/timestamp:3
         root/measurement[0]/point: (2,3)
         root/measurement[0]/reading: 4200
         root/measurement[1]/timestamp:9
         root/measurement[2]/point: (2,4)
         root/measurement[3]/reading: 445600
         
        By inlining Measurement we can achive the following:
        
         root/name: survey1
         root/timestamp[0]:3
         root/point[0]: (2,3)
         root/reading[0]: 4200
         root/timestamp[1]:9
         root/point[1]: (2,4)
         root/reading[1] 445600
         
        Specified by:
        isInline in interface ComplexType
        Returns:
        true if attribute is to be considered transparent by XPath queries
        See Also:
        ComplexType.isInline()