Salome HOME
NRI : First integration.
[modules/smesh.git] / src / SMESH / SMESH_HypothesisFactory.hxx
diff --git a/src/SMESH/SMESH_HypothesisFactory.hxx b/src/SMESH/SMESH_HypothesisFactory.hxx
new file mode 100644 (file)
index 0000000..7ade681
--- /dev/null
@@ -0,0 +1,50 @@
+//=============================================================================
+// File      : SMESH_HypothesisFactory.hxx
+// Created   : mer mai 15 13:45:47 CEST 2002
+// Author    : Paul RASCLE, EDF
+// Project   : SALOME
+// Copyright : EDF 2002
+// $Header$
+//=============================================================================
+
+#ifndef _SMESH_HYPOTHESISFACTORY_HXX_
+#define _SMESH_HYPOTHESISFACTORY_HXX_
+
+#include "SMESH_Hypothesis.hxx"
+
+#include "Utils_SALOME_Exception.hxx"
+
+#include <map>
+
+class SMESH_Gen;
+
+class GenericHypothesisCreator
+{
+public:
+//   virtual SMESH_Hypothesis* GetInstance(int hypId) = 0;
+  virtual SMESH_Hypothesis* Create(int hypId, int studyId, SMESH_Gen* gen) = 0;
+};
+
+class SMESH_HypothesisFactory
+{
+public:
+  SMESH_HypothesisFactory();
+  virtual ~SMESH_HypothesisFactory();
+
+  void SetGen(SMESH_Gen* gen);
+
+  SMESH_Hypothesis* Create(const char* anHypName, int studyId)
+    throw (SALOME_Exception);
+
+  GenericHypothesisCreator* GetCreator(const char* anHypName)
+    throw (SALOME_Exception);
+
+  int GetANewId();
+
+private:
+  map<string, GenericHypothesisCreator*> _creatorMap;
+  int _hypId;
+  SMESH_Gen* _gen;
+};
+
+#endif