neilg       2003/10/10 11:37:51

  Modified:    c/src/xercesc/framework/psvi XSModel.cpp XSModel.hpp
                        XSObject.cpp XSObject.hpp
  Log:
  update XSModel and XSObject interface so that IDs can be used to query components in 
XSModels, and so that those IDs can be recovered from components
  
  Revision  Changes    Path
  1.2       +42 -1     xml-xerces/c/src/xercesc/framework/psvi/XSModel.cpp
  
  Index: XSModel.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSModel.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XSModel.cpp       16 Sep 2003 14:33:36 -0000      1.1
  +++ XSModel.cpp       10 Oct 2003 18:37:51 -0000      1.2
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.2  2003/10/10 18:37:51  neilg
  + * update XSModel and XSObject interface so that IDs can be used to query 
components in XSModels, and so that those IDs can be recovered from components
  + *
    * Revision 1.1  2003/09/16 14:33:36  neilg
    * PSVI/schema component model classes, with Makefile/configuration changes 
necessary to build them
    *
  @@ -65,7 +68,30 @@
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  -XSModel::XSModel( MemoryManager* const manager ):  
  +/**
  +  * The constructor to be used wen a grammar pool contains all needed info
  +  *
  +  * @param grammarPool  the grammar pool containing the underlying data structures
  +  * @param  manager     The configurable memory manager
  +  */
  +XSModel::XSModel( XMLGrammarPool *grammarPool
  +            , MemoryManager* const manager ):
  +        fMemoryManager(manager)
  +{
  +}
  +
  +/**
  +  * The constructor to be used when the XSModel must represent all
  +  * components in the union of an existing XSModel and a newly-created
  +  * Grammar
  +  *
  +  * @param baseModel  the XSModel upon which this one is based
  +  * @param  grammar  the newly-created grammar whose components are to be merged
  +  * @param  manager     The configurable memory manager
  +  */
  +XSModel::XSModel( XSModel *baseModel
  +            , Grammar *grammar
  +            , MemoryManager* const manager ):
           fMemoryManager(manager)
   {
   }
  @@ -224,6 +250,21 @@
               , const XMLCh *compNamespace)
   {
       // REVISIT
  +    return 0;
  +}
  +
  +/**
  +  * Optional.  Return a component given a component type and a unique Id.  
  +  * May not be supported for all component types.
  +  * @param compId unique Id of the component within its type
  +  * @param compType type of the component
  +  * @return the component of the given type with the given Id, or 0
  +  * if no such component exists or this is unsupported for
  +  * this type of component.
  +  */
  +XSObject *XSModel::getXSObjectById(unsigned int  compId
  +            , XSConstants::COMPONENT_TYPE compType)
  +{
       return 0;
   }
   
  
  
  
  1.2       +34 -3     xml-xerces/c/src/xercesc/framework/psvi/XSModel.hpp
  
  Index: XSModel.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSModel.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XSModel.hpp       16 Sep 2003 14:33:36 -0000      1.1
  +++ XSModel.hpp       10 Oct 2003 18:37:51 -0000      1.2
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.2  2003/10/10 18:37:51  neilg
  + * update XSModel and XSObject interface so that IDs can be used to query 
components in XSModels, and so that those IDs can be recovered from components
  + *
    * Revision 1.1  2003/09/16 14:33:36  neilg
    * PSVI/schema component model classes, with Makefile/configuration changes 
necessary to build them
    *
  @@ -83,6 +86,8 @@
    */
   
   // forward declarations
  +class Grammar;
  +class XMLGrammarPool;
   class XSAnnotation;
   class XSAttributeDeclaration;
   class XSAttributeGroupDefinition;
  @@ -102,12 +107,26 @@
       //@{
   
       /**
  -      * The default constructor 
  +      * The constructor to be used wen a grammar pool contains all needed info
         *
  +      * @param grammarPool  the grammar pool containing the underlying data 
structures
         * @param  manager     The configurable memory manager
         */
  -    XSModel( 
  -                MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
  +    XSModel( XMLGrammarPool *grammarPool
  +                , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
  +
  +    /**
  +      * The constructor to be used when the XSModel must represent all
  +      * components in the union of an existing XSModel and a newly-created
  +      * Grammar
  +      *
  +      * @param baseModel  the XSModel upon which this one is based
  +      * @param  grammar  the newly-created grammar whose components are to be merged
  +      * @param  manager     The configurable memory manager
  +      */
  +    XSModel( XSModel *baseModel
  +                , Grammar *grammar
  +                , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
   
       //@};
   
  @@ -231,6 +250,18 @@
        */
       XSNotationDeclaration *getNotationDeclaration(const XMLCh *name
               , const XMLCh *compNamespace);
  +
  +    /**
  +      * Optional.  Return a component given a component type and a unique Id.  
  +      * May not be supported for all component types.
  +      * @param compId unique Id of the component within its type
  +      * @param compType type of the component
  +      * @return the component of the given type with the given Id, or 0
  +      * if no such component exists or this is unsupported for
  +      * this type of component.
  +      */
  +    XSObject *getXSObjectById(unsigned int  compId
  +                , XSConstants::COMPONENT_TYPE compType);
   
       // @}
   
  
  
  
  1.3       +15 -1     xml-xerces/c/src/xercesc/framework/psvi/XSObject.cpp
  
  Index: XSObject.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSObject.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XSObject.cpp      17 Sep 2003 17:45:37 -0000      1.2
  +++ XSObject.cpp      10 Oct 2003 18:37:51 -0000      1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.3  2003/10/10 18:37:51  neilg
  + * update XSModel and XSObject interface so that IDs can be used to query 
components in XSModels, and so that those IDs can be recovered from components
  + *
    * Revision 1.2  2003/09/17 17:45:37  neilg
    * remove spurious inlines; hopefully this will make Solaris/AIX compilers happy.
    *
  @@ -91,6 +94,17 @@
   }
   
   XSNamespaceItem *XSObject::getNamespaceItem() 
  +{
  +    return 0;
  +}
  +
  +/**
  +  * Optional.  return a unique identifier for a component within this XSModel, to
  +  * optimize querying.  May not be defined for all component types.
  +  * @return id unique for this type of component within this XSModel
  +  * or 0 to indicate that this is unsupported for this type of component.
  +  */
  +inline unsigned int XSObject::getId() const
   {
       return 0;
   }
  
  
  
  1.2       +11 -0     xml-xerces/c/src/xercesc/framework/psvi/XSObject.hpp
  
  Index: XSObject.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSObject.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XSObject.hpp      16 Sep 2003 14:33:36 -0000      1.1
  +++ XSObject.hpp      10 Oct 2003 18:37:51 -0000      1.2
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.2  2003/10/10 18:37:51  neilg
  + * update XSModel and XSObject interface so that IDs can be used to query 
components in XSModels, and so that those IDs can be recovered from components
  + *
    * Revision 1.1  2003/09/16 14:33:36  neilg
    * PSVI/schema component model classes, with Makefile/configuration changes 
necessary to build them
    *
  @@ -133,6 +136,14 @@
        * otherwise.
        */
       virtual XSNamespaceItem *getNamespaceItem();
  +
  +    /**
  +      * Optional.  Return a unique identifier for a component within this XSModel, 
to
  +      * optimize querying.  May not be defined for all types of component.
  +      * @return id unique for this type of component within this XSModel or 0
  +      *     to indicate that this is not supported for this type of component.
  +      */
  +    virtual unsigned int getId() const;
   
       //@}
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to