Skip to content

Latest commit

 

History

History
64 lines (48 loc) · 1.99 KB

constants-interface.md

File metadata and controls

64 lines (48 loc) · 1.99 KB

code pal for ABAP > Documentation > Constants Interface Check

Constants Interface Check

What is the intent of the check?

This check is meant to prevent the creation of interfaces whose sole purpose is to define constants. You should usually prefer enumeration classes to interfaces that only declare constants.

How does the check work?

The check searches for interfaces containing only constants.

How to solve the issue?

Use enumeration classes instead.

What to do in case of exception?

In exceptional cases, you can suppress this finding by using the pseudo comment "#EC CONS_INTF which should be placed right after the class definition header:

INTERFACE interface_name.   "#EC CONS_INTF
    CONSTANTS two TYPE i VALUE 2.
ENDINTERFACE.

Example

Before the check:

INTERFACE /dirty/message_severity.
  CONSTANTS:
    error        TYPE symsgty VALUE 'E',
    warning      TYPE symsgty VALUE 'W', 
    notification TYPE symsgty VALUE 'N'.
ENDINTERFACE.

After the check:

CLASS /clean/message_severity DEFINITION PUBLIC ABSTRACT FINAL.
  PUBLIC SECTION.
    CONSTANTS:
       error        TYPE symsgty VALUE 'E',
       warning      TYPE symsgty VALUE 'W', 
       notification TYPE symsgty VALUE 'N'.
ENDCLASS.

or

CLASS /clean/message_severity DEFINITION PUBLIC CREATE PRIVATE FINAL.
  PUBLIC SECTION.
    CLASS-DATA:
      error        TYPE REF TO /clean/message_severity READ-ONLY,
      warning      TYPE REF TO /clean/message_severity READ-ONLY,
      notification TYPE REF TO /clean/message_severity READ-ONLY.
  " ...
ENDCLASS.

Further Readings & Knowledge