mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#5632 Generate PdmChildField and PdmChildArrayField methods
This commit is contained in:
@@ -16,7 +16,7 @@ if resinsight is not None:
|
|||||||
for case in cases:
|
for case in cases:
|
||||||
print("Case id: " + str(case.id))
|
print("Case id: " + str(case.id))
|
||||||
print("Case name: " + case.name)
|
print("Case name: " + case.name)
|
||||||
print("Case type: " + case.class_keyword)
|
print("Case type: " + case.__class__.__name__)
|
||||||
print("Case file name: " + case.file_path)
|
print("Case file name: " + case.file_path)
|
||||||
print("Case reservoir bounding box:", case.reservoir_boundingbox())
|
print("Case reservoir bounding box:", case.reservoir_boundingbox())
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ for wbsplot in wbsplots:
|
|||||||
|
|
||||||
# Example of setting parameters for existing plots
|
# Example of setting parameters for existing plots
|
||||||
params = wbsplot.parameters()
|
params = wbsplot.parameters()
|
||||||
params.user_poisson_ratio = 0.654321
|
params.user_poisson_ratio = 0.12345
|
||||||
params.update()
|
params.update()
|
||||||
wbsplot.update()
|
wbsplot.update()
|
||||||
wbsplot.export_snapshot(export_folder=dirname)
|
wbsplot.export_snapshot(export_folder=dirname)
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ print("Exporting to: " + export_folder)
|
|||||||
for plot in plots:
|
for plot in plots:
|
||||||
plot.export_snapshot(export_folder=export_folder)
|
plot.export_snapshot(export_folder=export_folder)
|
||||||
plot.export_snapshot(export_folder=export_folder, output_format='PDF')
|
plot.export_snapshot(export_folder=export_folder, output_format='PDF')
|
||||||
well_log_plot = plot.cast(rips.WellLogPlot)
|
if isinstance(plot, rips.WellLogPlot):
|
||||||
if well_log_plot is not None:
|
plot.export_data_as_las(export_folder=export_folder)
|
||||||
well_log_plot.export_data_as_las(export_folder=export_folder)
|
plot.export_data_as_ascii(export_folder=export_folder)
|
||||||
well_log_plot.export_data_as_ascii(export_folder=export_folder)
|
|
||||||
|
|||||||
@@ -8,4 +8,4 @@ cases = resinsight.project.cases()
|
|||||||
print ("Got " + str(len(cases)) + " cases: ")
|
print ("Got " + str(len(cases)) + " cases: ")
|
||||||
for case in cases:
|
for case in cases:
|
||||||
print("Case name: " + case.name)
|
print("Case name: " + case.name)
|
||||||
print("Case grid path: " + case.grid_path())
|
print("Case grid path: " + case.file_path)
|
||||||
|
|||||||
@@ -245,11 +245,6 @@ def days_since_start(self):
|
|||||||
"""Get a list of decimal values representing days since the start of the simulation"""
|
"""Get a list of decimal values representing days since the start of the simulation"""
|
||||||
return self.__case_stub.GetDaysSinceStart(self.__request()).day_decimals
|
return self.__case_stub.GetDaysSinceStart(self.__request()).day_decimals
|
||||||
|
|
||||||
@add_method(Case)
|
|
||||||
def views(self):
|
|
||||||
"""Get a list of views belonging to a case"""
|
|
||||||
return self.descendants(View)
|
|
||||||
|
|
||||||
@add_method(Case)
|
@add_method(Case)
|
||||||
def view(self, view_id):
|
def view(self, view_id):
|
||||||
"""Get a particular view belonging to a case by providing view id
|
"""Get a particular view belonging to a case by providing view id
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ def copy_from(self, object):
|
|||||||
setattr(self, attribute, value)
|
setattr(self, attribute, value)
|
||||||
if self.__custom_init__ is not None:
|
if self.__custom_init__ is not None:
|
||||||
self.__custom_init__(self._pb2_object, self._channel)
|
self.__custom_init__(self._pb2_object, self._channel)
|
||||||
|
self.update()
|
||||||
|
|
||||||
@add_method(PdmObject)
|
@add_method(PdmObject)
|
||||||
def warnings(self):
|
def warnings(self):
|
||||||
|
|||||||
@@ -28,18 +28,6 @@ def __custom_init__(self, pb2_object=None, channel=None):
|
|||||||
self.user_k0fg = 0.75
|
self.user_k0fg = 0.75
|
||||||
|
|
||||||
@add_method(WellBoreStabilityPlot)
|
@add_method(WellBoreStabilityPlot)
|
||||||
def parameters(self):
|
def set_parameters(self, new_parameters):
|
||||||
"""Retrieve the parameters of the Plot
|
current_params = self.parameters()
|
||||||
"""
|
current_params.copy_from(new_parameters)
|
||||||
children = self.children("WbsParameters", WbsParameters)
|
|
||||||
if len(children) == 1:
|
|
||||||
child = children[0]
|
|
||||||
return child
|
|
||||||
return None
|
|
||||||
|
|
||||||
@add_method(WellBoreStabilityPlot)
|
|
||||||
def set_parameters(self, wbs_parameters):
|
|
||||||
children = self.children("WbsParameters", WbsParameters)
|
|
||||||
if len(children) == 1:
|
|
||||||
pdm_params = children[0]
|
|
||||||
pdm_params.copy_from(wbs_parameters)
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
#include "RimEclipseResultDefinition.h"
|
#include "RimEclipseResultDefinition.h"
|
||||||
#include "RimProject.h"
|
#include "RimProject.h"
|
||||||
|
|
||||||
|
#include "cafPdmFieldScriptability.h"
|
||||||
#include "cafPdmObject.h"
|
#include "cafPdmObject.h"
|
||||||
#include "cafPdmObjectScriptabilityRegister.h"
|
#include "cafPdmObjectScriptabilityRegister.h"
|
||||||
|
|
||||||
@@ -171,7 +172,8 @@ Status RiaPdmObjectMethodStateHandler::init( const rips::PdmObjectMethodRequest*
|
|||||||
m_fieldOwner->fields( fields );
|
m_fieldOwner->fields( fields );
|
||||||
for ( auto field : fields )
|
for ( auto field : fields )
|
||||||
{
|
{
|
||||||
if ( field->keyword() == fieldName )
|
auto scriptability = field->capability<caf::PdmFieldScriptability>();
|
||||||
|
if ( scriptability && scriptability->scriptFieldName() == fieldName )
|
||||||
{
|
{
|
||||||
caf::PdmProxyFieldHandle* proxyField = dynamic_cast<caf::PdmProxyFieldHandle*>( field );
|
caf::PdmProxyFieldHandle* proxyField = dynamic_cast<caf::PdmProxyFieldHandle*>( field );
|
||||||
if ( proxyField )
|
if ( proxyField )
|
||||||
@@ -224,7 +226,8 @@ Status RiaPdmObjectMethodStateHandler::init( const rips::PdmObjectSetMethodChunk
|
|||||||
m_fieldOwner->fields( fields );
|
m_fieldOwner->fields( fields );
|
||||||
for ( auto field : fields )
|
for ( auto field : fields )
|
||||||
{
|
{
|
||||||
if ( field->keyword() == fieldName )
|
auto scriptability = field->capability<caf::PdmFieldScriptability>();
|
||||||
|
if ( scriptability && scriptability->scriptFieldName() == fieldName )
|
||||||
{
|
{
|
||||||
caf::PdmProxyFieldHandle* proxyField = dynamic_cast<caf::PdmProxyFieldHandle*>( field );
|
caf::PdmProxyFieldHandle* proxyField = dynamic_cast<caf::PdmProxyFieldHandle*>( field );
|
||||||
if ( proxyField )
|
if ( proxyField )
|
||||||
@@ -406,7 +409,8 @@ grpc::Status RiaGrpcPdmObjectService::GetChildPdmObjects( grpc::ServerContext*
|
|||||||
matchingObject->fields( fields );
|
matchingObject->fields( fields );
|
||||||
for ( auto field : fields )
|
for ( auto field : fields )
|
||||||
{
|
{
|
||||||
if ( field->keyword() == fieldName )
|
auto scriptability = field->capability<caf::PdmFieldScriptability>();
|
||||||
|
if ( scriptability && scriptability->scriptFieldName() == fieldName )
|
||||||
{
|
{
|
||||||
std::vector<caf::PdmObjectHandle*> childObjects;
|
std::vector<caf::PdmObjectHandle*> childObjects;
|
||||||
field->childObjects( &childObjects );
|
field->childObjects( &childObjects );
|
||||||
|
|||||||
@@ -85,7 +85,13 @@ RimEclipseCase::RimEclipseCase()
|
|||||||
"Reservoir",
|
"Reservoir",
|
||||||
"Abtract base class for Eclipse Cases" );
|
"Abtract base class for Eclipse Cases" );
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault( &reservoirViews, "ReservoirViews", "", "", "", "" );
|
CAF_PDM_InitScriptableFieldWithKeywordNoDefault( &reservoirViews,
|
||||||
|
"ReservoirViews",
|
||||||
|
"Views",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"All Eclipse Views in the case" );
|
||||||
reservoirViews.uiCapability()->setUiHidden( true );
|
reservoirViews.uiCapability()->setUiHidden( true );
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault( &m_matrixModelResults, "MatrixModelResults", "", "", "", "" );
|
CAF_PDM_InitFieldNoDefault( &m_matrixModelResults, "MatrixModelResults", "", "", "", "" );
|
||||||
|
|||||||
@@ -128,7 +128,13 @@ RimEclipseView::RimEclipseView()
|
|||||||
"EclipseView",
|
"EclipseView",
|
||||||
"The Eclipse 3d Reservoir View" );
|
"The Eclipse 3d Reservoir View" );
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault( &m_cellResult, "GridCellResult", "Cell Result", ":/CellResult.png", "", "" );
|
CAF_PDM_InitScriptableFieldWithKeywordNoDefault( &m_cellResult,
|
||||||
|
"GridCellResult",
|
||||||
|
"CellResult",
|
||||||
|
"Cell Result",
|
||||||
|
":/CellResult.png",
|
||||||
|
"",
|
||||||
|
"" );
|
||||||
m_cellResult = new RimEclipseCellColors();
|
m_cellResult = new RimEclipseCellColors();
|
||||||
m_cellResult.uiCapability()->setUiHidden( true );
|
m_cellResult.uiCapability()->setUiHidden( true );
|
||||||
m_cellResult->setDiffResultOptionsEnabled( true );
|
m_cellResult->setDiffResultOptionsEnabled( true );
|
||||||
|
|||||||
@@ -76,7 +76,13 @@ RimGeoMechCase::RimGeoMechCase( void )
|
|||||||
"GeoMechCase",
|
"GeoMechCase",
|
||||||
"The Abaqus Based GeoMech Case" );
|
"The Abaqus Based GeoMech Case" );
|
||||||
|
|
||||||
CAF_PDM_InitFieldNoDefault( &geoMechViews, "GeoMechViews", "", "", "", "" );
|
CAF_PDM_InitScriptableFieldWithKeywordNoDefault( &geoMechViews,
|
||||||
|
"GeoMechViews",
|
||||||
|
"Views",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"All GeoMech Views in the Case" );
|
||||||
geoMechViews.uiCapability()->setUiHidden( true );
|
geoMechViews.uiCapability()->setUiHidden( true );
|
||||||
|
|
||||||
CAF_PDM_InitField( &m_cohesion, "CaseCohesion", 10.0, "Cohesion", "", "Used to calculate the SE:SFI result", "" );
|
CAF_PDM_InitField( &m_cohesion, "CaseCohesion", 10.0, "Cohesion", "", "Used to calculate the SE:SFI result", "" );
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ RimWellBoreStabilityPlot::RimWellBoreStabilityPlot()
|
|||||||
|
|
||||||
CAF_PDM_InitScriptableFieldWithKeywordNoDefault( &m_wbsParameters,
|
CAF_PDM_InitScriptableFieldWithKeywordNoDefault( &m_wbsParameters,
|
||||||
"WbsParameters",
|
"WbsParameters",
|
||||||
"Params",
|
"Parameters",
|
||||||
"Well Bore Stability Parameters",
|
"Well Bore Stability Parameters",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
|
|||||||
@@ -35,6 +35,8 @@
|
|||||||
//##################################################################################################
|
//##################################################################################################
|
||||||
#include "cafPdmPythonGenerator.h"
|
#include "cafPdmPythonGenerator.h"
|
||||||
|
|
||||||
|
#include "cafPdmChildArrayField.h"
|
||||||
|
#include "cafPdmChildField.h"
|
||||||
#include "cafPdmFieldScriptability.h"
|
#include "cafPdmFieldScriptability.h"
|
||||||
#include "cafPdmObject.h"
|
#include "cafPdmObject.h"
|
||||||
#include "cafPdmObjectFactory.h"
|
#include "cafPdmObjectFactory.h"
|
||||||
@@ -112,35 +114,40 @@ QString PdmPythonGenerator::generate(PdmObjectFactory* factory) const
|
|||||||
object->fields(fields);
|
object->fields(fields);
|
||||||
for (auto field : fields)
|
for (auto field : fields)
|
||||||
{
|
{
|
||||||
auto pdmValueField = dynamic_cast<const PdmValueField*>(field);
|
auto scriptability = field->template capability<PdmFieldScriptability>();
|
||||||
if (pdmValueField)
|
if (scriptability != nullptr)
|
||||||
{
|
{
|
||||||
QString keyword = pdmValueField->keyword();
|
QString snake_field_name = camelToSnakeCase(scriptability->scriptFieldName());
|
||||||
auto scriptability = field->template capability<PdmFieldScriptability>();
|
|
||||||
if (scriptability != nullptr)
|
QString comment;
|
||||||
{
|
{
|
||||||
|
QStringList commentComponents;
|
||||||
|
commentComponents << field->capability<PdmUiFieldHandle>()->uiName();
|
||||||
|
commentComponents << field->capability<PdmUiFieldHandle>()->uiWhatsThis();
|
||||||
|
commentComponents.removeAll(QString(""));
|
||||||
|
comment = commentComponents.join(". ");
|
||||||
|
}
|
||||||
|
|
||||||
|
auto pdmValueField = dynamic_cast<const PdmValueField*>(field);
|
||||||
|
auto pdmChildField = dynamic_cast<const PdmChildFieldHandle*>(field);
|
||||||
|
auto pdmChildArrayField = dynamic_cast<const PdmChildArrayFieldHandle*>(field);
|
||||||
|
if (pdmValueField)
|
||||||
|
{
|
||||||
|
QString dataType = PdmPythonGenerator::dataTypeString(field, true);
|
||||||
|
if (field->xmlCapability()->isVectorField())
|
||||||
|
{
|
||||||
|
dataType = QString("List of %1").arg(dataType);
|
||||||
|
}
|
||||||
|
|
||||||
bool shouldBeMethod = false;
|
bool shouldBeMethod = false;
|
||||||
auto proxyField = dynamic_cast<const PdmProxyFieldHandle*>(field);
|
auto proxyField = dynamic_cast<const PdmProxyFieldHandle*>(field);
|
||||||
if (proxyField && proxyField->isStreamingField()) shouldBeMethod = true;
|
if (proxyField && proxyField->isStreamingField()) shouldBeMethod = true;
|
||||||
|
|
||||||
QString snake_field_name = camelToSnakeCase(scriptability->scriptFieldName());
|
|
||||||
if (classAttributesGenerated[field->ownerClass()].count(snake_field_name)) continue;
|
if (classAttributesGenerated[field->ownerClass()].count(snake_field_name)) continue;
|
||||||
if (classMethodsGenerated[field->ownerClass()].count(snake_field_name)) continue;
|
if (classMethodsGenerated[field->ownerClass()].count(snake_field_name)) continue;
|
||||||
|
|
||||||
QString comment;
|
|
||||||
{
|
|
||||||
QStringList commentComponents;
|
|
||||||
commentComponents << pdmValueField->capability<PdmUiFieldHandle>()->uiName();
|
|
||||||
commentComponents << pdmValueField->capability<PdmUiFieldHandle>()->uiWhatsThis();
|
|
||||||
commentComponents.removeAll(QString(""));
|
|
||||||
comment = commentComponents.join(". ");
|
|
||||||
}
|
|
||||||
|
|
||||||
QVariant valueVariant = pdmValueField->toQVariant();
|
QVariant valueVariant = pdmValueField->toQVariant();
|
||||||
|
|
||||||
bool isList, isBuiltinType;
|
|
||||||
QString dataType = PdmPythonGenerator::dataTypeString(pdmValueField, &isList, &isBuiltinType);
|
|
||||||
|
|
||||||
if (shouldBeMethod)
|
if (shouldBeMethod)
|
||||||
{
|
{
|
||||||
if (proxyField->hasGetter())
|
if (proxyField->hasGetter())
|
||||||
@@ -174,7 +181,7 @@ QString PdmPythonGenerator::generate(PdmObjectFactory* factory) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QString valueString;
|
QString valueString;
|
||||||
QTextStream valueStream(&valueString);
|
QTextStream valueStream(&valueString);
|
||||||
scriptability->readFromField(valueStream, true, true);
|
scriptability->readFromField(valueStream, true, true);
|
||||||
@@ -191,6 +198,29 @@ QString PdmPythonGenerator::generate(PdmObjectFactory* factory) const
|
|||||||
classAttributesGenerated[field->ownerClass()][snake_field_name].second = fullComment;
|
classAttributesGenerated[field->ownerClass()][snake_field_name].second = fullComment;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (pdmChildField || pdmChildArrayField)
|
||||||
|
{
|
||||||
|
QString dataType = PdmPythonGenerator::dataTypeString(field, false);
|
||||||
|
QString scriptDataType = PdmObjectScriptabilityRegister::scriptClassNameFromClassKeyword(dataType);
|
||||||
|
|
||||||
|
QString commentDataType = field->xmlCapability()->isVectorField() ?
|
||||||
|
QString("List of %1").arg(scriptDataType) : scriptDataType;
|
||||||
|
|
||||||
|
QString firstItemTag = pdmChildField ? QString("[0]") : QString("");
|
||||||
|
QString fullComment =
|
||||||
|
QString(" \"\"\"%1\n Returns:\n %2\n \"\"\"")
|
||||||
|
.arg(comment)
|
||||||
|
.arg(commentDataType);
|
||||||
|
|
||||||
|
QString fieldCode = QString(" def %1(self):\n%2\n return "
|
||||||
|
"self.children(\"%3\", %4)%5\n")
|
||||||
|
.arg(snake_field_name)
|
||||||
|
.arg(fullComment)
|
||||||
|
.arg(scriptability->scriptFieldName())
|
||||||
|
.arg(scriptDataType)
|
||||||
|
.arg(firstItemTag);
|
||||||
|
classMethodsGenerated[field->ownerClass()][snake_field_name] = fieldCode;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -309,12 +339,11 @@ QString PdmPythonGenerator::camelToSnakeCase(const QString& camelString)
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
QString PdmPythonGenerator::dataTypeString(const PdmFieldHandle* field, bool* isList, bool* isBuiltinType)
|
QString PdmPythonGenerator::dataTypeString(const PdmFieldHandle* field, bool useStrForUnknownDataTypes)
|
||||||
{
|
{
|
||||||
auto xmlObj = field->capability<PdmXmlFieldHandle>();
|
auto xmlObj = field->capability<PdmXmlFieldHandle>();
|
||||||
|
|
||||||
QString dataType = xmlObj->dataTypeName();
|
QString dataType = xmlObj->dataTypeName();
|
||||||
bool foundList = xmlObj->isVectorField();
|
|
||||||
|
|
||||||
std::map<QString, QString> builtins =
|
std::map<QString, QString> builtins =
|
||||||
{ {QString::fromStdString(typeid(double).name()), "float"},
|
{ {QString::fromStdString(typeid(double).name()), "float"},
|
||||||
@@ -333,22 +362,11 @@ QString PdmPythonGenerator::dataTypeString(const PdmFieldHandle* field, bool* is
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isList)
|
if (!foundBuiltin && useStrForUnknownDataTypes)
|
||||||
{
|
|
||||||
*isList = foundList;
|
|
||||||
}
|
|
||||||
if (isBuiltinType)
|
|
||||||
{
|
|
||||||
*isBuiltinType = foundBuiltin;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!foundBuiltin)
|
|
||||||
{
|
{
|
||||||
dataType = "str";
|
dataType = "str";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (foundList) return QString("List of %1").arg(dataType);
|
|
||||||
|
|
||||||
return dataType;
|
return dataType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class PdmPythonGenerator : public PdmCodeGenerator
|
|||||||
public:
|
public:
|
||||||
QString generate(PdmObjectFactory* factory) const override;
|
QString generate(PdmObjectFactory* factory) const override;
|
||||||
static QString camelToSnakeCase(const QString& camelString);
|
static QString camelToSnakeCase(const QString& camelString);
|
||||||
static QString dataTypeString(const PdmFieldHandle* field, bool* isList = nullptr, bool* isBuiltinType = nullptr);
|
static QString dataTypeString(const PdmFieldHandle* field, bool useStrForUnknownDataTypes);
|
||||||
|
|
||||||
static QString pythonifyDataValue(const QString& dataValue);
|
static QString pythonifyDataValue(const QString& dataValue);
|
||||||
static QString pythonHelpString(const QString& existingTooltip, const QString& keyword);
|
static QString pythonHelpString(const QString& existingTooltip, const QString& keyword);
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ public:
|
|||||||
void readFieldData(QXmlStreamReader& xmlStream, PdmObjectFactory* objectFactory) override;
|
void readFieldData(QXmlStreamReader& xmlStream, PdmObjectFactory* objectFactory) override;
|
||||||
void writeFieldData(QXmlStreamWriter& xmlStream) const override;
|
void writeFieldData(QXmlStreamWriter& xmlStream) const override;
|
||||||
bool resolveReferences() override;
|
bool resolveReferences() override;
|
||||||
|
bool isVectorField() const;
|
||||||
private:
|
private:
|
||||||
FieldType* m_field;
|
FieldType* m_field;
|
||||||
|
|
||||||
@@ -124,6 +124,7 @@ public:
|
|||||||
void readFieldData(QXmlStreamReader& xmlStream, PdmObjectFactory* objectFactory) override;
|
void readFieldData(QXmlStreamReader& xmlStream, PdmObjectFactory* objectFactory) override;
|
||||||
void writeFieldData(QXmlStreamWriter& xmlStream) const override;
|
void writeFieldData(QXmlStreamWriter& xmlStream) const override;
|
||||||
bool resolveReferences() override;
|
bool resolveReferences() override;
|
||||||
|
bool isVectorField() const;
|
||||||
private:
|
private:
|
||||||
FieldType* m_field;
|
FieldType* m_field;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -218,7 +218,15 @@ bool caf::PdmFieldXmlCap<FieldType>::resolveReferences()
|
|||||||
|
|
||||||
return foundValidObjectFromString;
|
return foundValidObjectFromString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
template < typename DataType>
|
||||||
|
bool caf::PdmFieldXmlCap< caf::PdmPtrArrayField<DataType*> >::isVectorField() const
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
/// XML Implementation for PdmChildField<>
|
/// XML Implementation for PdmChildField<>
|
||||||
@@ -432,4 +440,13 @@ bool caf::PdmFieldXmlCap<caf::PdmChildArrayField<DataType *>>::resolveReferences
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
template < typename DataType>
|
||||||
|
bool caf::PdmFieldXmlCap< caf::PdmChildArrayField<DataType*> >::isVectorField() const
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
} // End namespace caf
|
} // End namespace caf
|
||||||
|
|||||||
Reference in New Issue
Block a user