Fesapi 2.3.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
Well.h
1/*-----------------------------------------------------------------------
2Licensed to the Apache Software Foundation (ASF) under one
3or more contributor license agreements. See the NOTICE file
4distributed with this work for additional information
5regarding copyright ownership. The ASF licenses this file
6to you under the Apache License, Version 2.0 (the
7"License"; you may not use this file except in compliance
8with the License. You may obtain a copy of the License at
9
10 http://www.apache.org/licenses/LICENSE-2.0
11
12Unless required by applicable law or agreed to in writing,
13software distributed under the License is distributed on an
14"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15KIND, either express or implied. See the License for the
16specific language governing permissions and limitations
17under the License.
18-----------------------------------------------------------------------*/
19#pragma once
20
21#include "../common/AbstractObject.h"
22
23#include "../MacroDefinitions.h"
24
25namespace RESQML2_NS
26{
27 class WellboreFeature;
28}
29
30namespace WITSML2_0_NS
31{
32 class WellCompletion;
33}
34
35namespace WITSML2_NS
36{
37 class Wellbore;
38
42 class Well : public COMMON_NS::AbstractObject
43 {
44 public:
45
51 DLL_IMPORT_OR_EXPORT Well(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) : COMMON_NS::AbstractObject(partialObject) {}
52
54 virtual ~Well() = default;
55
56 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, NameLegal)
57 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, NumLicense)
58 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, NumGovt)
59 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, Field)
60 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, Country)
61 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, State)
62 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, County)
63 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, Region)
64 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, District)
65 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, Block)
66 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, Operator)
67 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, OperatorDiv)
68 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, OriginalOperator)
69 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, NumAPI)
70
71 // Optional enum
72 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(gsoap_eml2_1::eml21__WellStatus, StatusWell)
73 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(gsoap_eml2_1::witsml20__WellPurpose, PurposeWell)
74 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(gsoap_eml2_1::witsml20__WellFluid, FluidWell)
75 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(gsoap_eml2_1::witsml20__WellDirection, DirectionWell)
76
77 ABSTRACT_GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE(WaterDepth, gsoap_eml2_1::eml21__LengthUom)
78 ABSTRACT_GETTER_PRESENCE_ATTRIBUTE(GroundElevation)
79
80 ABSTRACT_GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE(PcInterest, gsoap_eml2_1::eml21__DimensionlessUom)
81
82 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(time_t, DTimLicense)
83 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(time_t, DTimSpud)
84 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(time_t, DTimPa)
85
86
95 DLL_IMPORT_OR_EXPORT virtual void setGroundElevation(double value, gsoap_eml2_1::eml21__LengthUom uom, const std::string& datum) = 0;
96
104 DLL_IMPORT_OR_EXPORT virtual double getGroundElevationValue() const = 0;
105
113 DLL_IMPORT_OR_EXPORT virtual gsoap_eml2_1::eml21__LengthUom getGroundElevationUom() const = 0;
114
122 DLL_IMPORT_OR_EXPORT virtual std::string getGroundElevationDatum() const = 0;
123
134 DLL_IMPORT_OR_EXPORT virtual void setTimeZone(bool direction, unsigned short hours, unsigned short minutes) = 0;
135 ABSTRACT_GETTER_PRESENCE_ATTRIBUTE(TimeZone)
136
143 DLL_IMPORT_OR_EXPORT virtual bool getTimeZoneDirection() const = 0;
144
151 DLL_IMPORT_OR_EXPORT virtual unsigned short getTimeZoneHours() const = 0;
152
159 DLL_IMPORT_OR_EXPORT virtual unsigned short getTimeZoneMinutes() const = 0;
160
168 DLL_IMPORT_OR_EXPORT virtual double getLocationProjectedX(unsigned int locationIndex) = 0;
169
177 DLL_IMPORT_OR_EXPORT virtual double getLocationProjectedY(unsigned int locationIndex) = 0;
178
187 DLL_IMPORT_OR_EXPORT virtual void pushBackLocation(
188 const std::string & guid,
189 double projectedX,
190 double projectedY,
191 unsigned int projectedCrsEpsgCode) = 0;
192
198 DLL_IMPORT_OR_EXPORT virtual unsigned int geLocationCount() const = 0;
199
211 DLL_IMPORT_OR_EXPORT virtual void pushBackDatum(
212 const std::string & guid,
213 const std::string & title,
214 gsoap_eml2_1::eml21__WellboreDatumReference code,
215 const std::string & datum,
216 gsoap_eml2_1::eml21__LengthUom elevationUnit,
217 double elevation,
218 unsigned int verticalCrsEpsgCode) = 0;
219
225 DLL_IMPORT_OR_EXPORT virtual unsigned int getDatumCount() const = 0;
226
232 DLL_IMPORT_OR_EXPORT std::vector<RESQML2_NS::WellboreFeature *> getResqmlWellboreFeatures() const;
233
234 GETTER_DATAOBJECTS(WITSML2_NS::Wellbore, Wellbore)
235 GETTER_DATAOBJECTS(WITSML2_0_NS::WellCompletion, Wellcompletion)
236
242 DLL_IMPORT_OR_EXPORT static constexpr char const* XML_TAG = "Well";
243
249 DLL_IMPORT_OR_EXPORT virtual std::string getXmlTag() const final { return XML_TAG; }
250
253
254 protected:
255
257 Well() = default;
258
264 Well(gsoap_eml2_1::witsml20__Well* fromGsoap) : COMMON_NS::AbstractObject(fromGsoap) {}
265
271 //Well(gsoap_eml2_3::_resqml22__Well* fromGsoap) : COMMON_NS::AbstractObject(fromGsoap) {}
272 };
273}
Contains all information that is the same for all wellbores (sidetracks).
Definition: Well.h:43
virtual double getLocationProjectedX(unsigned int locationIndex)=0
Well(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition: Well.h:51
virtual gsoap_eml2_1::eml21__LengthUom getGroundElevationUom() const =0
Gets the ground level elevation unit of measure.
virtual unsigned int getDatumCount() const =0
virtual std::string getGroundElevationDatum() const =0
Gets the ground level elevation datum.
void loadTargetRelationships()
Definition: Well.h:252
virtual void pushBackDatum(const std::string &guid, const std::string &title, gsoap_eml2_1::eml21__WellboreDatumReference code, const std::string &datum, gsoap_eml2_1::eml21__LengthUom elevationUnit, double elevation, unsigned int verticalCrsEpsgCode)=0
std::vector< resqml2::WellboreFeature * > getResqmlWellboreFeatures() const
virtual unsigned short getTimeZoneHours() const =0
virtual void setGroundElevation(double value, gsoap_eml2_1::eml21__LengthUom uom, const std::string &datum)=0
Sets the ground level elevation (land rigs)
virtual void setTimeZone(bool direction, unsigned short hours, unsigned short minutes)=0
virtual bool getTimeZoneDirection() const =0
virtual double getGroundElevationValue() const =0
Gets the ground level elevation value.
virtual std::string getXmlTag() const final
Definition: Well.h:249
virtual void pushBackLocation(const std::string &guid, double projectedX, double projectedY, unsigned int projectedCrsEpsgCode)=0
virtual unsigned short getTimeZoneMinutes() const =0
virtual unsigned int geLocationCount() const =0
static constexpr char const * XML_TAG
Definition: Well.h:242
virtual double getLocationProjectedY(unsigned int locationIndex)=0
virtual ~Well()=default
A wellbore represents the path from surface to a unique bottomhole location.
Definition: Wellbore.h:46