BornAgain  1.18.0
Simulate and fit neutron and x-ray scattering at grazing incidence
SampleLabelHandler Class Reference
Collaboration diagram for SampleLabelHandler:

Public Types

typedef LabelMap< const Crystal * > crystals_t
 
typedef LabelMap< const IFormFactor * > formfactors_t
 
typedef LabelMap< const IInterferenceFunction * > interferences_t
 
typedef LabelMap< const Layer * > layers_t
 
typedef LabelMap< const ILayout * > layouts_t
 
typedef LabelMap< const Material * > materials_t
 
typedef LabelMap< const Lattice * > lattices_t
 
typedef LabelMap< const MesoCrystal * > mesocrystals_t
 
typedef LabelMap< const MultiLayer * > multilayers_t
 
typedef LabelMap< const ParticleComposition * > particlecompositions_t
 
typedef LabelMap< const ParticleDistribution * > particledistributions_t
 
typedef LabelMap< const Particle * > particles_t
 
typedef LabelMap< const ParticleCoreShell * > particlescoreshell_t
 
typedef LabelMap< const IRotation * > rotations_t
 
typedef LabelMap< const LayerRoughness * > roughnesses_t
 

Public Member Functions

 SampleLabelHandler ()
 
crystals_tcrystalMap ()
 
formfactors_tformFactorMap ()
 
interferences_tinterferenceFunctionMap ()
 
layers_tlayerMap ()
 
layouts_tparticleLayoutMap ()
 
materials_tmaterialMap ()
 
lattices_tlatticeMap ()
 
mesocrystals_tmesocrystalMap ()
 
multilayers_tmultiLayerMap ()
 
particlecompositions_tparticleCompositionMap ()
 
particledistributions_tparticleDistributionsMap ()
 
particles_tparticleMap ()
 
particlescoreshell_tparticleCoreShellMap ()
 
rotations_trotationsMap ()
 
roughnesses_tlayerRoughnessMap ()
 
std::string labelCrystal (const Crystal *sample)
 
std::string labelFormFactor (const IFormFactor *sample)
 
std::string labelInterferenceFunction (const IInterferenceFunction *sample)
 
std::string labelLayer (const Layer *sample)
 
std::string labelLayout (const ILayout *sample)
 
std::string labelMaterial (const Material *sample)
 
std::string labelLattice (const Lattice *sample)
 
std::string labelMultiLayer (const MultiLayer *sample)
 
std::string labelParticle (const IAbstractParticle *sample)
 
std::string labelRotation (const IRotation *sample)
 
std::string labelRoughness (const LayerRoughness *sample)
 
void insertCrystal (const Crystal *sample)
 
void insertFormFactor (const IFormFactor *sample)
 
void insertInterferenceFunction (const IInterferenceFunction *sample)
 
void insertLayer (const Layer *sample)
 
void insertLayout (const ILayout *sample)
 
void insertMaterial (const Material *sample)
 
void insertLattice (const Lattice *sample)
 
void insertMesoCrystal (const MesoCrystal *sample)
 
void insertMultiLayer (const MultiLayer *sample)
 
void insertParticleComposition (const ParticleComposition *sample)
 
void insertParticleDistribution (const ParticleDistribution *sample)
 
void insertParticle (const Particle *sample)
 
void insertParticleCoreShell (const ParticleCoreShell *sample)
 
void insertRotation (const IRotation *sample)
 
void insertRoughness (const LayerRoughness *sample)
 

Private Attributes

crystals_t m_CrystalLabel
 
formfactors_t m_FormFactorLabel
 
interferences_t m_InterferenceFunctionLabel
 
layers_t m_LayerLabel
 
layouts_t m_ILayoutLabel
 
materials_t m_MaterialLabel
 
lattices_t m_LatticeLabel
 
mesocrystals_t m_MesoCrystalLabel
 
multilayers_t m_MultiLayerLabel
 
particlecompositions_t m_ParticleCompositionLabel
 
particledistributions_t m_ParticleDistributionLabel
 
particles_t m_ParticleLabel
 
particlescoreshell_t m_ParticleCoreShellLabel
 
rotations_t m_RotationsLabel
 
roughnesses_t m_LayerRoughnessLabel
 

Detailed Description

The handler which construct labels for sample variables during python script generation.

