summaryrefslogtreecommitdiff
path: root/src/IFSelect/IFSelect_SignValidity.cxx
blob: cab427f8e281e0f4224a7398c378c337d83303fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <IFSelect_SignValidity.ixx>
#include <Interface_Check.hxx>


static Standard_CString nulsign = "";


//=======================================================================
//function : IFSelect_SignValidity
//purpose  : 
//=======================================================================

IFSelect_SignValidity::IFSelect_SignValidity() : IFSelect_Signature ("Validity")
{
  AddCase ("UNKNOWN");
  AddCase ("UNLOADED");
  AddCase ("Load-Error");
  AddCase ("Data-Error");
  AddCase ("Load-Warning");
  AddCase ("Data-Warning");
  AddCase ("OK");
}


//=======================================================================
//function : CVal
//purpose  : 
//=======================================================================

Standard_CString IFSelect_SignValidity::CVal(const Handle(Standard_Transient)& ent,
                                             const Handle(Interface_InterfaceModel)& model)
{
  if (ent.IsNull() || model.IsNull()) return nulsign;
  Standard_Integer num = model->Number(ent);
  Standard_Integer cas = 0;
  if (model->IsUnknownEntity(num))    return "UNKNOWN";
  if (model->IsRedefinedContent(num)) return "UNLOADED";

  const Handle(Interface_Check) ch1 = model->Check(num,Standard_True);
  const Handle(Interface_Check) ch2 = model->Check(num,Standard_False);
  if (ch1->NbFails() > 0) return "Load-Error";
  else if (ch1->NbWarnings() > 0) cas = 1;

  if (ch2->NbFails() > 0) return "Data-Error";
  else if (cas == 1) return "Load-Warning";
  else if (ch2->NbWarnings() > 0) return "Data-Warning";

  return "OK";
}


//=======================================================================
//function : Value
//purpose  : 
//=======================================================================

Standard_CString IFSelect_SignValidity::Value
  (const Handle(Standard_Transient)& ent,
   const Handle(Interface_InterfaceModel)& model) const
{
  return IFSelect_SignValidity::CVal(ent,model);
}