Interfaces and implementing them

public interface foo{
public int blah();
public interface foo2{
public int blah2()
how would I go around implementing foo and foo2

I don't think it makes sense to have "inner interfaces". You can implement foo2 as
public class A implements foo.foo2 {
  public int blah2() { return 2; }
}or both interfaces (looks funny)
public class A implements foo, foo.foo2 {
  public int blah() { return 1; }
  public int blah2() { return 2; }
}

Similar Messages

  • Best practice for Javadoc comments in both an interface and implementation

    For the Spring project I'm writing, I have interfaces with typically 1 implementation class associated with it. This is for various good reasons. So I'm trying to be very thorough with my Javadoc comments, but I realize I'm basically copying them over from interface to implementation class. Shouldn't Javadoc have a setting or be smart enough to grab the comments from my interface if the implementation class doesn't have a comment? Unless of course there is interesting information about the implementation, it's rare the 2 sets of comments would be different.

    Thanks Thomas!! Exactly what I was looking for. Here's the JavaSE 6 version of the page you provided:
    http://java.sun.com/javase/6/docs/technotes/tools/windows/javadoc.html#inheritingcomments

  • Interfaces and implementation

    My first lecture in "Programming Distributed Components" included this code listing:
    import java.util.Date;
    import java.util.Comparator;
    import java.io.*;
    public interface LogMessage
    public Date getDate();
    public String getMessage();
    public String getSource();
    public Comparator BY_DATE_DESC = new Comparator()
    public int compare(Object o1, Object o2)
    LogMessage lhs = (LogMessage) o1;
    LogMessage rhs = (LogMessage) o2;
    int dateCompare = rhs.getDate().compareTo(lhs.getDate());
    if(dateCompare == 0)//in the event that dates are equal sort by message
    {                    //note - this is still a descending sort.
    dateCompare = rhs.getMessage().compareTo(lhs.getMessage());
    return dateCompare;
    Call me stupid (please don't) but I was brought up to believe that java interfaces did not contain code implementation. Has the world gone mad or just my University lecturer? Or is it me? If the above code looks correct to you what is it that I am missing in my understanding of interfaces?
    Thanks

    I've not come across anything like this before. The
    interfaces I have seen have tended to be rather simple
    affairs consisting of simple contant declarations and
    method signatures.They usually are. Your professor is getting fancy on you. Perhaps the point is to make you question what you think you know.
    This opens up to me some other questions such as what
    limitations are placed on the use of such objects? If
    an object is a constant does that mean all its members
    are constants? Why no use of "final" in this context -
    is it already implicit in interfaces?There are no constants in Java per se. There are finals, which are variables that cannot be assigned once. A final primitve is effectively a constant and a final reference to an immutable Object (like a String) is effectively a constant (for our purposes.) All variables in interfaces are implicitly static and final.

  • BSP - Look and Feel / Theme

    Good Morning All,
    disclaimer: I checked the blogs, I checked the discussions, I checked the examples, I checked the doco - and couldn't find the answer to my question.
    Question:
    I've already seen it, but can't remember where it is, does anyone know the name of the BSP Sample/Example which comes with the WAS which has the EP6 look and feel ?
    I saw it a few weeks ago and I can't find it now and I want to study the code from it to make my app have a nicer look and feel.
    Note: I read Thomas's blog on - 'A developer's Journal Part VI
    and although that example discussed what I am interested in I couldn't see examples in the code of creating the header bar etc, maybe it's just me, but at the moment that's what I would like to achieve and to do it by example.
    So to conclude if anyone knows / can remember the name of the BSP example which has an EP6 look and feel please let me know so that I can study it for inspiration.
    Thanks very much,
    Milan.

    Hallo Milan,
    I think that you are doing good. It is always the best to follow a small mix of documentation reading and practical work. So let me tell you the minimum to get a first version working. Thereafter to can continue reading!
    Problem: we want to implement a simple link tag (in 15 minutes!) that works like this:
    <%@page language="abap"%>
    <%@extension name="htmlb" prefix="htmlb"%>
    <%@extension name="bcm06" prefix="bcm06"%>
    <htmlb:content design="design2003">
      <htmlb:page>
          <b><bcm06:simpleLink href="http://www.sap.com">
              SAP Home Page!
          </bcm06:simpleLink></b>
      </htmlb:page>
    </htmlb:content>
    In SE80 we defined a new BSP library bcm06. We define a new element simpleLink. Typical handler class name will be CL_BCM06_SIMPLELINK (just the convention we use).  As body this tag can contain other HTML and also over BSP elements (we want to just render a link around all of body). We don't worry about the rest of the checkboxes. They will become interesting later on.
    We activate the library. The workbench will detect that no handler class exists, and will generate all of the stuff we need. Now already the tag is full functional, and can be used on any BSP page. It just will not do anything.
    What was generated? The class inheritance diagram is as follow: CL_BCM06_SIMPLELINK --> CL<b>G</b>_BCM06_SIMPLELINK --> CL_BSP_ELEMENT.
    The class CL_BSP_ELEMENT is the base class, and it contains a lot of interesting functionality. None of which we worry about now. Never try to change it!
    The class CL<b>G</b>_BCM06_SIMPLELINK (note that CLG<b></b>_!) is generated new each and everytime that you touch the definition of the tag. Effectively all the defined attributes are generated onto this class, so that they are already of the correct type, and that this information is always in sync. This means that all your tag defined attributes are directly attributes on your class. In our case, the defined "href" attribute (type string) is now an attribute on the CLG class.
    The last class CL_BCM06_SIMPLELINK will only be generated once if it does not exist. This is the class where you work. In this class there are two methods that are interesting to you at this moment. Later you will learn about the rest.
    DO_AT_BEGINNING: This method is called effectively in response to the <lib:tag> sequence. This is the code that executes before the body. This is the place where we would like to render out "<a href=...>" sequence.
    DO_AT_END: This method is called effectively at the end of the tag, when the </lib:tag> is seen. The body has now already been processed and sent onto the output stream. So we only need to render "</a>".
    Note that these methods are implemented empty. You <b><u>*MUST*</u></b> overwrite them, and implement them in your class. See instructions from Thomas. Source code:
    <b>METHOD if_bsp_element~do_at_beginning.</b>
      DATA: html TYPE string.
      CONCATENATE `<a href="` me->href `">` INTO html.
      me->print_string( html ).
      rc = co_element_continue.
    ENDMETHOD.
    <b>METHOD if_bsp_element~do_at_end.</b>
      me->print_string( `</a>` ).
      rc = co_page_continue.
    ENDMETHOD.
    Notice that you DO NOT need that super call. The base method will always be empty (from definition, will never change). You also have a direct PRINT_STRING method in newer SPs. The return code you must set. (To tell the truth, the constants for RC have been picked so perfectly that if you forget them, it should not hurt in 85% of the cases.)
    That is it. Test page. Mine worked!
    Of course, we can start looking at more exotic things, like empty tags, at tags that skip their bodies if not required, processing the body, validation, etc.
    But this overview was just to give you that first success feeling, and also to give you a better framework for understanding more of the documentation as you continue to read.
    Recommended: read <a href="/people/brian.mckellar/blog/2004/06/11/bsp-trouble-shooting-getting-help">Getting Help</a> to see how you can quickly navigate between BSP page and a tag's definition, from where you also quickly get to the implementation class of the tag.
    bye, brian
    PS: Now if this is not already the first page of your weblog done

  • How to find and implement badi's

    hello can any one tell me how to find badi's for a transaction and implement them if any one can show with example will be helpful if any of standard transaction for sd ,
    regards
    afzal

    Hi,
    Just copy and paste this code in editor and execute it.
    Then give your Transaction coe it will displays all user exits Regrading your T.Code.
    *&  Enter the transaction code that you want to search through in order
    *&  to find which Standard SAP User Exits exists.
    *& Tables
    TABLES : tstc,     "SAP Transaction Codes
             tadir,    "Directory of Repository Objects
             modsapt,  "SAP Enhancements - Short Texts
             modact,   "Modifications
             trdir,    "System table TRDIR
             tfdir,    "Function Module
             enlfdir,  "Additional Attributes for Function Modules
             tstct.    "Transaction Code Texts
    *& Variables
    DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
    DATA : field1(30).
    DATA : v_devclass LIKE tadir-devclass.
    *& Selection Screen Parameters
    SELECTION-SCREEN BEGIN OF BLOCK a01 WITH FRAME TITLE text-001.
    SELECTION-SCREEN SKIP.
    PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN END OF BLOCK a01.
    *& Start of main program
    START-OF-SELECTION.
    * Validate Transaction Code
      SELECT SINGLE * FROM tstc
        WHERE tcode EQ p_tcode.
    * Find Repository Objects for transaction code
      IF sy-subrc EQ 0.
        SELECT SINGLE * FROM tadir
           WHERE pgmid    = 'R3TR'
             AND object   = 'PROG'
             AND obj_name = tstc-pgmna.
        MOVE : tadir-devclass TO v_devclass.
        IF sy-subrc NE 0.
          SELECT SINGLE * FROM trdir
             WHERE name = tstc-pgmna.
          IF trdir-subc EQ 'F'.
            SELECT SINGLE * FROM tfdir
              WHERE pname = tstc-pgmna.
            SELECT SINGLE * FROM enlfdir
              WHERE funcname = tfdir-funcname.
            SELECT SINGLE * FROM tadir
              WHERE pgmid    = 'R3TR'
                AND object   = 'FUGR'
                AND obj_name = enlfdir-area.
            MOVE : tadir-devclass TO v_devclass.
          ENDIF.
        ENDIF.
    * Find SAP Modifactions
        SELECT * FROM tadir
          INTO TABLE jtab
          WHERE pgmid    = 'R3TR'
            AND object   = 'SMOD'
            AND devclass = v_devclass.
        SELECT SINGLE * FROM tstct
          WHERE sprsl EQ sy-langu
            AND tcode EQ p_tcode.
        FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
        WRITE:/(19) 'Transaction Code - ',
        20(20) p_tcode,
        45(50) tstct-ttext.
        SKIP.
        IF NOT jtab[] IS INITIAL.
          WRITE:/(95) sy-uline.
          FORMAT COLOR COL_HEADING INTENSIFIED ON.
          WRITE:/1 sy-vline,
          2 'Exit Name',
          21 sy-vline ,
          22 'Description',
          95 sy-vline.
          WRITE:/(95) sy-uline.
          LOOP AT jtab.
            SELECT SINGLE * FROM modsapt
            WHERE sprsl = sy-langu AND
            name = jtab-obj_name.
            FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
            WRITE:/1 sy-vline,
            2 jtab-obj_name HOTSPOT ON,
            21 sy-vline ,
            22 modsapt-modtext,
            95 sy-vline.
          ENDLOOP.
          WRITE:/(95) sy-uline.
          DESCRIBE TABLE jtab.
          SKIP.
          FORMAT COLOR COL_TOTAL INTENSIFIED ON.
          WRITE:/ 'No of Exits:' , sy-tfill.
        ELSE.
          FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
          WRITE:/(95) 'No User Exit exists'.
        ENDIF.
      ELSE.
        FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
        WRITE:/(95) 'Transaction Code Does Not Exist'.
      ENDIF.
    * Take the user to SMOD for the Exit that was selected.
    AT LINE-SELECTION.
      GET CURSOR FIELD field1.
      CHECK field1(4) EQ 'JTAB'.
      SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
      CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
    Thanks,
    Reward If Helpful.

  • HT5527 How do I retrieve documents stored in iCloud and bring them back to my computer?

    How do I retrieve documents stored in iCloud and bring them back to my computer?

    You can select them in the iCloud Web interface and download them to your Mac. You can do that by right-clicking, or by clicking on the Gear menu in the upper right of the window.

  • Concrete classes implement abstract class and implements the interface

    I have one query..
    In java collection framework, concrete classes extend the abstract classes and implement the interface. What is the reason behind extending the class and implementing the interface when the abstract class actually claims to implement that interface?
    For example :
    Class Vector extends AbstractList and implements List ,....
    But the abstract class AbstractList implements List.. So the class Vector need not explicitly implement interface List.
    So, what is the reason behind this explicit definition...?
    If anybody knows please let me know..
    Thanx
    Rajendra.

    Why do you post this question again? You already asked this once in another thread and it has been extensively debated in that thread: http://forum.java.sun.com/thread.jsp?forum=31&thread=347682

  • Implementing SingleThradModel interface and synchronizing service

    Hi all,
    I came across the one question.
    What is difference between the implementing SingleThradModel interface and synchronizing service method in the Servlet?
    Which one is the better one? and why?
    It seems to be same for me... but still confused?
    Please explain me.
    Thanks,
    Rahul

    No one is better. Just write threadsafe code. E.g. do not declare instance variables which are to be used per request. Just keep in mind that only one instance of the Servlet will be created which lives as long as the webapplication runs and that it will be reused among all requests. Keep request scoped variables inside the method block and you're safe.

  • Question about throws exception in interface and realized class

    Hi,all
    If I define a method In the interface like that-
    public void Execute() throws NumberFormatException; In the realized class, I can define this method like that-
    public void Execute() throws RuntimeException{
            System.out.println("test");       
    }This is a right realization. But if I manage it to throws Exception or to throws Throwable in the class it leads a error. Why add this restrict only to Exception? What is the purpose of this way?
    Greetings and thanks,
    Jason

    When you say "throws NumberFormatException" you are really saying:
    When using classes implementing this interface, you have to be prepared to deal with them throwing a NumberFormatException. Other exceptions won't happen.
    When you come to implement it, it might not be possible for it to throw a NumberFormatException, so there's no reason why you should have to lie about that. Code handling it directly will be fine (it doesn't throw a NFE) and code handling it via the interface will be fine (it will handle NFEs, they just don't happen).
    If your concrete implementation throws other sorts of exception, such as Exception or IOException, and so on, it's incompatible with code that's manipulating the interface. The interface says "NFEs might get thrown, nothing else will." while your implementation says "IOExceptions might get thrown".
    So that explains why you can't use arbitrary exceptions. The special case is RuntimeException. RuntimeExceptions don't have to be caught, and it's expected that they can happen at any time - so there's no point trying to catch and handle them as a general case.
    The classic example of a RuntimeException is a NullPointerException. You don't need to declare your method as throwing a NullPointerException even though it might get thrown. And you don't have to add NullPointerException to the throws part of the interface definition, because you already know that the concrete implementation could throw a NPE at any time.
    Hope that helps (a little).
    I'd recommend reading the API documentation on RuntimeException and Exception to get a clearer insight into this.
    Dave.

  • Need information about interfaces and namespaces in actionscript 3.0

    Hi,
    I need information about actionscript interfaces and
    namespaces, I'm preparing for ACE for Flash CS3 and I need to learn
    about this subjects and I can not find resources or simple examples
    that make these subjects understandable.
    Anybody can help me!
    Thanks a lot.

    Interfaces (cont.)
    Perhaps the most useful feature of interfaces is that you not
    only can define the data type but also method signature of the
    class that implements this interface. In other words, interface can
    define and enforce what methods class MUST implement. This is very
    useful when classes are branching in packages and team of
    developers works on a large application among others.
    The general syntax for an Interface with method signatures is
    written the following way:
    package{
    public interface InterfaceName {
    // here we specify the methods that will heave to be
    implemented
    function method1 (var1:dataType,
    var2:datType,…):returnType;
    function method2 (var1:dataType,
    var2:datType,…):returnType;
    To the previous example:
    package{
    public interface IQualified {
    function method1 ():void;
    function method2 ():int;
    Let’s write a class that implements it.
    If I just write:
    package{
    public class ClassOne extends DisplayObject implements
    IQualified {
    public function ClassOne(){}
    I will get a compilation error that states that I did not
    implement required by the interface methods.
    Now let’s implement only one method:
    package{
    public class ClassOne extends DisplayObject implements
    IQualified {
    private function method1():void{
    return;
    public function ClassOne(){}
    I will get the error again because I implemented only one out
    of two required methods.
    Now let’s implement all of them:
    package{
    public class ClassOne extends DisplayObject implements
    IQualified {
    private function method1():void{
    return;
    private function method2():int{
    return 4;
    public function ClassOne(){}
    Now everything works OK.
    Now let’s screw with return datatypes. I attempt to
    return String instead of void in method1 in ClassOne:
    private function method1():String{
    return “blah”;
    I am getting an error again – Interface requires that
    the method1 returns void.
    Now let’s attempt to pass something into the method1:
    private function method1(obj:MovieClip):void{
    return;
    Oops! An error again. Interface specified that the function
    doesn’t accept any parameters.
    Now rewrite the interface:
    package{
    public interface IQualified {
    function method1 (obj:MovieClip):void;
    function method2 ():int;
    Now compiler stops complaining.
    But, if we revert the class back to:
    private function method1():void{
    return;
    compiler starts complaining again because we don’t pass
    any parameters into the function.
    The point is that interface is sort of a set of rules. In a
    simple language, if it is stated:
    public class ClassOne implements IQualified
    it says: “I, class ClassOne, pledge to abide by all the
    rules that IQualified has established and I will not function
    correctly if I fail to do so in any way. (IMPORTANT) I can do more,
    of course, but NOT LESS.”
    Of course the class that implements an interface can have
    more that number of methods the corresponding interface requires
    – but never less.
    MORE means that in addition to any number of functions it can
    implement as many interfaces as it is desired.
    For instance, I have three interfaces:
    package{
    public interface InterfaceOne {
    function method1 ():void;
    function method2 ():int;
    package{
    public interface InterfaceTwo {
    function method3 ():void;
    package{
    public interface InterfaceThree{
    function method4 ():void;
    If our class promises to implement all three interface it
    must have all four classes in it’s signature:
    package{
    public class ClassOne extends DisplayObject implements
    InterfaceOne, InterfaceTwi, InterfaceThree{
    private function method1():void{return;}
    private function method2():int{return 4;}
    private function method3():void{return;}
    private function method4():void{return;}
    public function ClassOne(){}
    Hope it helps.

  • Interfaces and methods with complex object

    In all the examples I have, the methods of an interface use only basic java datatypes (int, Character, ..)
    I want to pass a Vector that represents a list of objects from one of my own classes to an interface method.
    class Myclass ...
    private String p1;
    private int p2;
    myInterfaceMethod(..., Vector list, ...)
    // list is a vector of Myclass objects
    How do I know about Myclass when implementing the interface and how do I access p1 and p2 ?

    You can use any kind of "complex" object in your interface methods, all of them are objects at last.
    The other question seems to be a misunderstanding of interface implementation. When u "implement" an interface in a class, all that JVM does is to check that you actualy have one method (with code inside its body) for each method you defined previously in the interface.
    Think of an interface as a contract signed by a class. It's forced to implement each method definied in you interface. So, as the method is defined inside the class, you can access any data member of the class without doing anything "special". Do u catch it?

  • Interfaces and Classpath

    Hi..
    I have this question regarding the use of interface..Since java doesnt provide multiple inheritance capability it provides the interface.. So my question is when we write down some piece of code for example
    public interface Moveable{
    \\ methods()
    }and save it as Moveable.java
    and then we implement it in a class known as Car for example... Such as
    class Car extends LandVehicle implements Moveable{Do we have to specify the classpath to make use of the Moveable file..
    I really dont understand how to set up the class path.. I studied some notes on setting up class path after learning about packages that user makes and importing them.. And i didnt understand v well..
    I am using Windows OS and if someone could help me understand the concept behind using interface as well as the classpath.. It would be really appreciated..

    I really dont understand how to set up the class path..
    I studied some notes on setting up class path after learning
    about packages that user makes and importing them.. And
    i didnt understand v well..Java has big barriers to entry: it's a pain to set up the sdk on your computer, and learning how to compile programs is fairly difficult. But, it's something you need to learn, so start reading everything you can find on how to compile and execute java programs.
    Here is a sun tutorial on setting the classpath:
    http://java.sun.com/j2se/1.3/docs/tooldocs/win32/classpath.html
    If you want specific help, you have to post:
    1) The name of the file you are trying to compile and execute
    2) Any package statement in the file
    3) The full directory structure of where your file is located
    4) The prompt on the command line where you are typing your commands
    5) The command you typed in

  • Separate interfaces and classes in separate packages?

    I am writing an application in the package 'models.geometry'. I am beginning to get a growing number of interfaces with corresponding implementation classes. I therefore consider adding another packages an move all the interfaces to this package and keep the implementation in the original package:
    'models.igeometry' // for the interfaces
    'models.geometry' // for the implementation
    But is this interface/class - package separation good practice?

    First of: Usage of the prefix "I" to identify interfaces is rather rare in the Java world (it's not unheard of, but definitely not the norm). And I've never seen "i<package>" to identify a package containing interfaces, so I wouldn't suggest it.
    The question is: What does the code which uses your packages access? Does it only need the interfaces and a factory? In this case, I'd separate the packages into "models.geometry" and "models.geometry.impl".
    If the classes are first-level API, just as the interfaces (think Link/ArrayList, Map/HashMap), then I'd keep them in the same package or separate them on some other property.

  • Interfaces and final variables

    So I understand that I am not supposed to put my final variables or constants into an interface, but then where?
    I have 2 classes that implement an interface, and they both allow listerners to be added to them, through that interface. They both fire property events on the listener with the same property. Currently I just put the property id constants into one class and reference it from the other. But it appears to me the best place for the definition of these common properties is in the interface!?

    So If you read over all the postings, you'll know exactly why they say, never to create classes for the purpose of grouping constants, it is confusing.
    More explicitly, it is lazy. The reason you are grouping the constants has nothing to do with the relationship between the constants and their use within the program, you are grouping them because you are tired of typing a long declaration everytime you want to use them within the program. So, the overall design of your program is being warped by design decisions that are based on laziness.
    The reason people put them in interfaces, "public interface Globals...", is so that importing that namespace through inheritance doesn't suck up that "valuable" superclass (which I will have to remember to rant about on some other thread). It is probably the case that the most efficient way to do this is to use static getters: getPI(), getOrigin(), getNewYears(), whatever. You will see an awful lot of constants that have been replaced over the years with getters. As the code matures, it isn't peculiar to see the flexibility of the programme being reduced or impeded by the constraints and constants implicit in the codesbase.
    Andrew

  • Interface and adapter??

    could anyone tell me how to choose between using an interface and adapter for an event handler??

    > could anyone tell me how to choose between using an
    interface and adapter for an event handler??
    Example from the KeyAdapter API:
    "Extend this class to create a KeyEvent listener and override the methods for the events of interest. (If you implement the KeyListener interface, you have to define all of the methods in it. This abstract class defines null methods for them all, so you can only have to define methods for events you care about.) "
    It's an extremely important skill to learn to read the API and become familiar with the tools you will use to program Java. Java has an extensive set of documentation that you can even download for your convenience. These "javadocs" are indexed and categorized so you can quickly look up any class or method. Take the time to consult this resource whenever you have a question - you'll find they typically contain very detailed descriptions and possibly some code examples.
    Java� API Specifications
    Java� 1.5 JDK Javadocs

Maybe you are looking for

  • Error reading from file glibc-2.5-24.i686.rpm RHEL 5 Setup stuck at 80%

    Hi, I am installing Oracle 10g on RHEL 5 (Red Hat Enterprise Linux 5) machine I am facing two problems 1) while installing the rpm packages the following package gave an error Error reading from file glibc-2.5-24.i686.rpm 2) I still gave a try to run

  • Processing messages in Scheduled state

    hello all.. my scenarios of FTP to RFC and FTP to IDOCS are all configured but when executing it, the file is "deleted"...(since i keep the status delete)... but in my sxmb_moni transaction it always shows me scheduled(green flag)... and the Q-status

  • Some Tabs not updating when selecting a link or entering data fields

    This is weird, and it's been happening for at least months. It did it in Firefox 6x, and upgrading to Firefox 7x did not help. A lot of times when I click a link in a tab, Firefox looks like it is going to go to the link, but it doesn't. The same pag

  • Table /dvsrepro/sepdol not present in ECC 6.0

    Hi, We are planning an upgrade from 4.6C to ECC 6.0. However while doing a preliminary study of ECC 6.0, we find that table /dvsrepro/sepdol, which is present in 4.6C is not present in ECC 6.0. We are using this table to print the output of batch job

  • How to find the date when object is moved from quality to production server

    Hi Experts, I am working with BADI ZMM_PUR_REQ_PROC_001-Method Check and BADI ZME_PROCESS_PO_CUST-Method Check. I need to add a check that a particular logic should be implemented only after this object is moved to the production server. How can i ch