Definition at line 45 of file SampleLabelHandler.h.

Member Typedef Documentation

◆ crystals_t

Definition at line 48 of file SampleLabelHandler.h.

◆ formfactors_t

Definition at line 49 of file SampleLabelHandler.h.

◆ interferences_t

◆ layers_t

Definition at line 51 of file SampleLabelHandler.h.

◆ layouts_t

Definition at line 52 of file SampleLabelHandler.h.

◆ materials_t

Definition at line 53 of file SampleLabelHandler.h.

◆ lattices_t

Definition at line 54 of file SampleLabelHandler.h.

◆ mesocrystals_t

Definition at line 55 of file SampleLabelHandler.h.

◆ multilayers_t

Definition at line 56 of file SampleLabelHandler.h.

◆ particlecompositions_t

◆ particledistributions_t

◆ particles_t

Definition at line 59 of file SampleLabelHandler.h.

◆ particlescoreshell_t

◆ rotations_t

Definition at line 61 of file SampleLabelHandler.h.

◆ roughnesses_t

Constructor & Destructor Documentation

◆ SampleLabelHandler()

SampleLabelHandler::SampleLabelHandler ( )
inline

Definition at line 64 of file SampleLabelHandler.h.

64 {}

Member Function Documentation

◆ crystalMap()

crystals_t* SampleLabelHandler::crystalMap ( )
inline

Definition at line 65 of file SampleLabelHandler.h.

65 { return &m_CrystalLabel; }

References m_CrystalLabel.

◆ formFactorMap()

formfactors_t* SampleLabelHandler::formFactorMap ( )
inline

Definition at line 66 of file SampleLabelHandler.h.

66 { return &m_FormFactorLabel; }
formfactors_t m_FormFactorLabel

References m_FormFactorLabel.

◆ interferenceFunctionMap()

interferences_t* SampleLabelHandler::interferenceFunctionMap ( )
inline

Definition at line 67 of file SampleLabelHandler.h.

67 { return &m_InterferenceFunctionLabel; }
interferences_t m_InterferenceFunctionLabel

References m_InterferenceFunctionLabel.

◆ layerMap()

layers_t* SampleLabelHandler::layerMap ( )
inline

Definition at line 68 of file SampleLabelHandler.h.

68 { return &m_LayerLabel; }

References m_LayerLabel.

◆ particleLayoutMap()

layouts_t* SampleLabelHandler::particleLayoutMap ( )
inline

Definition at line 69 of file SampleLabelHandler.h.

69 { return &m_ILayoutLabel; }

References m_ILayoutLabel.

◆ materialMap()

materials_t* SampleLabelHandler::materialMap ( )
inline

Definition at line 70 of file SampleLabelHandler.h.

70 { return &m_MaterialLabel; }

References m_MaterialLabel.

◆ latticeMap()

lattices_t* SampleLabelHandler::latticeMap ( )
inline

Definition at line 71 of file SampleLabelHandler.h.

71 { return &m_LatticeLabel; }

References m_LatticeLabel.

◆ mesocrystalMap()

mesocrystals_t* SampleLabelHandler::mesocrystalMap ( )
inline

Definition at line 72 of file SampleLabelHandler.h.

72 { return &m_MesoCrystalLabel; }
mesocrystals_t m_MesoCrystalLabel

References m_MesoCrystalLabel.

◆ multiLayerMap()

multilayers_t* SampleLabelHandler::multiLayerMap ( )
inline

Definition at line 73 of file SampleLabelHandler.h.

73 { return &m_MultiLayerLabel; }
multilayers_t m_MultiLayerLabel

References m_MultiLayerLabel.

◆ particleCompositionMap()

particlecompositions_t* SampleLabelHandler::particleCompositionMap ( )
inline

Definition at line 74 of file SampleLabelHandler.h.

74 { return &m_ParticleCompositionLabel; }
particlecompositions_t m_ParticleCompositionLabel

References m_ParticleCompositionLabel.

◆ particleDistributionsMap()

particledistributions_t* SampleLabelHandler::particleDistributionsMap ( )
inline

Definition at line 75 of file SampleLabelHandler.h.

75 { return &m_ParticleDistributionLabel; }
particledistributions_t m_ParticleDistributionLabel

References m_ParticleDistributionLabel.

◆ particleMap()

particles_t* SampleLabelHandler::particleMap ( )
inline

