Interface TypeStore

    • Method Summary

      All Methods Instance Methods Abstract Methods Deprecated Methods 
      Modifier and Type Method Description
      TypeStoreUser add_attribute_user​(javax.xml.namespace.QName name)
      Adds an attribute with the given name and returns a TypeStoreUser underneath it.
      TypeStoreUser add_element_user​(javax.xml.namespace.QName name)
      Adds a new element at the last position adjacent to existing elements of the same name.
      void array_setter​(XmlObject[] sources, javax.xml.namespace.QName elementName)
      Copies the contents of the given array of XmlObject (including attributes, elements, mixed content), over all the elements of the given name under the current typestore.
      TypeStoreUser change_type​(SchemaType sType)
      Change the type of this store (perhaps by applying xsi:type) and return the new TypeStoreUser (or old one if the new type is not different).
      java.lang.String compute_default_text()
      Here the TypeStore is responsible for locating the default value.
      int compute_flags()
      Here the TypeStore is responsible for figuring if this value is nillable and/or fixed.
      TypeStoreUser copy​(SchemaTypeLoader schemaTypeLoader, SchemaType schemaType, XmlOptions options)
      Makes a copy of this store.
      TypeStoreUser copy_contents_from​(TypeStore source)
      Copies the contents of the given TypeStore (including attributes, elements, and mixed content), to the target type store.
      int count_elements​(javax.xml.namespace.QName name)
      Returns the count of elements with the given name owned by this textstore.
      int count_elements​(QNameSet names)
      Returns the count of elements that match of the names.
      XmlObject[] exec_query​(java.lang.String queryExpr, XmlOptions options)  
      java.lang.String fetch_text​(int whitespaceRule)
      A user of a TypeStore calls fetch_text when he knows his view of the text is invalid and he wants to see what the actual text value is.
      void find_all_element_users​(javax.xml.namespace.QName name, java.util.List fillMeUp)
      Returns all the TypeStoreUsers corresponding to elements with the given name owned by this typestore, or the empty array of TypeStoreUsers if none was found.
      void find_all_element_users​(QNameSet name, java.util.List fillMeUp)
      Returns all TypeStoreUsers corresponding to elements with one of the names is the QNameSet.
      TypeStoreUser find_attribute_user​(javax.xml.namespace.QName name)
      Returns the TypeStoreUser underneath the attribute with the given name, or null if there is no such attribute.
      TypeStoreUser find_element_user​(javax.xml.namespace.QName name, int i)
      Returns the TypeStoreUser underneath the ith element with the given name owned by this textstore, or null if none was found.
      TypeStoreUser find_element_user​(QNameSet names, int i)
      Like find_element_user but accepts a set of names to search for.
      boolean find_nil()
      The TypeStore is reponsible for discovering if this value is nil.
      XmlLocale get_locale()
      Returns the locale object which is used to manage thread safty and the gateway requirements for calls into the xml store
      java.lang.Object get_root_object()
      Deprecated. 
      SchemaField get_schema_field()
      Here the typestore is resposible for finding the schema field for this object.
      SchemaTypeLoader get_schematypeloader()
      Get the SchemaTypeLoader associated with the store contianing this TypeStore.
      javax.xml.namespace.QName get_xsi_type()
      Get the value of xsi:type.
      TypeStoreUser insert_element_user​(javax.xml.namespace.QName name, int i)
      Inserts a new element at the position that will make it the ith element with the given name owned by this textstore, and returns a TypeStoreUser for that element.
      TypeStoreUser insert_element_user​(QNameSet set, javax.xml.namespace.QName name, int i)
      Like the above method, except that it inserts an element named name, after the ith member of set.
      void invalidate_nil()
      Called when the value has been nilled or unnilled, so the textstore knows it needs to update the xsi:nil attribute.
      void invalidate_text()
      A user of a TypeStore calls invalidate_text when the underlying value has changed and he wants the textstore to call him back with a fetch_text (TypeStore/TypeStoreUsers work in pairs).
      boolean is_attribute()
      Tells if this store is an attribute or not
      XmlCursor new_cursor()
      Creates a new cursor positioned just before the part of the tree where this TypeStore is located.
      void remove_attribute​(javax.xml.namespace.QName name)
      Removes the attribute with the given name.
      void remove_element​(javax.xml.namespace.QName name, int i)
      Removes the ith element with the given name.
      void remove_element​(QNameSet names, int i)
      Removes the ith element that matches names.
      void store_text​(java.lang.String text)
      A user of a TypeStore calls store_text when he wants the TypeStore to remember the given text immediately.
      TypeStoreUser substitute​(javax.xml.namespace.QName name, SchemaType sType)  
      void validate​(ValidatorListener vEventSink)  
      boolean validate_on_set()
      Tells if this store was created with this option which tells the strongly typed objects to perform lexical and value validation after a setter is called.
      void visit_elements​(TypeStoreVisitor visitor)
      Visits all the elements immediately, using the given visitor.
    • Method Detail

      • new_cursor

        XmlCursor new_cursor()
        Creates a new cursor positioned just before the part of the tree where this TypeStore is located.
      • get_schematypeloader

        SchemaTypeLoader get_schematypeloader()
        Get the SchemaTypeLoader associated with the store contianing this TypeStore.
      • change_type

        TypeStoreUser change_type​(SchemaType sType)
        Change the type of this store (perhaps by applying xsi:type) and return the new TypeStoreUser (or old one if the new type is not different).
      • is_attribute

        boolean is_attribute()
        Tells if this store is an attribute or not
      • get_xsi_type

        javax.xml.namespace.QName get_xsi_type()
        Get the value of xsi:type. Return null if none or this is an attribute store.
      • invalidate_text

        void invalidate_text()
        A user of a TypeStore calls invalidate_text when the underlying value has changed and he wants the textstore to call him back with a fetch_text (TypeStore/TypeStoreUsers work in pairs).
      • fetch_text

        java.lang.String fetch_text​(int whitespaceRule)
        A user of a TypeStore calls fetch_text when he knows his view of the text is invalid and he wants to see what the actual text value is.
      • store_text

        void store_text​(java.lang.String text)
        A user of a TypeStore calls store_text when he wants the TypeStore to remember the given text immediately. This typically happens when the user has a noncanonical (but valid) string representation to save, but doesn't have the storage in which to save it.
      • compute_default_text

        java.lang.String compute_default_text()
        Here the TypeStore is responsible for locating the default value. This is done as follows (1) go to the parent TypeStoreUser (2) ask it to get_default_element_text(qname) (or _attribute_), and return it if not null. (2) otherwise, grab a new TypeStoreUserVisitor via v = parentuser.new_visitor(); (3) call v.visit(name) on _every_ element qname up to and including this one in order (4) return the result of v.get_default_text().
      • compute_flags

        int compute_flags()
        Here the TypeStore is responsible for figuring if this value is nillable and/or fixed. This is done by (1) go to the parent TypeStoreUser (2) ask it to get_elementflags(qname), and return it if not -1. (2) otherwise, grab a new TypeStoreUserVisitor via v = parentuser.new_visitor(); (3) call v.visit(name) on _every_ element qname up to and including this one in order (4) return the result of v.get_elementflags().
      • validate_on_set

        boolean validate_on_set()
        Tells if this store was created with this option which tells the strongly typed objects to perform lexical and value validation after a setter is called.
      • get_schema_field

        SchemaField get_schema_field()
        Here the typestore is resposible for finding the schema field for this object. This is done by (1) otherwise, grab a new TypeStoreUserVisitor via v = parentuser.new_visitor(); (2) call v.visit(name) on _every_ element qname up to and including this one in order (3) return the result of v.get_schema_field().
      • invalidate_nil

        void invalidate_nil()
        Called when the value has been nilled or unnilled, so the textstore knows it needs to update the xsi:nil attribute.
      • find_nil

        boolean find_nil()
        The TypeStore is reponsible for discovering if this value is nil. This is done by (1) going to the element and (2) finding the xsi:nil attribute if present and (3) return true if the collapsed textual value is either exactly the string "true" or "1".
      • count_elements

        int count_elements​(javax.xml.namespace.QName name)
        Returns the count of elements with the given name owned by this textstore.
      • count_elements

        int count_elements​(QNameSet names)
        Returns the count of elements that match of the names.
      • find_element_user

        TypeStoreUser find_element_user​(javax.xml.namespace.QName name,
                                        int i)
        Returns the TypeStoreUser underneath the ith element with the given name owned by this textstore, or null if none was found. Do not throw an IndexOutOfBoundsException if i is bad - return null instead. The reason is to allow us to fail and then follow with an add_element_etc if we choose to, without randomly catching exceptions.
      • find_element_user

        TypeStoreUser find_element_user​(QNameSet names,
                                        int i)
        Like find_element_user but accepts a set of names to search for.
      • find_all_element_users

        void find_all_element_users​(javax.xml.namespace.QName name,
                                    java.util.List fillMeUp)
        Returns all the TypeStoreUsers corresponding to elements with the given name owned by this typestore, or the empty array of TypeStoreUsers if none was found.
      • find_all_element_users

        void find_all_element_users​(QNameSet name,
                                    java.util.List fillMeUp)
        Returns all TypeStoreUsers corresponding to elements with one of the names is the QNameSet.
      • insert_element_user

        TypeStoreUser insert_element_user​(javax.xml.namespace.QName name,
                                          int i)
        Inserts a new element at the position that will make it the ith element with the given name owned by this textstore, and returns a TypeStoreUser for that element. Note that if there are no existing elements of the given name, you may need to call back to discover the proper ordering to use to insert the first one. Otherwise, it should be inserted adjacent to existing elements with the same name. Should throw an IndexOutOfBoundsException if i < 0 or if i > # of elts
      • insert_element_user

        TypeStoreUser insert_element_user​(QNameSet set,
                                          javax.xml.namespace.QName name,
                                          int i)
        Like the above method, except that it inserts an element named name, after the ith member of set.
      • add_element_user

        TypeStoreUser add_element_user​(javax.xml.namespace.QName name)
        Adds a new element at the last position adjacent to existing elements of the same name. Note that if there are no existing elements of the given name, the same comment applies as with insert_element_user.
      • remove_element

        void remove_element​(javax.xml.namespace.QName name,
                            int i)
        Removes the ith element with the given name. Should throw an IndexOutOfBoundsException if i < 0 or if i > # of elts-1.
      • remove_element

        void remove_element​(QNameSet names,
                            int i)
        Removes the ith element that matches names.
      • find_attribute_user

        TypeStoreUser find_attribute_user​(javax.xml.namespace.QName name)
        Returns the TypeStoreUser underneath the attribute with the given name, or null if there is no such attribute.
      • add_attribute_user

        TypeStoreUser add_attribute_user​(javax.xml.namespace.QName name)
        Adds an attribute with the given name and returns a TypeStoreUser underneath it. Should throw an IndexOutOfBoundsException if there is already an existing attribute with the given name.
      • remove_attribute

        void remove_attribute​(javax.xml.namespace.QName name)
        Removes the attribute with the given name.
      • copy_contents_from

        TypeStoreUser copy_contents_from​(TypeStore source)
        Copies the contents of the given TypeStore (including attributes, elements, and mixed content), to the target type store. SPECIAL NOTE: The xsi:type attribute should not be removed from the target or copied from the soruce, and the TypeStoreUser attached to this TypeStore should not be disconnected. This is for implementing obj.set(foo).
      • array_setter

        void array_setter​(XmlObject[] sources,
                          javax.xml.namespace.QName elementName)
        Copies the contents of the given array of XmlObject (including attributes, elements, mixed content), over all the elements of the given name under the current typestore. The lengths of the two arrays that are passed should be the same. If there are n current elements of the given name and m elements in the source array, there are several cases for individual elements: 1. If i < n and i < m, then the contents of the ith source are copied underneath the ith element; the ith element is not moved, but its TypeStoreUser is disconnected. 2. if i >= n and i < m, then first enough new elements are appended so that there is an element with the name i, then rule #1 is followed. 3. if i >= m and i < n, then the element #i and all its contents are removed.
      • visit_elements

        void visit_elements​(TypeStoreVisitor visitor)
        Visits all the elements immediately, using the given visitor. A TypeStoreUser calls this when somebody has requested validation.
      • get_root_object

        java.lang.Object get_root_object()
        Deprecated.
        Returns the monitor object, used for synchronizing access to the doc.
      • get_locale

        XmlLocale get_locale()
        Returns the locale object which is used to manage thread safty and the gateway requirements for calls into the xml store