mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#6320 Refactor of PdmScripting
* Make base class abstract * Implement support for IOHandling for PdmChild and PdmChildArray fields
This commit is contained in:
@@ -35,16 +35,17 @@
|
||||
//##################################################################################################
|
||||
#include "cafPdmPythonGenerator.h"
|
||||
|
||||
#include "cafPdmAbstractFieldScriptingCapability.h"
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmChildField.h"
|
||||
#include "cafPdmFieldScriptability.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmObjectFactory.h"
|
||||
#include "cafPdmObjectMethod.h"
|
||||
#include "cafPdmObjectScriptabilityRegister.h"
|
||||
#include "cafPdmObjectScriptingCapabilityRegister.h"
|
||||
#include "cafPdmProxyValueField.h"
|
||||
#include "cafPdmXmlFieldHandle.h"
|
||||
|
||||
|
||||
#include <QRegularExpression>
|
||||
#include <QTextStream>
|
||||
|
||||
@@ -74,7 +75,7 @@ QString PdmPythonGenerator::generate( PdmObjectFactory* factory ) const
|
||||
CAF_ASSERT( object );
|
||||
|
||||
std::shared_ptr<PdmObject> sharedObject( object );
|
||||
if ( PdmObjectScriptabilityRegister::isScriptable( sharedObject.get() ) )
|
||||
if ( PdmObjectScriptingCapabilityRegister::isScriptable( sharedObject.get() ) )
|
||||
{
|
||||
dummyObjects.push_back( sharedObject );
|
||||
}
|
||||
@@ -100,8 +101,8 @@ QString PdmPythonGenerator::generate( PdmObjectFactory* factory ) const
|
||||
|
||||
for ( auto it = classInheritanceStack.begin(); it != classInheritanceStack.end(); ++it )
|
||||
{
|
||||
const QString& classKeyword = *it;
|
||||
QString scriptClassComment = PdmObjectScriptabilityRegister::scriptClassComment( classKeyword );
|
||||
const QString& classKeyword = *it;
|
||||
QString scriptClassComment = PdmObjectScriptingCapabilityRegister::scriptClassComment( classKeyword );
|
||||
|
||||
std::map<QString, QString> attributesGenerated;
|
||||
|
||||
@@ -113,7 +114,7 @@ QString PdmPythonGenerator::generate( PdmObjectFactory* factory ) const
|
||||
object->fields( fields );
|
||||
for ( auto field : fields )
|
||||
{
|
||||
auto scriptability = field->template capability<PdmFieldScriptability>();
|
||||
auto scriptability = field->template capability<PdmAbstractFieldScriptingCapability>();
|
||||
if ( scriptability != nullptr )
|
||||
{
|
||||
QString snake_field_name = camelToSnakeCase( scriptability->scriptFieldName() );
|
||||
@@ -201,7 +202,7 @@ QString PdmPythonGenerator::generate( PdmObjectFactory* factory ) const
|
||||
{
|
||||
QString dataType = PdmPythonGenerator::dataTypeString( field, false );
|
||||
QString scriptDataType =
|
||||
PdmObjectScriptabilityRegister::scriptClassNameFromClassKeyword( dataType );
|
||||
PdmObjectScriptingCapabilityRegister::scriptClassNameFromClassKeyword( dataType );
|
||||
|
||||
QString commentDataType = field->xmlCapability()->isVectorField()
|
||||
? QString( "List of %1" ).arg( scriptDataType )
|
||||
@@ -262,7 +263,7 @@ QString PdmPythonGenerator::generate( PdmObjectFactory* factory ) const
|
||||
{
|
||||
bool isList = field->xmlCapability()->isVectorField();
|
||||
QString defaultValue = isList ? "[]" : "None";
|
||||
auto scriptability = field->capability<PdmFieldScriptability>();
|
||||
auto scriptability = field->capability<PdmAbstractFieldScriptingCapability>();
|
||||
auto argumentName = camelToSnakeCase( scriptability->scriptFieldName() );
|
||||
auto dataType = dataTypeString( field, false );
|
||||
if ( isList ) dataType = "List of " + dataType;
|
||||
@@ -303,7 +304,7 @@ QString PdmPythonGenerator::generate( PdmObjectFactory* factory ) const
|
||||
for ( auto it = classInheritanceStack.begin(); it != classInheritanceStack.end(); ++it )
|
||||
{
|
||||
const QString& classKeyword = *it;
|
||||
QString scriptClassName = PdmObjectScriptabilityRegister::scriptClassNameFromClassKeyword( classKeyword );
|
||||
QString scriptClassName = PdmObjectScriptingCapabilityRegister::scriptClassNameFromClassKeyword( classKeyword );
|
||||
if ( scriptClassName.isEmpty() ) scriptClassName = classKeyword;
|
||||
|
||||
if ( !classesWritten.count( scriptClassName ) )
|
||||
|
||||
Reference in New Issue
Block a user