Definition at line 76 of file SampleLabelHandler.h.

76 { return &m_ParticleLabel; }

References m_ParticleLabel.

◆ particleCoreShellMap()

particlescoreshell_t* SampleLabelHandler::particleCoreShellMap ( )
inline

Definition at line 77 of file SampleLabelHandler.h.

77 { return &m_ParticleCoreShellLabel; }
particlescoreshell_t m_ParticleCoreShellLabel

References m_ParticleCoreShellLabel.

◆ rotationsMap()

rotations_t* SampleLabelHandler::rotationsMap ( )
inline

Definition at line 78 of file SampleLabelHandler.h.

78 { return &m_RotationsLabel; }
rotations_t m_RotationsLabel

References m_RotationsLabel.

◆ layerRoughnessMap()

roughnesses_t* SampleLabelHandler::layerRoughnessMap ( )
inline

Definition at line 79 of file SampleLabelHandler.h.

79 { return &m_LayerRoughnessLabel; }
roughnesses_t m_LayerRoughnessLabel

References m_LayerRoughnessLabel.

◆ labelCrystal()

std::string SampleLabelHandler::labelCrystal ( const Crystal sample)

Definition at line 26 of file SampleLabelHandler.cpp.

27 {
28  return m_CrystalLabel[cr];
29 }

References m_CrystalLabel.

◆ labelFormFactor()

std::string SampleLabelHandler::labelFormFactor ( const IFormFactor sample)

Definition at line 31 of file SampleLabelHandler.cpp.

32 {
33  return m_FormFactorLabel[ff];
34 }

References m_FormFactorLabel.

◆ labelInterferenceFunction()

std::string SampleLabelHandler::labelInterferenceFunction ( const IInterferenceFunction sample)

Definition at line 36 of file SampleLabelHandler.cpp.

37 {
38  return m_InterferenceFunctionLabel[iff];
39 }

References m_InterferenceFunctionLabel.

◆ labelLayer()

std::string SampleLabelHandler::labelLayer ( const Layer sample)

Definition at line 41 of file SampleLabelHandler.cpp.

42 {
43  return m_LayerLabel[layer];
44 }

References m_LayerLabel.

◆ labelLayout()

std::string SampleLabelHandler::labelLayout ( const ILayout sample)

Definition at line 46 of file SampleLabelHandler.cpp.

47 {
48  return m_ILayoutLabel[layout];
49 }

References m_ILayoutLabel.

◆ labelMaterial()

std::string SampleLabelHandler::labelMaterial ( const Material sample)

Definition at line 51 of file SampleLabelHandler.cpp.

52 {
53  return m_MaterialLabel[mat];
54 }

References m_MaterialLabel.

◆ labelLattice()

std::string SampleLabelHandler::labelLattice ( const Lattice sample)

Definition at line 56 of file SampleLabelHandler.cpp.

57 {
58  return m_LatticeLabel[lat];
59 }

References m_LatticeLabel.

◆ labelMultiLayer()

std::string SampleLabelHandler::labelMultiLayer ( const MultiLayer sample)

Definition at line 61 of file SampleLabelHandler.cpp.

62 {
63  return m_MultiLayerLabel[ml];
64 }

References m_MultiLayerLabel.

◆ labelParticle()

std::string SampleLabelHandler::labelParticle ( const IAbstractParticle sample)

Definition at line 66 of file SampleLabelHandler.cpp.

67 {
68  if (const auto core_shell_particle = dynamic_cast<const ParticleCoreShell*>(absparticle))
69  return m_ParticleCoreShellLabel[core_shell_particle];
70  if (const auto particle = dynamic_cast<const Particle*>(absparticle))
71  return m_ParticleLabel[particle];
72  if (const auto particle = dynamic_cast<const ParticleDistribution*>(absparticle))
73  return m_ParticleDistributionLabel[particle];
74  if (const auto lattice_basis = dynamic_cast<const ParticleComposition*>(absparticle))
75  return m_ParticleCompositionLabel[lattice_basis];
76  if (const auto mesocrystal = dynamic_cast<const MesoCrystal*>(absparticle))
77  return m_MesoCrystalLabel[mesocrystal];
79  "SampleLabelHandler::getLabel: called for unknown IParticle type");
80 }
A particle with an internal structure of smaller particles.
Definition: MesoCrystal.h:26
A composition of particles at fixed positions.
A particle with a core/shell geometry.
A particle type that is a parametric distribution of IParticle's.
A particle with a form factor and refractive index.
Definition: Particle.h:26

