Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion aas_core_codegen/csharp/lib/_generate_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -627,7 +627,7 @@ def _generate_interface(
arg_codes.append(Stripped(f"{arg_type} {arg_name}"))

signature_name = csharp_naming.method_name(method.name)
if len(arg_codes) > 2:
if len(arg_codes) > 1:
arg_block = ",\n".join(arg_codes)
arg_block_indented = textwrap.indent(arg_block, I)
signature_blocks.append(
Expand Down
2 changes: 1 addition & 1 deletion aas_core_codegen/golang/lib/_generate_enhancing.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ def _generate_method_delegation(
}}"""
)

arguments_definition = ",".join(
arguments_definition = "\n".join(
f"{arg_name} {arg_type}," for arg_type, arg_name in arg_types_names
)

Expand Down
2 changes: 1 addition & 1 deletion aas_core_codegen/java/lib/_generate_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -989,7 +989,7 @@ def _generate_interface(
arg_codes.append(Stripped(f"{arg_type} {arg_name}"))

signature_name = java_naming.method_name(method.name)
if len(arg_codes) > 2:
if len(arg_codes) > 1:
arg_block = ",\n".join(arg_codes)
arg_block_indented = textwrap.indent(arg_block, I)
signature_blocks.append(
Expand Down
2 changes: 1 addition & 1 deletion aas_core_codegen/typescript/lib/_generate_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -1157,7 +1157,7 @@ def _generate_interface(
arg_codes.append(Stripped(f"{arg_name}: {arg_type}"))

signature_name = typescript_naming.method_name(signature.name)
if len(arg_codes) > 2:
if len(arg_codes) > 1:
arg_block = ",\n".join(arg_codes)
signature_blocks.append(
Stripped(
Expand Down
5 changes: 5 additions & 0 deletions dev/test_data/common_meta_models/transpiled_methods.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,11 @@ def is_count_within(self, limit: int) -> bool:
"""Check that the count does not exceed :paramref:`limit`."""
return self.count <= limit

@non_mutating
def is_count_between(self, low: int, high: int) -> bool:
"""Check that the count is between :paramref:`low` and :paramref:`high`."""
return low <= self.count and self.count <= high

@non_mutating
def is_empty(self) -> bool:
"""Check that there are no texts, calling another method on ``self``."""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,40 @@ SymbolTable(
postconditions=[]),
parsed=...,
arguments_by_name=...),
Signature(
name='is_count_between',
arguments=[
Argument(
name='low',
type_annotation=PrimitiveTypeAnnotation(
a_type='INT',
parsed=...),
default=None,
mutable=False,
parsed=...),
Argument(
name='high',
type_annotation=PrimitiveTypeAnnotation(
a_type='INT',
parsed=...),
default=None,
mutable=False,
parsed=...)],
returns=PrimitiveTypeAnnotation(
a_type='BOOL',
parsed=...),
description=DescriptionOfSignature(
summary='<paragraph>Check that the count is between <ReferenceToArgument refuri="low">low</ReferenceToArgument> and <ReferenceToArgument refuri="high">high</ReferenceToArgument>.</paragraph>',
remarks=[],
arguments_by_name=[],
returns=None,
parsed=...),
contracts=Contracts(
preconditions=[],
snapshots=[],
postconditions=[]),
parsed=...,
arguments_by_name=...),
Signature(
name='is_empty',
arguments=[],
Expand Down Expand Up @@ -501,6 +535,74 @@ SymbolTable(
original_node=...),
original_node=...)""")],
arguments_by_name=...),
UnderstoodMethod(
name='is_count_between',
visibility='PUBLIC',
arguments=[
Argument(
name='low',
type_annotation=PrimitiveTypeAnnotation(
a_type='INT',
parsed=...),
default=None,
mutable=False,
parsed=...),
Argument(
name='high',
type_annotation=PrimitiveTypeAnnotation(
a_type='INT',
parsed=...),
default=None,
mutable=False,
parsed=...)],
returns=PrimitiveTypeAnnotation(
a_type='BOOL',
parsed=...),
description=DescriptionOfSignature(
summary='<paragraph>Check that the count is between <ReferenceToArgument refuri="low">low</ReferenceToArgument> and <ReferenceToArgument refuri="high">high</ReferenceToArgument>.</paragraph>',
remarks=[],
arguments_by_name=[],
returns=None,
parsed=...),
specified_for='Reference to AbstractClass Item',
contracts=Contracts(
preconditions=[],
snapshots=[],
postconditions=[]),
non_mutating=True,
parsed=...,
body=[
textwrap.dedent("""\
Return(
value=And(
values=[
Comparison(
left=Name(
identifier='low',
original_node=...),
op='LE',
right=Member(
instance=Name(
identifier='self',
original_node=...),
name='count',
original_node=...),
original_node=...),
Comparison(
left=Member(
instance=Name(
identifier='self',
original_node=...),
name='count',
original_node=...),
op='LE',
right=Name(
identifier='high',
original_node=...),
original_node=...)],
original_node=...),
original_node=...)""")],
arguments_by_name=...),
UnderstoodMethod(
name='is_empty',
visibility='PUBLIC',
Expand Down Expand Up @@ -1321,6 +1423,74 @@ SymbolTable(
original_node=...),
original_node=...)""")],
arguments_by_name=...),
UnderstoodMethod(
name='is_count_between',
visibility='PUBLIC',
arguments=[
Argument(
name='low',
type_annotation=PrimitiveTypeAnnotation(
a_type='INT',
parsed=...),
default=None,
mutable=False,
parsed=...),
Argument(
name='high',
type_annotation=PrimitiveTypeAnnotation(
a_type='INT',
parsed=...),
default=None,
mutable=False,
parsed=...)],
returns=PrimitiveTypeAnnotation(
a_type='BOOL',
parsed=...),
description=DescriptionOfSignature(
summary='<paragraph>Check that the count is between <ReferenceToArgument refuri="low">low</ReferenceToArgument> and <ReferenceToArgument refuri="high">high</ReferenceToArgument>.</paragraph>',
remarks=[],
arguments_by_name=[],
returns=None,
parsed=...),
specified_for='Reference to AbstractClass Item',
contracts=Contracts(
preconditions=[],
snapshots=[],
postconditions=[]),
non_mutating=True,
parsed=...,
body=[
textwrap.dedent("""\
Return(
value=And(
values=[
Comparison(
left=Name(
identifier='low',
original_node=...),
op='LE',
right=Member(
instance=Name(
identifier='self',
original_node=...),
name='count',
original_node=...),
original_node=...),
Comparison(
left=Member(
instance=Name(
identifier='self',
original_node=...),
name='count',
original_node=...),
op='LE',
right=Name(
identifier='high',
original_node=...),
original_node=...)],
original_node=...),
original_node=...)""")],
arguments_by_name=...),
UnderstoodMethod(
name='is_empty',
visibility='PUBLIC',
Expand Down Expand Up @@ -2139,6 +2309,74 @@ SymbolTable(
original_node=...),
original_node=...)""")],
arguments_by_name=...),
UnderstoodMethod(
name='is_count_between',
visibility='PUBLIC',
arguments=[
Argument(
name='low',
type_annotation=PrimitiveTypeAnnotation(
a_type='INT',
parsed=...),
default=None,
mutable=False,
parsed=...),
Argument(
name='high',
type_annotation=PrimitiveTypeAnnotation(
a_type='INT',
parsed=...),
default=None,
mutable=False,
parsed=...)],
returns=PrimitiveTypeAnnotation(
a_type='BOOL',
parsed=...),
description=DescriptionOfSignature(
summary='<paragraph>Check that the count is between <ReferenceToArgument refuri="low">low</ReferenceToArgument> and <ReferenceToArgument refuri="high">high</ReferenceToArgument>.</paragraph>',
remarks=[],
arguments_by_name=[],
returns=None,
parsed=...),
specified_for='Reference to AbstractClass Item',
contracts=Contracts(
preconditions=[],
snapshots=[],
postconditions=[]),
non_mutating=True,
parsed=...,
body=[
textwrap.dedent("""\
Return(
value=And(
values=[
Comparison(
left=Name(
identifier='low',
original_node=...),
op='LE',
right=Member(
instance=Name(
identifier='self',
original_node=...),
name='count',
original_node=...),
original_node=...),
Comparison(
left=Member(
instance=Name(
identifier='self',
original_node=...),
name='count',
original_node=...),
op='LE',
right=Name(
identifier='high',
original_node=...),
original_node=...)],
original_node=...),
original_node=...)""")],
arguments_by_name=...),
UnderstoodMethod(
name='is_empty',
visibility='PUBLIC',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,16 @@ class EnhancedFirst
);
}

