Fesapi  0.13.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
PropertyKind.h
1 /*-----------------------------------------------------------------------
2 Licensed to the Apache Software Foundation (ASF) under one
3 or more contributor license agreements. See the NOTICE file
4 distributed with this work for additional information
5 regarding copyright ownership. The ASF licenses this file
6 to you under the Apache License, Version 2.0 (the
7 "License"; you may not use this file except in compliance
8 with the License. You may obtain a copy of the License at
9 
10  http://www.apache.org/licenses/LICENSE-2.0
11 
12 Unless required by applicable law or agreed to in writing,
13 software distributed under the License is distributed on an
14 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 KIND, either express or implied. See the License for the
16 specific language governing permissions and limitations
17 under the License.
18 -----------------------------------------------------------------------*/
19 #pragma once
20 
21 #include "resqml2/AbstractProperty.h"
22 
23 namespace RESQML2_NS
24 {
25  class DLL_IMPORT_OR_EXPORT PropertyKind : public COMMON_NS::AbstractObject
26  {
27  protected:
28 
33 
37  PropertyKind(gsoap_resqml2_0_1::eml20__DataObjectReference* partialObject) : COMMON_NS::AbstractObject(partialObject) {}
38 
42  PropertyKind(gsoap_resqml2_0_1::_resqml2__PropertyKind* fromGsoap) : COMMON_NS::AbstractObject(fromGsoap) {}
43 
44  public:
45 
49  virtual ~PropertyKind() {}
50 
54  const std::string & getNamingSystem() const;
55 
59  const gsoap_resqml2_0_1::resqml2__ResqmlUom & getUom() const;
60 
64  std::string getUomAsString() const;
65 
69  std::string getParentAsString() const;
70 
74  bool isParentAnEnergisticsPropertyKind() const;
75 
79  gsoap_resqml2_0_1::resqml2__ResqmlPropertyKind getParentEnergisticsPropertyKind() const;
80 
84  gsoap_resqml2_0_1::eml20__DataObjectReference* getParentLocalPropertyKindDor() const;
85 
89  std::string getParentLocalPropertyKindUuid() const;
90 
94  std::string getParentLocalPropertyKindTitle() const;
95 
100  PropertyKind* getParentLocalPropertyKind() const;
101 
102  void setParentPropertyKind(PropertyKind* parentPropertyKind);
103 
104  static const char* XML_TAG;
105  virtual std::string getXmlTag() const {return XML_TAG;}
106 
111  void addProperty(class AbstractProperty* repVal) {propertySet.push_back(repVal);}
112 
116  virtual bool isChildOf(gsoap_resqml2_0_1::resqml2__ResqmlPropertyKind standardPropKind) const = 0;
117 
121  virtual bool isAbstract() const = 0;
122 
123  protected:
124  virtual void setXmlParentPropertyKind(PropertyKind* parentPropertyKind) = 0;
125 
126  std::vector<epc::Relationship> getAllEpcRelationships() const;
127  void importRelationshipSetFromEpc(COMMON_NS::EpcDocument* epcDoc);
128 
129  // XML backward relationship
130  std::vector<class AbstractProperty*> propertySet;
131  std::vector<PropertyKind*> childPropertyKind;
132 
134  };
135 }
136 
137 
PropertyKind(gsoap_resqml2_0_1::eml20__DataObjectReference *partialObject)
Definition: PropertyKind.h:37
Definition: EpcDocument.h:154
PropertyKind(gsoap_resqml2_0_1::_resqml2__PropertyKind *fromGsoap)
Definition: PropertyKind.h:42
void addProperty(class AbstractProperty *repVal)
Definition: PropertyKind.h:111
Definition: AbstractObject.h:27
Definition: AbstractProperty.h:25
void setLocalPropertyKind(class PropertyKind *propKind)
Definition: AbstractProperty.cpp:545
Definition: PropertyKind.h:25
virtual ~PropertyKind()
Definition: PropertyKind.h:49
virtual std::string getXmlTag() const
Definition: PropertyKind.h:105
Definition: AbstractHdfProxy.h:28
Definition: EpcDocument.h:49
PropertyKind()
Definition: PropertyKind.h:32