mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-28 03:05:33 +00:00
Update codegen
This commit is contained in:
@@ -119,7 +119,7 @@ class Implementation(codegen.Base):
|
|||||||
null_check = ""
|
null_check = ""
|
||||||
if arg["is_optional"]:
|
if arg["is_optional"]:
|
||||||
attr_check = (
|
attr_check = (
|
||||||
"if(data_.get_attribute_value(%d).isNull()) { return %%s; }"
|
"if(get_attribute_value(%d).isNull()) { return %%s; }"
|
||||||
% (arg["index"] - 1,)
|
% (arg["index"] - 1,)
|
||||||
)
|
)
|
||||||
if "boost::optional" in arg["full_type"]:
|
if "boost::optional" in arg["full_type"]:
|
||||||
@@ -246,9 +246,9 @@ class Implementation(codegen.Base):
|
|||||||
)
|
)
|
||||||
|
|
||||||
superclass_num_attrs = (
|
superclass_num_attrs = (
|
||||||
"%s(IfcEntityInstanceData(storage_t(%%d)))" % type.supertypes[0]
|
"%s(IfcEntityInstanceData(in_memory_attribute_storage(%%d)))" % type.supertypes[0]
|
||||||
if len(type.supertypes) == 1
|
if len(type.supertypes) == 1
|
||||||
else "IfcUtil::IfcBaseEntity(IfcEntityInstanceData(storage_t(%d)))"
|
else "IfcUtil::IfcBaseEntity(IfcEntityInstanceData(in_memory_attribute_storage(%d)))"
|
||||||
) % len(constructor_arguments)
|
) % len(constructor_arguments)
|
||||||
|
|
||||||
write(
|
write(
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ public:
|
|||||||
|
|
||||||
simpletype_impl_comment = "// Function implementations for %(name)s"
|
simpletype_impl_comment = "// Function implementations for %(name)s"
|
||||||
simpletype_impl_argument_type = 'if (i == 0) { return %(attr_type)s; } else { throw IfcParse::IfcAttributeOutOfRangeException("Argument index out of range"); }'
|
simpletype_impl_argument_type = 'if (i == 0) { return %(attr_type)s; } else { throw IfcParse::IfcAttributeOutOfRangeException("Argument index out of range"); }'
|
||||||
simpletype_impl_argument = "return data_.get_attribute_value(i);"
|
simpletype_impl_argument = "return get_attribute_value(i);"
|
||||||
simpletype_impl_is_with_supertype = "return v == %(class_name)s_type || %(superclass)s::is(v);"
|
simpletype_impl_is_with_supertype = "return v == %(class_name)s_type || %(superclass)s::is(v);"
|
||||||
simpletype_impl_is_without_supertype = "return v == %(class_name)s_type;"
|
simpletype_impl_is_without_supertype = "return v == %(class_name)s_type;"
|
||||||
simpletype_impl_type = "return *((IfcParse::type_declaration*)%(schema_name_upper)s_types[%(index_in_schema)d]);"
|
simpletype_impl_type = "return *((IfcParse::type_declaration*)%(schema_name_upper)s_types[%(index_in_schema)d]);"
|
||||||
@@ -130,9 +130,9 @@ simpletype_impl_constructor = (
|
|||||||
"data_ = new IfcEntityInstanceData(%(schema_name_upper)s_types[%(index_in_schema)d]); set_attribute_value(0, v);"
|
"data_ = new IfcEntityInstanceData(%(schema_name_upper)s_types[%(index_in_schema)d]); set_attribute_value(0, v);"
|
||||||
)
|
)
|
||||||
simpletype_impl_constructor_templated = "data_ = new IfcEntityInstanceData(%(schema_name_upper)s_types[%(index_in_schema)d]); set_attribute_value(0, v->generalize());"
|
simpletype_impl_constructor_templated = "data_ = new IfcEntityInstanceData(%(schema_name_upper)s_types[%(index_in_schema)d]); set_attribute_value(0, v->generalize());"
|
||||||
simpletype_impl_cast = "return data_.get_attribute_value(0);"
|
simpletype_impl_cast = "return get_attribute_value(0);"
|
||||||
simpletype_impl_cast_templated = (
|
simpletype_impl_cast_templated = (
|
||||||
"aggregate_of_instance::ptr es = data_.get_attribute_value(0); return es->as< %(underlying_type)s >();"
|
"aggregate_of_instance::ptr es = get_attribute_value(0); return es->as< %(underlying_type)s >();"
|
||||||
)
|
)
|
||||||
simpletype_impl_declaration = "return *((IfcParse::type_declaration*)%(schema_name_upper)s_types[%(index_in_schema)d]);"
|
simpletype_impl_declaration = "return *((IfcParse::type_declaration*)%(schema_name_upper)s_types[%(index_in_schema)d]);"
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ const char* %(schema_name)s::%(name)s::ToString(Value v) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
%(schema_name)s::%(name)s::operator %(schema_name)s::%(name)s::Value() const {
|
%(schema_name)s::%(name)s::operator %(schema_name)s::%(name)s::Value() const {
|
||||||
return (%(schema_name)s::%(name)s::Value) data_.storage_.get<EnumerationReference>(0).index();
|
return (%(schema_name)s::%(name)s::Value) ((EnumerationReference) get_attribute_value(0)).index();
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@@ -245,13 +245,13 @@ parent_type_stmt = " if(v==%(name)s%(padding)s) { return %(parent)s; }"
|
|||||||
|
|
||||||
parent_type_test = " || %s::is(v)"
|
parent_type_test = " || %s::is(v)"
|
||||||
|
|
||||||
optional_attr_stmt = "return !data_.get_attribute_value(%(index)d).isNull();"
|
optional_attr_stmt = "return !get_attribute_value(%(index)d).isNull();"
|
||||||
|
|
||||||
get_attr_stmt = "%(null_check)s %(non_optional_type)s v = data_.get_attribute_value(%(index)d); return v;"
|
get_attr_stmt = "%(null_check)s %(non_optional_type)s v = get_attribute_value(%(index)d); return v;"
|
||||||
get_attr_stmt_enum = "%(null_check)s return %(non_optional_type)s::FromString(data_.get_attribute_value(%(index)d));"
|
get_attr_stmt_enum = "%(null_check)s return %(non_optional_type)s::FromString(get_attribute_value(%(index)d));"
|
||||||
get_attr_stmt_entity = "%(null_check)s return ((IfcUtil::IfcBaseClass*)(data_.get_attribute_value(%(index)d)))->as<%(non_optional_type_no_pointer)s>(true);"
|
get_attr_stmt_entity = "%(null_check)s return ((IfcUtil::IfcBaseClass*)(get_attribute_value(%(index)d)))->as<%(non_optional_type_no_pointer)s>(true);"
|
||||||
get_attr_stmt_array = "%(null_check)s aggregate_of_instance::ptr es = data_.get_attribute_value(%(index)d); return es->as< %(list_instance_type)s >();"
|
get_attr_stmt_array = "%(null_check)s aggregate_of_instance::ptr es = get_attribute_value(%(index)d); return es->as< %(list_instance_type)s >();"
|
||||||
get_attr_stmt_nested_array = "%(null_check)s aggregate_of_aggregate_of_instance::ptr es = data_.get_attribute_value(%(index)d); return es->as< %(list_instance_type)s >();"
|
get_attr_stmt_nested_array = "%(null_check)s aggregate_of_aggregate_of_instance::ptr es = get_attribute_value(%(index)d); return es->as< %(list_instance_type)s >();"
|
||||||
|
|
||||||
get_inverse = "if (!file_) { return nullptr; } return file_->getInverse(id_, %(schema_name_upper)s_types[%(type_index)d], %(index)d)->as<%(type)s>();"
|
get_inverse = "if (!file_) { return nullptr; } return file_->getInverse(id_, %(schema_name_upper)s_types[%(type_index)d], %(index)d)->as<%(type)s>();"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user