Fesapi 2.9.0.1
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
Loading...
Searching...
No Matches
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_1_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, OperatorDiv)
67 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(std::string, NumAPI)
68
69 // Optional enum
70 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(gsoap_eml2_3::eml23__WellStatus, StatusWell)
71 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(gsoap_eml2_3::witsml21__WellPurpose, PurposeWell)
72 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(gsoap_eml2_3::witsml21__WellFluid, FluidWell)
73 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(gsoap_eml2_3::witsml21__WellDirection, DirectionWell)
74
75 ABSTRACT_GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE(WaterDepth, gsoap_eml2_3::eml23__LengthUom)
76 ABSTRACT_GETTER_PRESENCE_ATTRIBUTE(GroundElevation)
77
78 ABSTRACT_GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE(PcInterest, gsoap_eml2_3::eml23__DimensionlessUom)
79
80 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(time_t, DTimLicense)
81 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(time_t, DTimSpud)
82 ABSTRACT_GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE(time_t, DTimPa)
83
84
92 DLL_IMPORT_OR_EXPORT virtual void setGroundElevation(double value, gsoap_eml2_3::eml23__LengthUom uom) = 0;
93
101 DLL_IMPORT_OR_EXPORT virtual double getGroundElevationValue() const = 0;
102
110 DLL_IMPORT_OR_EXPORT virtual gsoap_eml2_3::eml23__LengthUom getGroundElevationUom() const = 0;
111
122 DLL_IMPORT_OR_EXPORT virtual void setTimeZone(bool direction, unsigned short hours, unsigned short minutes) = 0;
123 ABSTRACT_GETTER_PRESENCE_ATTRIBUTE(TimeZone)
124
131 DLL_IMPORT_OR_EXPORT virtual bool getTimeZoneDirection() const = 0;
132
139 DLL_IMPORT_OR_EXPORT virtual unsigned short getTimeZoneHours() const = 0;
140
147 DLL_IMPORT_OR_EXPORT virtual unsigned short getTimeZoneMinutes() const = 0;
148
156 DLL_IMPORT_OR_EXPORT virtual double getLocationProjectedX(unsigned int locationIndex) = 0;
157
165 DLL_IMPORT_OR_EXPORT virtual double getLocationProjectedY(unsigned int locationIndex) = 0;
166
173 DLL_IMPORT_OR_EXPORT virtual void pushBackLocation(
174 double projectedX,
175 double projectedY) = 0;
176
182 DLL_IMPORT_OR_EXPORT virtual unsigned int geLocationCount() const = 0;
183
184 GETTER_DATAOBJECTS(RESQML2_NS::WellboreFeature, ResqmlWellboreFeature)
185 GETTER_DATAOBJECTS(WITSML2_NS::Wellbore, Wellbore)
186 GETTER_DATAOBJECTS(WITSML2_1_NS::WellCompletion, Wellcompletion)
187
193 DLL_IMPORT_OR_EXPORT static constexpr char const* XML_TAG = "Well";
194
200 DLL_IMPORT_OR_EXPORT virtual std::string getXmlTag() const final { return XML_TAG; }
201
204
205 protected:
206
208 Well() = default;
209
215 Well(gsoap_eml2_3::witsml21__Well* fromGsoap) : COMMON_NS::AbstractObject(fromGsoap) {}
216
222 //Well(gsoap_eml2_3::_resqml22__Well* fromGsoap) : COMMON_NS::AbstractObject(fromGsoap) {}
223 };
224}
Contains all information that is the same for all wellbores (sidetracks).
Definition Well.h:43
Well(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition Well.h:51
void loadTargetRelationships()
Definition Well.h:203
static constexpr char const * XML_TAG
Definition Well.h:193
virtual ~Well()=default
A wellbore represents the path from surface to a unique bottomhole location.
Definition Wellbore.h:46