References m_MesoCrystalLabel, m_ParticleCompositionLabel, m_ParticleCoreShellLabel, m_ParticleDistributionLabel, and m_ParticleLabel.

◆ labelRotation()

std::string SampleLabelHandler::labelRotation ( const IRotation sample)

Definition at line 82 of file SampleLabelHandler.cpp.

83 {
84  return m_RotationsLabel[rot];
85 }

References m_RotationsLabel.

◆ labelRoughness()

std::string SampleLabelHandler::labelRoughness ( const LayerRoughness sample)

Definition at line 87 of file SampleLabelHandler.cpp.

88 {
89  return m_LayerRoughnessLabel[roughness];
90 }

References m_LayerRoughnessLabel.

◆ insertCrystal()

void SampleLabelHandler::insertCrystal ( const Crystal sample)

Definition at line 92 of file SampleLabelHandler.cpp.

93 {
94  std::string label = "crystal_" + std::to_string(m_CrystalLabel.size() + 1);
95  m_CrystalLabel.insert(sample, label);
96 }
size_t size() const
Definition: OrderedMap.h:51
void insert(const Key &key, const Object &object)
Definition: OrderedMap.h:59

References OrderedMap< Key, Object >::insert(), m_CrystalLabel, and OrderedMap< Key, Object >::size().

Here is the call graph for this function:

◆ insertFormFactor()

void SampleLabelHandler::insertFormFactor ( const IFormFactor sample)

Definition at line 98 of file SampleLabelHandler.cpp.

99 {
100  std::string label = "formFactor_" + std::to_string(m_FormFactorLabel.size() + 1);
101  m_FormFactorLabel.insert(sample, label);
102 }

References OrderedMap< Key, Object >::insert(), m_FormFactorLabel, and OrderedMap< Key, Object >::size().

Here is the call graph for this function:

◆ insertInterferenceFunction()

void SampleLabelHandler::insertInterferenceFunction ( const IInterferenceFunction sample)

Definition at line 104 of file SampleLabelHandler.cpp.

105 {
106  std::string label = "interference_" + std::to_string(m_InterferenceFunctionLabel.size() + 1);
107  m_InterferenceFunctionLabel.insert(sample, label);
108 }

References OrderedMap< Key, Object >::insert(), m_InterferenceFunctionLabel, and OrderedMap< Key, Object >::size().

Here is the call graph for this function:

◆ insertLayer()

void SampleLabelHandler::insertLayer ( const Layer sample)

Definition at line 110 of file SampleLabelHandler.cpp.

111 {
112  std::string label = "layer_" + std::to_string(m_LayerLabel.size() + 1);
113  m_LayerLabel.insert(sample, label);
114 }

References OrderedMap< Key, Object >::insert(), m_LayerLabel, and OrderedMap< Key, Object >::size().

Here is the call graph for this function:

◆ insertLayout()

void SampleLabelHandler::insertLayout ( const ILayout sample)

Definition at line 116 of file SampleLabelHandler.cpp.

117 {
118  std::string label = "layout_" + std::to_string(m_ILayoutLabel.size() + 1);
119  m_ILayoutLabel.insert(sample, label);
120 }

References OrderedMap< Key, Object >::insert(), m_ILayoutLabel, and OrderedMap< Key, Object >::size().

Here is the call graph for this function:

◆ insertMaterial()

void SampleLabelHandler::insertMaterial ( const Material sample)

Definition at line 122 of file SampleLabelHandler.cpp.

123 {
124  for (auto it = m_MaterialLabel.begin(); it != m_MaterialLabel.end(); ++it) {
125  if (*(it->first) == *mat) {
126  m_MaterialLabel.insert(mat, it->second);
127  return;
128  }
129  }
130  // material not found => create new label
131  std::set<std::string> unique_labels;
132  for (auto it = m_MaterialLabel.begin(); it != m_MaterialLabel.end(); ++it)
133  unique_labels.insert(it->second);
134 
135  std::string label = "material_" + std::to_string(unique_labels.size() + 1);
136  m_MaterialLabel.insert(mat, label);
137 }
const_iterator end() const
Definition: OrderedMap.h:47
const_iterator begin() const
Definition: OrderedMap.h:46

