mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 02:12:05 +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