Skip to content

Commit 910a507

Browse files
Clarify stratigraphic column and rank interpretation docs
Improved and expanded documentation for StratigraphicColumn and StratigraphicColumnRankInterpretation classes across RESQML 2.0.1 and 2.2, clarifying ordering criteria, rank detail, and push-back requirements. Updated parameter names for clarity and consistency, and enhanced SWIG interface comments to match. No functional code changes were made.
1 parent 8248012 commit 910a507

11 files changed

Lines changed: 240 additions & 37 deletions

src/common/DataObjectRepository.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1702,8 +1702,7 @@ namespace COMMON_NS
17021702
DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicColumn* createStratigraphicColumn(const std::string & guid, const std::string & title);
17031703

17041704
/**
1705-
* @brief Creates a stratigraphic column rank interpretation ordered by age into this
1706-
* repository.
1705+
* @brief Creates a stratigraphic column rank interpretation ordered by ascending age into this repository.
17071706
*
17081707
* @exception std::invalid_argument If the default RESQML version is unrecognized.
17091708
* @exception std::invalid_argument If <tt>orgFeat == nullptr</tt> or if in a RESQML v2.0
@@ -1721,8 +1720,7 @@ namespace COMMON_NS
17211720
DLL_IMPORT_OR_EXPORT RESQML2_NS::StratigraphicColumnRankInterpretation* createStratigraphicColumnRankInterpretationInAge(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title, uint64_t rank);
17221721

17231722
/**
1724-
* @brief Creates a stratigraphic column rank interpretation ordered by apparent depth into
1725-
* this repository
1723+
* @brief Creates a stratigraphic column rank interpretation ordered by ascending apparent depth into this repository
17261724
*
17271725
* @exception std::invalid_argument If the default RESQML version is unrecognized.
17281726
* @exception std::invalid_argument If <tt>orgFeat == nullptr</tt> or if in a RESQML v2.0

src/resqml2/StratigraphicColumn.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,9 @@ namespace RESQML2_NS
2525
class StratigraphicColumnRankInterpretation;
2626

2727
/**
28-
* @brief A global interpretation of the stratigraphy, which can be made up of several ranks of
29-
* stratigraphic unit interpretations.
30-
*
31-
* BUSINESS RULE: All stratigraphic column rank interpretations that make up a
32-
* stratigraphic column must be ordered by age.
33-
*/
28+
* @brief A global interpretation of the stratigraphy, which can be made up of several ranks of
29+
* stratigraphic unit interpretations.
30+
*/
3431
class StratigraphicColumn : public COMMON_NS::AbstractObject
3532
{
3633
public:
@@ -39,6 +36,8 @@ namespace RESQML2_NS
3936
virtual ~StratigraphicColumn() = default;
4037

4138
/**
39+
* Stratigraphic column ranks must be pushed back from the coarsest rank to the most detailed one.
40+
*
4241
* Pushes a back a stratigraphic column rank interpretation into this stratigraphic column.
4342
*
4443
* @exception std::invalid_argument If <tt>stratiColumnRank == nullptr</tt>

src/resqml2/StratigraphicColumnRankInterpretation.h

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ namespace RESQML2_NS
3131
{
3232
class StratigraphicUnitInterpretation;
3333

34-
/**
35-
* @brief A stratigraphic column rank interpretation is a global hierarchy containing an
36-
* ordered list of stratigraphic unit interpretations.
37-
*/
34+
/**
35+
* @brief A stratigraphic column rank interpretation contains an ordered list of stratigraphic unit interpretations.
36+
* It corresponds to a level of detail of the stratigraphic column. First indexed ranks are coarser than last indexed ranks which are more detailed.
37+
*/
3838
class StratigraphicColumnRankInterpretation : public AbstractStratigraphicOrganizationInterpretation
3939
{
4040
public:
@@ -43,9 +43,13 @@ namespace RESQML2_NS
4343
virtual ~StratigraphicColumnRankInterpretation() = default;
4444

4545
/**
46-
* Adds a stratigraphic unit interpretation to this stratigraphic column rank interpretation.
47-
* Does add the inverse relationship i.e. from the included stratigraphic unit interpretation to
48-
* this stratigraphic column rank interpretation.
46+
* Pushes back a stratigraphic unit interpretation to this stratigraphic column rank interpretation.
47+
* The stratigraphic unit interpretation must be pushed back according to the ordering criteria of the stratigraphic column rank interpretation:
48+
* - If the (ascending) ordering criteria is age then units must be pushed back from the youngest to oldest.
49+
* - If the (ascending) ordering criteria is apparent depth then units must be pushed back from the shallowest one to the deepest one.
50+
* - If the (ascending) ordering criteria is measured depth then units must be pushed back
51+
* from the first drilled trajectory stations to the latest drilled trajectory stations of the wellbore.
52+
* Remark : RESQML2.0.1 does not explicitely states that the ordering criteria is ascending but RESQML 2.2 does.
4953
*
5054
* @exception std::invalid_argument If @p stratiUnitInterpretation is @c nullptr.
5155
*

src/resqml2_0_1/StratigraphicColumn.h

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ under the License.
2222

2323
namespace RESQML2_0_1_NS
2424
{
25-
/** This class is a container for other organizations that are consistent to each others. */
25+
/**
26+
* @brief A global interpretation of the stratigraphy, which can be made up of several ranks of
27+
* stratigraphic unit interpretations.
28+
*/
2629
class StratigraphicColumn final : public RESQML2_NS::StratigraphicColumn
2730
{
2831
public:
@@ -56,6 +59,15 @@ namespace RESQML2_0_1_NS
5659
/** Destructor does nothing since the memory is managed by the gsoap context. */
5760
~StratigraphicColumn() = default;
5861

62+
/**
63+
* Stratigraphic column ranks must be pushed back from the coarsest rank to the most detailed one.
64+
*
65+
* Pushes a back a stratigraphic column rank interpretation into this stratigraphic column.
66+
*
67+
* @exception std::invalid_argument If <tt>stratiColumnRank == nullptr</tt>
68+
*
69+
* @param [in] stratiColumnRank A stratigraphic column rank interpretation.
70+
*/
5971
DLL_IMPORT_OR_EXPORT void pushBackStratiColumnRank(RESQML2_NS::StratigraphicColumnRankInterpretation * stratiColumnRank) final;
6072

6173
DLL_IMPORT_OR_EXPORT unsigned int getStratigraphicColumnRankInterpretationCount() const final;

src/resqml2_0_1/StratigraphicColumnRankInterpretation.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ using namespace gsoap_resqml2_0_1;
3030

3131
const char* StratigraphicColumnRankInterpretation::XML_NS = "resqml20";
3232

33-
StratigraphicColumnRankInterpretation::StratigraphicColumnRankInterpretation(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title, uint64_t rank, gsoap_resqml2_0_1::resqml20__OrderingCriteria orderingCriteria)
33+
StratigraphicColumnRankInterpretation::StratigraphicColumnRankInterpretation(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title,
34+
uint64_t rank, gsoap_resqml2_0_1::resqml20__OrderingCriteria ascendingOrderingCriteria)
3435
{
3536
if (orgFeat == nullptr) {
3637
throw invalid_argument("The interpreted organization feature cannot be null.");
@@ -43,10 +44,10 @@ StratigraphicColumnRankInterpretation::StratigraphicColumnRankInterpretation(RES
4344
gsoapProxy2_0_1 = soap_new_resqml20__obj_USCOREStratigraphicColumnRankInterpretation(orgFeat->getGsoapContext());
4445
static_cast<_resqml20__StratigraphicColumnRankInterpretation*>(gsoapProxy2_0_1)->Domain = resqml20__Domain::mixed;
4546
static_cast<_resqml20__StratigraphicColumnRankInterpretation*>(gsoapProxy2_0_1)->Index = rank;
46-
static_cast<_resqml20__StratigraphicColumnRankInterpretation*>(gsoapProxy2_0_1)->OrderingCriteria = orderingCriteria;
47+
static_cast<_resqml20__StratigraphicColumnRankInterpretation*>(gsoapProxy2_0_1)->OrderingCriteria = ascendingOrderingCriteria;
4748

4849
initMandatoryMetadata();
49-
setMetadata(guid, title, std::string(), -1, std::string(), std::string(), -1, std::string());
50+
setMetadata(guid, title, "", -1, "", "", -1, "");
5051

5152
orgFeat->getRepository()->addDataObject(unique_ptr<COMMON_NS::AbstractObject>{this});
5253
setInterpretedFeature(orgFeat);

src/resqml2_0_1/StratigraphicColumnRankInterpretation.h

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ under the License.
2323
namespace RESQML2_0_1_NS
2424
{
2525
/**
26-
* This class is a container for other organizations that are consistent to each others.
26+
* A rank of a stratigraphic column corresponds to a level of detail of the stratigraphic column.
27+
* First indexed ranks are coarser than last indexed ranks.
2728
*/
2829
class StratigraphicColumnRankInterpretation final : public RESQML2_NS::StratigraphicColumnRankInterpretation
2930
{
@@ -49,7 +50,8 @@ namespace RESQML2_0_1_NS
4950
* column.
5051
* @param orderingCriteria How the included horizons are ordered.
5152
*/
52-
StratigraphicColumnRankInterpretation(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title, uint64_t rank, gsoap_resqml2_0_1::resqml20__OrderingCriteria orderingCriteria);
53+
StratigraphicColumnRankInterpretation(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title,
54+
uint64_t rank, gsoap_resqml2_0_1::resqml20__OrderingCriteria ascendingOrderingCriteria);
5355

5456
/**
5557
* Creates an instance of this class by wrapping a gsoap instance.
@@ -60,6 +62,19 @@ namespace RESQML2_0_1_NS
6062
/** Destructor does nothing since the memory is managed by the gsoap context. */
6163
~StratigraphicColumnRankInterpretation() = default;
6264

65+
/**
66+
* Pushes back a stratigraphic unit interpretation to this stratigraphic column rank interpretation.
67+
* The stratigraphic unit interpretation must be pushed back according to the ordering criteria of the stratigraphic column rank interpretation:
68+
* - If the (ascending) ordering criteria is age then units must be pushed back from the youngest to oldest.
69+
* - If the (ascending) ordering criteria is apparent depth then units must be pushed back from the shallowest one to the deepest one.
70+
* - If the (ascending) ordering criteria is measured depth then units must be pushed back
71+
* from the first drilled trajectory stations to the latest drilled trajectory stations of the wellbore.
72+
* Remark : RESQML2.0.1 does not explicitely states that the ordering criteria is ascending but RESQML 2.2 does.
73+
*
74+
* @exception std::invalid_argument If @p stratiUnitInterpretation is @c nullptr.
75+
*
76+
* @param [in] stratiUnitInterpretation The stratigraphic unit interpretation to add.
77+
*/
6378
DLL_IMPORT_OR_EXPORT void pushBackStratiUnitInterpretation(RESQML2_NS::StratigraphicUnitInterpretation * stratiUnitInterpretation) final;
6479

6580
DLL_IMPORT_OR_EXPORT void setHorizonOfLastContact(RESQML2_NS::HorizonInterpretation * partOf) final;

src/resqml2_2/StratigraphicColumn.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ under the License.
2222

2323
namespace RESQML2_2_NS
2424
{
25-
/** This class is a container for other organizations that are consistent to each others. */
25+
/**
26+
* @brief A global interpretation of the stratigraphy, which can be made up of several ranks of
27+
* stratigraphic unit interpretations.
28+
*/
2629
class StratigraphicColumn final : public RESQML2_NS::StratigraphicColumn
2730
{
2831
public:
@@ -56,6 +59,9 @@ namespace RESQML2_2_NS
5659
/** Destructor does nothing since the memory is managed by the gsoap context. */
5760
~StratigraphicColumn() = default;
5861

62+
/**
63+
* Stratigraphic column ranks must be pushed back from the coarsest rank to the most detailed one.
64+
*/
5965
DLL_IMPORT_OR_EXPORT void pushBackStratiColumnRank(RESQML2_NS::StratigraphicColumnRankInterpretation * stratiColumnRank) final;
6066

6167
DLL_IMPORT_OR_EXPORT unsigned int getStratigraphicColumnRankInterpretationCount() const final;

src/resqml2_2/StratigraphicColumnRankInterpretation.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,19 @@ using namespace std;
2626
using namespace RESQML2_2_NS;
2727
using namespace gsoap_eml2_3;
2828

29-
StratigraphicColumnRankInterpretation::StratigraphicColumnRankInterpretation(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title, uint64_t rank, gsoap_resqml2_0_1::resqml20__OrderingCriteria orderingCriteria)
29+
StratigraphicColumnRankInterpretation::StratigraphicColumnRankInterpretation(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title,
30+
uint64_t rank, gsoap_resqml2_0_1::resqml20__OrderingCriteria ascendingOrderingCriteria)
3031
{
3132
if (orgFeat == nullptr) {
3233
throw invalid_argument("The interpreted organization feature cannot be null.");
3334
}
3435

3536
gsoapProxy2_3 = soap_new_resqml22__StratigraphicColumnRankInterpretation(orgFeat->getGsoapContext());
3637
static_cast<_resqml22__StratigraphicColumnRankInterpretation*>(gsoapProxy2_3)->RankInStratigraphicColumn = rank;
37-
static_cast<_resqml22__StratigraphicColumnRankInterpretation*>(gsoapProxy2_3)->AscendingOrderingCriteria = static_cast<resqml22__OrderingCriteria>(orderingCriteria);
38+
static_cast<_resqml22__StratigraphicColumnRankInterpretation*>(gsoapProxy2_3)->AscendingOrderingCriteria = static_cast<resqml22__OrderingCriteria>(ascendingOrderingCriteria);
3839

3940
initMandatoryMetadata();
40-
setMetadata(guid, title, std::string(), -1, std::string(), std::string(), -1, std::string());
41+
setMetadata(guid, title, "", -1, "", "", -1, "");
4142

4243
orgFeat->getRepository()->addDataObject(unique_ptr<COMMON_NS::AbstractObject>{this});
4344
setInterpretedFeature(orgFeat);

src/resqml2_2/StratigraphicColumnRankInterpretation.h

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ under the License.
2323
namespace RESQML2_2_NS
2424
{
2525
/**
26-
* This class is a container for other organizations that are consistent to each others.
26+
* @brief A stratigraphic column rank interpretation contains an ordered list of stratigraphic unit interpretations.
27+
* It corresponds to a level of detail of the stratigraphic column. First indexed ranks are coarser than last indexed ranks which are more detailed.
2728
*/
2829
class StratigraphicColumnRankInterpretation final : public RESQML2_NS::StratigraphicColumnRankInterpretation
2930
{
@@ -48,7 +49,8 @@ namespace RESQML2_2_NS
4849
* column.
4950
* @param orderingCriteria How the included horizons are ordered.
5051
*/
51-
StratigraphicColumnRankInterpretation(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title, uint64_t rank, gsoap_resqml2_0_1::resqml20__OrderingCriteria orderingCriteria);
52+
StratigraphicColumnRankInterpretation(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title,
53+
uint64_t rank, gsoap_resqml2_0_1::resqml20__OrderingCriteria ascendingOrderingCriteria);
5254

5355
/**
5456
* Creates an instance of this class by wrapping a gsoap instance.
@@ -59,6 +61,19 @@ namespace RESQML2_2_NS
5961
/** Destructor does nothing since the memory is managed by the gsoap context. */
6062
~StratigraphicColumnRankInterpretation() = default;
6163

64+
/**
65+
* Pushes back a stratigraphic unit interpretation to this stratigraphic column rank interpretation.
66+
* The stratigraphic unit interpretation must be pushed back according to the ordering criteria of the stratigraphic column rank interpretation:
67+
* - If the (ascending) ordering criteria is age then units must be pushed back from the youngest to oldest.
68+
* - If the (ascending) ordering criteria is apparent depth then units must be pushed back from the shallowest one to the deepest one.
69+
* - If the (ascending) ordering criteria is measured depth then units must be pushed back
70+
* from the first drilled trajectory stations to the latest drilled trajectory stations of the wellbore.
71+
* Remark : RESQML2.0.1 does not explicitely states that the ordering criteria is ascending but RESQML 2.2 does.
72+
*
73+
* @exception std::invalid_argument If @p stratiUnitInterpretation is @c nullptr.
74+
*
75+
* @param [in] stratiUnitInterpretation The stratigraphic unit interpretation to add.
76+
*/
6277
DLL_IMPORT_OR_EXPORT void pushBackStratiUnitInterpretation(RESQML2_NS::StratigraphicUnitInterpretation * stratiUnitInterpretation) final;
6378

6479
DLL_IMPORT_OR_EXPORT void setHorizonOfLastContact(RESQML2_NS::HorizonInterpretation * partOf) final;

swig/swigModule.i

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2088,8 +2088,7 @@ import com.f2i_consulting.fesapi.*;
20882088
RESQML2_NS::StratigraphicColumn* createStratigraphicColumn(const std::string & guid, const std::string & title);
20892089

20902090
/**
2091-
* @brief Creates a stratigraphic column rank interpretation ordered by age into this
2092-
* repository.
2091+
* @brief Creates a stratigraphic column rank interpretation ordered by ascending age into this repository.
20932092
*
20942093
* @exception std::invalid_argument If the default RESQML version is unrecognized.
20952094
* @exception std::invalid_argument If <tt>orgFeat == nullptr</tt> or if in a RESQML v2.0
@@ -2107,8 +2106,7 @@ import com.f2i_consulting.fesapi.*;
21072106
RESQML2_NS::StratigraphicColumnRankInterpretation* createStratigraphicColumnRankInterpretationInAge(RESQML2_NS::Model * orgFeat, const std::string & guid, const std::string & title, uint64_t rank);
21082107

21092108
/**
2110-
* @brief Creates a stratigraphic column rank interpretation ordered by apparent depth into
2111-
* this repository
2109+
* @brief Creates a stratigraphic column rank interpretation ordered by ascending apparent depth into this repository
21122110
*
21132111
* @exception std::invalid_argument If the default RESQML version is unrecognized.
21142112
* @exception std::invalid_argument If <tt>orgFeat == nullptr</tt> or if in a RESQML v2.0

0 commit comments

Comments
 (0)