References OrderedMap< Key, Object >::begin(), OrderedMap< Key, Object >::end(), OrderedMap< Key, Object >::insert(), and m_MaterialLabel.

Here is the call graph for this function:

◆ insertLattice()

void SampleLabelHandler::insertLattice ( const Lattice sample)

Definition at line 139 of file SampleLabelHandler.cpp.

140 {
141  std::string label = "lattice_" + std::to_string(m_LatticeLabel.size() + 1);
142  m_LatticeLabel.insert(sample, label);
143 }

References OrderedMap< Key, Object >::insert(), m_LatticeLabel, and OrderedMap< Key, Object >::size().

Here is the call graph for this function:

◆ insertMesoCrystal()

void SampleLabelHandler::insertMesoCrystal ( const MesoCrystal sample)

Definition at line 145 of file SampleLabelHandler.cpp.

146 {
147  std::string label = "mesocrystal_" + std::to_string(m_MesoCrystalLabel.size() + 1);
148  m_MesoCrystalLabel.insert(sample, label);
149 }

References OrderedMap< Key, Object >::insert(), m_MesoCrystalLabel, and OrderedMap< Key, Object >::size().

Here is the call graph for this function:

◆ insertMultiLayer()

void SampleLabelHandler::insertMultiLayer ( const MultiLayer sample)

Definition at line 151 of file SampleLabelHandler.cpp.

152 {
153  std::string label = "multiLayer_" + std::to_string(m_MultiLayerLabel.size() + 1);
154  m_MultiLayerLabel.insert(sample, label);
155 }

References OrderedMap< Key, Object >::insert(), m_MultiLayerLabel, and OrderedMap< Key, Object >::size().

Here is the call graph for this function:

◆ insertParticleComposition()

void SampleLabelHandler::insertParticleComposition ( const ParticleComposition sample)

Definition at line 157 of file SampleLabelHandler.cpp.

158 {
159  std::string label =
160  "particleComposition_" + std::to_string(m_ParticleCompositionLabel.size() + 1);
161  m_ParticleCompositionLabel.insert(sample, label);
162 }

References OrderedMap< Key, Object >::insert(), m_ParticleCompositionLabel, and OrderedMap< Key, Object >::size().

Here is the call graph for this function:

◆ insertParticleDistribution()

void SampleLabelHandler::insertParticleDistribution ( const ParticleDistribution sample)

Definition at line 164 of file SampleLabelHandler.cpp.

165 {
166  std::string label =
167  "particleDistribution_" + std::to_string(m_ParticleDistributionLabel.size() + 1);
168  m_ParticleDistributionLabel.insert(sample, label);
169 }

References OrderedMap< Key, Object >::insert(), m_ParticleDistributionLabel, and OrderedMap< Key, Object >::size().

Here is the call graph for this function:

◆ insertParticle()

void SampleLabelHandler::insertParticle ( const Particle sample)

Definition at line 171 of file SampleLabelHandler.cpp.

172 {
173  std::string label = "particle_" + std::to_string(m_ParticleLabel.size() + 1);
174  m_ParticleLabel.insert(sample, label);
175 }

References OrderedMap< Key, Object >::insert(), m_ParticleLabel, and OrderedMap< Key, Object >::size().

Here is the call graph for this function:

◆ insertParticleCoreShell()

void SampleLabelHandler::insertParticleCoreShell ( const ParticleCoreShell sample)

Definition at line 177 of file SampleLabelHandler.cpp.

178 {
179  std::string label = "particleCoreShell_" + std::to_string(m_ParticleCoreShellLabel.size() + 1);
180  m_ParticleCoreShellLabel.insert(sample, label);
181 }

References OrderedMap< Key, Object >::insert(), m_ParticleCoreShellLabel, and OrderedMap< Key, Object >::size().

Here is the call graph for this function:

◆ insertRotation()

void SampleLabelHandler::insertRotation ( const IRotation sample)

Definition at line 183 of file SampleLabelHandler.cpp.

184 {
185  std::string label = "rotation_" + std::to_string(m_RotationsLabel.size() + 1);
186  m_RotationsLabel.insert(sample, label);
187 }