bool IsCountBetween(
int64_t low,
int64_t high
) const override {
return instance_->IsCountBetween(
low,
high
);
}

bool IsEmpty() const override {
return instance_->IsEmpty();
}
Expand Down Expand Up @@ -310,6 +320,16 @@ class EnhancedSecond
);
}

bool IsCountBetween(
int64_t low,
int64_t high
) const override {
return instance_->IsCountBetween(
low,
high
);
}

bool IsEmpty() const override {
return instance_->IsEmpty();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,12 @@ class IItem
int64_t limit
) const = 0;

/// \brief Check that the count is between \p low and \p high.
virtual bool IsCountBetween(
int64_t low,
int64_t high
) const = 0;

/// \brief Check that there are no texts, calling another method on `self`.
virtual bool IsEmpty() const = 0;

Expand Down Expand Up @@ -231,6 +237,11 @@ class First
int64_t limit
) const override;

bool IsCountBetween(
int64_t low,
int64_t high
) const override;

bool IsEmpty() const override;

int64_t Parity() const override;
Expand Down Expand Up @@ -334,6 +345,11 @@ class Second
int64_t limit
) const override;

bool IsCountBetween(
int64_t low,
int64_t high
) const override;

bool IsEmpty() const override;

int64_t Parity() const override;
Expand Down
Loading
Loading