]> OCCT Git - occt-wok.git/commitdiff
Initial revision
authorcas <cas@opencascade.com>
Fri, 5 Nov 1999 18:24:35 +0000 (18:24 +0000)
committercas <cas@opencascade.com>
Fri, 5 Nov 1999 18:24:35 +0000 (18:24 +0000)
src/WOKBuilder/WOKBuilder_MSJiniExtractor.cdl [new file with mode: 0755]
src/WOKBuilder/WOKBuilder_MSJiniExtractor.cxx [new file with mode: 0755]

diff --git a/src/WOKBuilder/WOKBuilder_MSJiniExtractor.cdl b/src/WOKBuilder/WOKBuilder_MSJiniExtractor.cdl
new file mode 100755 (executable)
index 0000000..5ae4101
--- /dev/null
@@ -0,0 +1,68 @@
+-- File:       WOKBuilder_MSJiniExtractor.cdl
+-- Created:    Mon Mar 22 17:13:53 1999
+-- Author:     Arnaud BOUZY
+--             <adn@motox.paris1.matra-dtv.fr>
+---Copyright:   Matra Datavision 1999
+
+class MSJiniExtractor    from WOKBuilder 
+inherits MSHeaderExtractor from WOKBuilder 
+
+       ---Purpose: 
+
+uses
+    MSActionType            from WOKBuilder,
+    MSActionStatus          from WOKBuilder,
+    MSAction                from WOKBuilder,
+    Param                   from WOKUtils,
+    HSequenceOfMemberMet    from MS,
+    HSequenceOfExternMet    from MS,
+    MapOfHAsciiString       from WOKTools,
+    HAsciiString            from TCollection,
+    HSequenceOfHAsciiString from TColStd
+
+is
+
+    Create(ashared    : HAsciiString from TCollection;
+          searchlist : HSequenceOfHAsciiString from TColStd)
+       returns mutable MSJiniExtractor from WOKBuilder;
+    
+    Create(params : Param from WOKUtils) 
+       returns mutable MSJiniExtractor from WOKBuilder;
+
+    Init(me:mutable; aname : HAsciiString from TCollection);
+    
+    MemberMethods(me)
+       returns HSequenceOfMemberMet from MS;
+       
+    ExternMethods(me)
+       returns HSequenceOfExternMet from MS;
+       
+    CompleteTypes(me)
+    ---C++: return const &
+       returns MapOfHAsciiString    from WOKTools;
+    
+    IncompleteTypes(me)
+    ---C++: return const &
+       returns MapOfHAsciiString    from WOKTools;
+    
+    SemiCompleteTypes(me)
+    ---C++: return const &
+       returns MapOfHAsciiString    from WOKTools;
+    
+    ExtractorID(me)
+       returns MSActionType from WOKBuilder
+       is redefined;
+
+    ExtractionStatus(me:mutable; anaction : MSAction from WOKBuilder)
+       returns MSActionStatus from WOKBuilder
+       is redefined;
+
+fields
+
+    mycompl  : MapOfHAsciiString    from WOKTools;
+    myicompl : MapOfHAsciiString    from WOKTools;
+    myscompl : MapOfHAsciiString    from WOKTools;
+    mymmeth  : HSequenceOfMemberMet from MS;
+    myxmeth  : HSequenceOfExternMet from MS;
+    
+end MSJiniExtractor;
diff --git a/src/WOKBuilder/WOKBuilder_MSJiniExtractor.cxx b/src/WOKBuilder/WOKBuilder_MSJiniExtractor.cxx
new file mode 100755 (executable)
index 0000000..2ab6072
--- /dev/null
@@ -0,0 +1,198 @@
+// Copyright:  Matra-Datavision 1999
+// File:       WOKBuilder_MSJiniExtractor.cxx
+// Created:    Mon Mar 22 17:14:48 1999
+// Author:     Arnaud BOUZY
+//             <adn>
+
+#include <WOKTools_Messages.hxx>
+
+#include <MS_MetaSchema.hxx>
+#include <MS_Client.hxx>
+#include <MS_Interface.hxx>
+
+#include <WOKBuilder_MSActionID.hxx>
+#include <WOKBuilder_MSEntity.hxx>
+#include <WOKBuilder_MSchema.hxx>
+
+#include <WOKBuilder_MSJiniExtractor.ixx>
+
+
+
+extern "C" {
+
+typedef void (*WOKBuilder_MSJiniExtractorInitPtr)(const Handle(MS_MetaSchema)& ,
+                                                 const Handle(TCollection_HAsciiString)& ,
+                                                 const Handle(MS_HSequenceOfExternMet)& ,
+                                                 const Handle(MS_HSequenceOfMemberMet)& );
+}
+
+
+//=======================================================================
+//function : WOKBuilder_MSJiniExtractor
+//purpose  : 
+//=======================================================================
+WOKBuilder_MSJiniExtractor::WOKBuilder_MSJiniExtractor(const Handle(TCollection_HAsciiString)& ashared, 
+                                                          const Handle(TColStd_HSequenceOfHAsciiString)& searchlist)
+  : WOKBuilder_MSHeaderExtractor(ashared, searchlist)
+{
+}
+
+//=======================================================================
+//function : WOKBuilder_MSJiniExtractor
+//purpose  : 
+//=======================================================================
+WOKBuilder_MSJiniExtractor::WOKBuilder_MSJiniExtractor(const WOKUtils_Param& params)
+   : WOKBuilder_MSHeaderExtractor(new TCollection_HAsciiString("CPPJINI"),params)
+{
+}
+
+//=======================================================================
+//Author   : Jean Gautier (jga)
+//function : Init
+//purpose  : 
+//=======================================================================
+void WOKBuilder_MSJiniExtractor::Init(const Handle(TCollection_HAsciiString)& aname)
+{
+    
+  myxmeth = new MS_HSequenceOfExternMet;
+  mymmeth = new MS_HSequenceOfMemberMet;
+  mycompl.Clear();
+  myicompl.Clear();
+  myscompl.Clear();
+
+  Handle(MS_Client) aclt;
+  Handle(WOKBuilder_MSchema) ams = WOKBuilder_MSTool::GetMSchema();
+  
+  if(ams->MetaSchema()->IsClient(aname))
+    {
+      aclt = ams->MetaSchema()->GetClient(aname);
+      
+      aclt->ComputeTypes(myxmeth, mymmeth, mycompl, myicompl, myscompl);
+
+      if(myinitfunc != NULL) 
+       {
+         ((WOKBuilder_MSJiniExtractorInitPtr) myinitfunc) (ams->MetaSchema(),aname, myxmeth,mymmeth);
+       }
+    }
+
+}
+
+//=======================================================================
+//Author   : Jean Gautier (jga)
+//function : MemberMethods
+//purpose  : 
+//=======================================================================
+Handle(MS_HSequenceOfMemberMet) WOKBuilder_MSJiniExtractor::MemberMethods() const
+{
+  return mymmeth;
+}
+
+//=======================================================================
+//Author   : Jean Gautier (jga)
+//function : ExternMethods
+//purpose  : 
+//=======================================================================
+Handle(MS_HSequenceOfExternMet) WOKBuilder_MSJiniExtractor::ExternMethods() const
+{
+  return myxmeth;
+}
+
+
+//=======================================================================
+//Author   : Jean Gautier (jga)
+//function : CompleteTypes
+//purpose  : 
+//=======================================================================
+const WOKTools_MapOfHAsciiString&  WOKBuilder_MSJiniExtractor::CompleteTypes() const
+{
+  return mycompl;
+}
+
+//=======================================================================
+//Author   : Jean Gautier (jga)
+//function : CompleteTypes
+//purpose  : 
+//=======================================================================
+const WOKTools_MapOfHAsciiString&  WOKBuilder_MSJiniExtractor::IncompleteTypes() const
+{
+  return myicompl;
+}
+
+//=======================================================================
+//Author   : Jean Gautier (jga)
+//function : CompleteTypes
+//purpose  : 
+//=======================================================================
+const WOKTools_MapOfHAsciiString&  WOKBuilder_MSJiniExtractor::SemiCompleteTypes() const
+{
+  return myscompl;
+}
+
+//=======================================================================
+//Author   : Jean Gautier (jga)
+//function : ExtractorID
+//purpose  : 
+//=======================================================================
+WOKBuilder_MSActionType WOKBuilder_MSJiniExtractor::ExtractorID() const
+{
+  return WOKBuilder_ClientExtract;
+}
+
+//=======================================================================
+//function : ExtractionStatus
+//purpose  : 
+//=======================================================================
+WOKBuilder_MSActionStatus WOKBuilder_MSJiniExtractor::ExtractionStatus(const Handle(WOKBuilder_MSAction)& anaction)
+{
+  Handle(TCollection_HAsciiString) astr;
+  Handle(TColStd_HSequenceOfHAsciiString) aList;
+  Handle(MS_MetaSchema) ameta = MSchema()->MetaSchema();
+  Standard_Integer i;
+
+  WOKBuilder_MSActionID anid(anaction->Entity()->Name(), anaction->Type());
+
+  if(!MSchema()->IsActionDefined(anid)) return WOKBuilder_OutOfDate;
+
+  astr = anaction->Entity()->Name();
+
+  aList = GetTypeDepList(anaction->Entity()->Name());
+
+  for(i=1; i<=aList->Length(); i++)
+    {
+      astr = aList->Value(i);
+#ifdef WOK_VERBOSE
+      WOKUtils_TimeStat depdate = GetTypeMDate(astr);
+
+      VerboseMsg("WOK_EXTRACT") << "WOKBuilder_MSJiniExtractor::ExtractionStatus" 
+                                << "Comparing extraction   date : " 
+                               << (Standard_Integer) anaction->Date() << " of " << anaction->Entity()->Name() << endm;
+  
+      VerboseMsg("WOK_EXTRACT") << "WOKBuilder_MSJiniExtractor::ExtractionStatus" 
+                               << "with      modification date : " 
+                               << (Standard_Integer) depdate << " of " << astr << endm;
+#endif
+  
+      if( GetTypeMDate(astr) > anaction->Date())
+       {
+#ifdef WOK_VERBOSE
+         VerboseMsg("WOK_EXTRACT") << "WOKBuilder_MSJiniExtractor::ExtractionStatus" 
+                                   << anaction->Entity()->Name() << " is out of date compared to " << astr << endm;
+#endif
+         return WOKBuilder_OutOfDate;
+       }
+      else
+       {
+#ifdef WOK_VERBOSE
+         VerboseMsg("WOK_EXTRACT") << "WOKBuilder_MSJiniExtractor::ExtractionStatus" 
+                                   << anaction->Entity()->Name() << " is up to date compared to : " << astr << endm;
+#endif
+       }
+    }
+  
+#ifdef WOK_VERBOSE
+  VerboseMsg("WOK_EXTRACT") << "WOKBuilder_MSJiniExtractor::ExtractionStatus" 
+                            << anaction->Entity()->Name() << " is up to date" << endm;
+#endif  
+
+  return WOKBuilder_UpToDate;
+}