mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 07:56:15 +08:00
add collection classes (#883)
* add collection classes first step of #880 * pp
This commit is contained in:
parent
74345edd32
commit
d80521c747
84
src/zcl_excel_collection.clas.abap
Normal file
84
src/zcl_excel_collection.clas.abap
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
CLASS zcl_excel_collection DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
FINAL
|
||||||
|
CREATE PUBLIC .
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
ty_collection TYPE STANDARD TABLE OF REF TO object .
|
||||||
|
|
||||||
|
DATA collection TYPE ty_collection READ-ONLY .
|
||||||
|
|
||||||
|
METHODS size
|
||||||
|
RETURNING
|
||||||
|
VALUE(size) TYPE i .
|
||||||
|
METHODS is_empty
|
||||||
|
RETURNING
|
||||||
|
VALUE(is_empty) TYPE abap_bool .
|
||||||
|
METHODS get
|
||||||
|
IMPORTING
|
||||||
|
!index TYPE i
|
||||||
|
RETURNING
|
||||||
|
VALUE(object) TYPE REF TO object .
|
||||||
|
METHODS get_iterator
|
||||||
|
RETURNING
|
||||||
|
VALUE(iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
|
METHODS add
|
||||||
|
IMPORTING
|
||||||
|
!element TYPE REF TO object .
|
||||||
|
METHODS remove
|
||||||
|
IMPORTING
|
||||||
|
!element TYPE REF TO object .
|
||||||
|
METHODS clear .
|
||||||
|
PROTECTED SECTION.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS ZCL_EXCEL_COLLECTION IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD add .
|
||||||
|
APPEND element TO collection.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD clear .
|
||||||
|
CLEAR collection.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get .
|
||||||
|
READ TABLE collection INDEX index INTO object.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_iterator .
|
||||||
|
CREATE OBJECT iterator
|
||||||
|
EXPORTING
|
||||||
|
collection = me.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD is_empty.
|
||||||
|
is_empty = boolc( size( ) = 0 ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD remove .
|
||||||
|
DATA obj TYPE REF TO object.
|
||||||
|
LOOP AT collection INTO obj.
|
||||||
|
IF obj = element.
|
||||||
|
DELETE collection.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
ENDLOOP.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD size.
|
||||||
|
size = lines( collection ).
|
||||||
|
ENDMETHOD.
|
||||||
|
ENDCLASS.
|
37
src/zcl_excel_collection.clas.testclasses.abap
Normal file
37
src/zcl_excel_collection.clas.testclasses.abap
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
CLASS ltcl_test DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
METHODS test01 FOR TESTING RAISING cx_static_check.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
CLASS ltcl_test IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD test01.
|
||||||
|
|
||||||
|
DATA lo_collection TYPE REF TO zcl_excel_collection.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_collection.
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lo_collection->size( )
|
||||||
|
exp = 0 ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lo_collection->is_empty( )
|
||||||
|
exp = abap_true ).
|
||||||
|
|
||||||
|
* heh, yea, add the collection to itself :)
|
||||||
|
lo_collection->add( lo_collection ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lo_collection->size( )
|
||||||
|
exp = 1 ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lo_collection->is_empty( )
|
||||||
|
exp = abap_false ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
17
src/zcl_excel_collection.clas.xml
Normal file
17
src/zcl_excel_collection.clas.xml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_EXCEL_COLLECTION</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>abap2xlsx - Object Collection</DESCRIPT>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
52
src/zcl_excel_collection_iterator.clas.abap
Normal file
52
src/zcl_excel_collection_iterator.clas.abap
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
CLASS zcl_excel_collection_iterator DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
FINAL
|
||||||
|
CREATE PUBLIC .
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
METHODS get_index
|
||||||
|
RETURNING
|
||||||
|
VALUE(index) TYPE i.
|
||||||
|
METHODS has_next
|
||||||
|
RETURNING
|
||||||
|
VALUE(has_next) TYPE abap_bool.
|
||||||
|
METHODS get_next
|
||||||
|
RETURNING
|
||||||
|
VALUE(object) TYPE REF TO object.
|
||||||
|
METHODS constructor
|
||||||
|
IMPORTING
|
||||||
|
collection TYPE REF TO zCL_excel_COLLECTION.
|
||||||
|
PROTECTED SECTION.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
DATA index TYPE i VALUE 0.
|
||||||
|
DATA collection TYPE REF TO zcl_excel_collection.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS ZCL_EXCEL_COLLECTION_ITERATOR IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD constructor .
|
||||||
|
me->collection = collection.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_index .
|
||||||
|
index = me->index.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_next .
|
||||||
|
DATA obj TYPE REF TO object.
|
||||||
|
index = index + 1.
|
||||||
|
object = collection->get( index ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD has_next.
|
||||||
|
DATA obj TYPE REF TO object.
|
||||||
|
obj = collection->get( index + 1 ).
|
||||||
|
has_next = boolc( obj IS NOT INITIAL ).
|
||||||
|
ENDMETHOD.
|
||||||
|
ENDCLASS.
|
16
src/zcl_excel_collection_iterator.clas.xml
Normal file
16
src/zcl_excel_collection_iterator.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_EXCEL_COLLECTION_ITERATOR</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>abap2xlsx - Object Iterator</DESCRIPT>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
Loading…
Reference in New Issue
Block a user