References OrderedMap< Key, Object >::insert(), m_RotationsLabel, and OrderedMap< Key, Object >::size().

Here is the call graph for this function:

◆ insertRoughness()

void SampleLabelHandler::insertRoughness ( const LayerRoughness sample)

Definition at line 189 of file SampleLabelHandler.cpp.

190 {
191  if (sample->getSigma() != 0 && sample->getHurstParameter() != 0
192  && sample->getLatteralCorrLength() != 0) {
193  std::string label = "layerRoughness_" + std::to_string(m_LayerRoughnessLabel.size() + 1);
194  m_LayerRoughnessLabel.insert(sample, label);
195  }
196 }
double getSigma() const
Returns rms of roughness.
double getLatteralCorrLength() const
Returns lateral correlation length.
double getHurstParameter() const
Returns hurst parameter.

References LayerRoughness::getHurstParameter(), LayerRoughness::getLatteralCorrLength(), LayerRoughness::getSigma(), OrderedMap< Key, Object >::insert(), m_LayerRoughnessLabel, and OrderedMap< Key, Object >::size().

Here is the call graph for this function:

Member Data Documentation

◆ m_CrystalLabel

crystals_t SampleLabelHandler::m_CrystalLabel
private

Definition at line 110 of file SampleLabelHandler.h.

Referenced by crystalMap(), insertCrystal(), and labelCrystal().

◆ m_FormFactorLabel

formfactors_t SampleLabelHandler::m_FormFactorLabel
private

Definition at line 111 of file SampleLabelHandler.h.

Referenced by formFactorMap(), insertFormFactor(), and labelFormFactor().

◆ m_InterferenceFunctionLabel

interferences_t SampleLabelHandler::m_InterferenceFunctionLabel
private

◆ m_LayerLabel

layers_t SampleLabelHandler::m_LayerLabel
private

Definition at line 113 of file SampleLabelHandler.h.

Referenced by insertLayer(), labelLayer(), and layerMap().

◆ m_ILayoutLabel

layouts_t SampleLabelHandler::m_ILayoutLabel
private

Definition at line 114 of file SampleLabelHandler.h.

Referenced by insertLayout(), labelLayout(), and particleLayoutMap().

◆ m_MaterialLabel

materials_t SampleLabelHandler::m_MaterialLabel
private

Definition at line 115 of file SampleLabelHandler.h.

Referenced by insertMaterial(), labelMaterial(), and materialMap().

◆ m_LatticeLabel

lattices_t SampleLabelHandler::m_LatticeLabel
private

Definition at line 116 of file SampleLabelHandler.h.

Referenced by insertLattice(), labelLattice(), and latticeMap().

◆ m_MesoCrystalLabel

mesocrystals_t SampleLabelHandler::m_MesoCrystalLabel
private

Definition at line 117 of file SampleLabelHandler.h.

Referenced by insertMesoCrystal(), labelParticle(), and mesocrystalMap().

◆ m_MultiLayerLabel

multilayers_t SampleLabelHandler::m_MultiLayerLabel
private

Definition at line 118 of file SampleLabelHandler.h.

Referenced by insertMultiLayer(), labelMultiLayer(), and multiLayerMap().

◆ m_ParticleCompositionLabel

particlecompositions_t SampleLabelHandler::m_ParticleCompositionLabel
private

◆ m_ParticleDistributionLabel

particledistributions_t SampleLabelHandler::m_ParticleDistributionLabel
private

◆ m_ParticleLabel

particles_t SampleLabelHandler::m_ParticleLabel
private

Definition at line 121 of file SampleLabelHandler.h.

Referenced by insertParticle(), labelParticle(), and particleMap().

◆ m_ParticleCoreShellLabel

particlescoreshell_t SampleLabelHandler::m_ParticleCoreShellLabel
private

◆ m_RotationsLabel

rotations_t SampleLabelHandler::m_RotationsLabel
private

Definition at line 123 of file SampleLabelHandler.h.

Referenced by insertRotation(), labelRotation(), and rotationsMap().

◆ m_LayerRoughnessLabel

roughnesses_t SampleLabelHandler::m_LayerRoughnessLabel
private

Definition at line 124 of file SampleLabelHandler.h.

Referenced by insertRoughness(), labelRoughness(), and layerRoughnessMap().


The documentation for this class was generated from the following files: