Interface method Signature...

Hi all,
Is there any Function Module that can be used to modify
the signature of a method in an interface from code??
I want to write a FM that imports the interface and
method name and changes the method signature..
Pls Help.
Thanks in advance.

Here is a sample program which will give you thep signature of the class/methods.    I'm not sure how to update them, or if it is a good idea to do so.
report zrich_0003.
data: l_dref  type ref to cl_abap_typedescr.
data: l_clref  type ref to cl_abap_classdescr.
data: x_methods type abap_methdescr.
data: x_parameters type abap_parmdescr.
constants: query_class type seoclsname
                    value 'CL_GUI_ALV_GRID'.
* check if query_class exists in the current system
call method cl_abap_classdescr=>describe_by_name
  exporting
    p_name         = query_class
  receiving
      p_descr_ref = l_dref
  exceptions
    type_not_found = 1
    others         = 2.
if sy-subrc <> 0.
  exit.
endif.
l_clref ?= l_dref.
loop at l_clref->methods into x_methods.
  write:/ x_methods-name.
  loop at x_methods-parameters into x_parameters.
    write:/     x_parameters-length,
        x_parameters-decimals,
        x_parameters-type_kind,
        x_parameters-name,
        x_parameters-parm_kind     .
  endloop.
  skip 3.
endloop.
Regards,
Rich Heilman

Similar Messages

  • [b]Two Interfaces with same method signature[/b]

    Hi,
    I am having 2 interfaces which does have same method signature and
    return type. In such case a class that implements these intefaces and overide
    the method . In such case which method will execute . The method of class A or
    class B otherwise one will be ignored by the JVM and other will be executed or
    not???
    For eg,
    interface A
    public void getData();
    interface B
    public void getData();
    class InterfaceTest implements A,B
    public void getData()
    System.out.println("Inside the getData()");
    public static void main(String args[])
    InterfaceTest interTest=new InterfaceTest();
    interTest.getData(); // Which method will execute Class A or B.
    Please do provide an answer for this. I will be waiting for ur reply...
    Thanks,
    M.Ananthu

    there is but one implementation, so why bother ?
    what's more, you're talking about "class A" and "class B" when you defined A and B as interfaces
    seems blurry in your mind...

  • Problems deploying application with updated method signatures on WLS8.1

    Hi,
    I have an jar file under applications which I have deployed fine on WLS 8.1 in the past. I changed the method signature on one of the EJB classes in the jar. One of the parameters now takes a different Java class type. I have recompiled everyone and repackaged the jar but when I try to deploy the jar it gives me an error because the the local interface of the EJB does not have the old Java class parameter type.
    I have checked the jar, classes in the jar, and the ejb-jar.xml and weblogic-ejb-jar.xml in the jar and it is looks fine. I have cleaned out my server deployment directories and verified the classpath in case the older jar was in there and everything looks OK. It seems for some reason 8.1 is caching the old ejb-jar.xml or somehow is remembering the old method signature and will not process the updated jar. Has anyone seen anything like this?
    Thanks for any help or recommendations

    Can you show me the error you receive?
    Another simple test would be to deploy your application to a new, empty
    server.
    You can create a new domain as easy as this:
    mkdir testDomain;
    cd testDomain;
    java weblogic.Server
    Type in the username/password that you want and answer 'Yes' when it
    asks if you want to create a new domain.
    Try deploying your jar to this new domain, and let me know if it still
    fails.
    -- Rob
    Jeff Dooley wrote:
    Hi,
    I have an jar file under applications which I have deployed fine on WLS 8.1 in the past. I changed the method signature on one of the EJB classes in the jar. One of the parameters now takes a different Java class type. I have recompiled everyone and repackaged the jar but when I try to deploy the jar it gives me an error because the the local interface of the EJB does not have the old Java class parameter type.
    I have checked the jar, classes in the jar, and the ejb-jar.xml and weblogic-ejb-jar.xml in the jar and it is looks fine. I have cleaned out my server deployment directories and verified the classpath in case the older jar was in there and everything looks OK. It seems for some reason 8.1 is caching the old ejb-jar.xml or somehow is remembering the old method signature and will not process the updated jar. Has anyone seen anything like this?
    Thanks for any help or recommendations

  • Changing exception clause in method signature when overwriting a method

    Hi,
    I stumbled upon a situation by accident and am not really clear on the details surrounding it. A short description:
    Say there is some API with interfaces Foo and Bar as follows:
    public interface Foo {
       void test() throws Exception;
    public interface Bar extends Foo {
       void test();
    }Now, I find it strange that method test() for interface Bar does not need to define Exception in its throws clause. When I first started with Java I was using Java 1.4.2; I now use Java 1.6. I cannot remember ever reading about this before and I have been unable to find an explanation or tutorial on how (or why) this works.
    Consider a more practical example:
    Say there is an API that uses RMI and defines interfaces as follwows:
    public interface RemoteHelper extends Remote {
       public Object select(int uid) throws RemoteException;
    public interface LocalHelper extends RemoteHelper {
       public Object select(int uid);
    }As per the RMI spec every method defined in a Remote interface must define RemoteException in its throws clause. The LocalHelper cannot be exported remotely (this will fail at runtime due to select() in LocalHelper not having RemoteException in its clause if I remember correctly).
    However, an implementing class for LocalHelper could represent a wrapper class for RemoteHelper, like this:
    public class Helper implements LocalHelper {
       private final RemoteHelper helper;
       public Helper(RemoteHelper helper) {
          this.helper = helper;
       public Object select(int id) {
          try {
             return (this.helper.select(id));
          } catch(RemoteException e) {
             // invoke app failure mechanism
    }This can uncouple an app from RMI dependancy. In more practical words: consider a webapp that contains two Servlets: a "startup" servlet and an "invocation" servlet. The startup servlet does nothing (always returns Method Not Allowed, default behaviour of HttpServlet), except locate an RMI Registry upon startup and look up some object bound to it. It can then make this object accessible to other classes through whatever means (i.e. a singleton Engine class).
    The invocation servlet does nothing upon startup, but simply calls some method on the previously acquired remote object. However, the invocation servlet does not need to know that the object is remote. Therefore, if the startup servlet wraps the remote object in another object (using the idea described before) then the invocation servlet is effectively removed from the RMI dependancy. The wrapper class can invoke some sort of failure mechanism upon the singleton engine (i.e. removing the remote object from memory) and optionally throw some other (optionally checked) exception (i.e. IllegalStateException) to the invocation servlet.
    In this way, the invocation servlet is not bound to RMI, there can be a single point where RemoteExceptions are handled and an unchecked exception (i.e. IllegalStateException) can be handled by the Servlet API through an exception error page, displaying a "Service Unavailable" message.
    Sorry for all this extensive text; I just typed out some thoughts. In short, my question is how and why can the throws clause change when overwriting a method? It's nothing I need though, except for the clarity (e.g. is this a bad practice to do?) and was more of an observation than a question.
    PS: Unless I'm mistaken, this is basically called the "Adapter" or "Bridge" (not sure which one it is) pattern (or a close adaptation to it) right (where one class is written to provide access to another class where the method signature is different)?
    Thanks for reading,
    Yuthura

    Yuthura wrote:
    I know it may throw any checked exception, but I'm pretty certain that an interface that extends java.rmi.Remote must include at least java.rmi.RemoteException in its throws clause (unless the spec has changed in Java 1.5/1.6).No.
    A method can always throw fewer exceptions than the one it's overriding. RMI has nothing to do with it.
    See Deitel & Deilte Advanced Java 2 Platform How To Program, 1st Ed. (ISBN 0-13-089650-1), page 793 (sorry, I couldn't find the RMI spec quick enough). Quote: "Each method in a Remote interface must have a throws clause that indicates that the method can throw RemoteException".Which means that there's always a possibility of RemoteException being thrown. That's a different issue. It's not becusae the parent class can throw RE. Rather, it's because some step that will always be followed is declared to throw RE.
    I later also noticed I could not add other checked exceptions, which made sense indeed. Your explanation made perfect sense now that I heard (read) it. But just to humour my curousity, has this always been possible? Yes, Java has always worked that way.
    PS: The overwriting/-riding was a grammatical typo (English is not my native language), but I meant to say what you said.No problem. Minor detail. It's a common mistake, but I always try to encourage proper terminology.

  • How to search OER for method signatures

    I would like to search OER for Service assets that have a specific input and/or output. I'm sure this is easy to do but am missing something.
    I was reading the description in the Sample Interface - Account Detail Interface shipped with OER and it says....
    "Users may search for particular method signatures, find this asset, and from here discover the services that implement this interface."
    That's what I want to do but am not sure how to do it. Can anyone explain how I would go about doing that?

    Try a simple search, put the method name in the search box, select the type as All Type. The search will list down the Interface and the Service that contains the api.

  • Referencing a Contect Nodes Structure in a Methods Signature??

    Hi All,
    I am implementing a method in the Component Controller and - as always - I am referencing a Context Nodes Structure as follows:
    IT_SOME_PARAM Importing Type IG_COMPONENTCONTROLLER=>ELEMENTS_SOME_NODE
    in the signature of the mehtod.
    The thing is, if I declare the method as an "Interface" method (a method that can be called from outside of the component), the framework tells me that it doesn't know the type IG_COMPONENTCONTROLLER=>ELEMENTS_SOME_NODE anymore.
    What is going on there and how can I declare a parameter of the type of a node in an interface method?
    THANKS, Johannes

    IG_COMPONENTCONTROLLER is a local class within the scope of the component.  As so as you use the interface option, this method and its interface must be accessible to other components.  Therefore any local declarations (like those of the context) are not visible to other components.  Instead of declaring the method interface from the context definition, you will need to use a data dictionary definition that matches the context definition.

  • Detecting webservice methods signatures

    Hi,
    I'm searching for an elegant solution for the following problem:
    My application is a webservice client that will consume a webservice with some methods.
    let's suppose service interface has methods :
    public void methodA(String A, String B, String C);
    public void methodB(String D, String B, String E);my application will parse a String stream and figure out what method to call .if for example the string pattern is : methodA:A,valueA:B,valueB:C,valueC;then i'll need to call method :public void methodA(String A, String B, String C);I need to know what is an elegant and clean why to implement this feature. Note that i don't know the webservice methods signatures in advance!
    I guess i'll have to use java Reflection. I'm not sure what is a good solution for this problem .
    thanks for your help.
    NB: I posted this same topic at [coderanche.com|http://www.coderanch.com/t/441073/Web-Services/java/detecting-webservice-methods-signatures] but couldn't get responses.

    slowfly wrote:
    That is imo a very bad idea. That's no java problem, it's a communication problem. If the service providers can't provide you the interface or the wsdl, you can't code towards it. They also should provide you a test-environment, where you can test your client implementations. Everything else is just... not right...
    I'm just curious: Where comes the string stream from? And why don't you know the endpoint interface? There must be another approach.
    regards
    slowflythe webservice client i'm coding is part of a complex system with many components communicating through JMS and using Spring Managed beans.
    my plug-in will receive a command from an external provisioning system. i'll have to parse this command string then figure out what webservice method i'll need to call on remote webservice.
    i know this is weired. but my boss is not helpful. he can't yet get the WSDL from the customer and I have now to manage testing with dummy webservice methods without actually talking to real webservice.
    I want to know what is a good solution to Map the above String command Pattern into a java method . it seems like to be a Mapping from String Pattern to java method with arguments. the only problem is that i can't know the names of method parameters.and the command string pattern might contains method args in un-ordered state. so after collecting the method args (from command) i will need to figure out which one fits in the args list of webservice method.
    probably using method parameters annotations? does this means the WSDL should also contain the parameter annotaions?
    anyway i hope someone here can suggest me some good solution.
    thanks

  • Ws compile client generates wrong method signature

    Hi,
    the wscompile - option client - always generates the wrong method signature in the class AdresseIF_Stub:
    --> public de.skkoeln.webservice.web.Adresse_Type[]
    I need the signature public de.skkoeln.webservice.web.Adresse[] due to I can't compile the generated classes. This is the signature of the AdresseIF interface.
    What is my fault ?
    Oliver
    Adresse ist the JavaClass which I expect to get as return value. The webservice was successfully installed

    Oliver, is it only wrong in the stub? Does all of the generated code compile? If it all compiles then there is no error. The reason the _Type was added is because they are other WSDL names that have the same name.  Please read section 4.3.12 of the JAXRPC spec for more detail.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Reflection cant get parameterized method signature?

    my sample:
    interface Root<T>{
    public void prt(T t );
    interface A extends Root<String>{
    public class Reflecttest {
    public static void main(String[] args){
    Class cl=A.class;
    for (Method m:cl.getMethods()){
    m.getParameterTypes();
    //som reflection like above, but i cant get signature like public void prt(String str); but public void prt(Object o);
    //how can i get the parameterized method signature
    }

    That information doesn't exist at runtime. It is all
    erased to Object by the compiler. That's what
    Generics does - safe type erasurefurther, you don't need to know, since by using reflection you're basically bypassing compile-time type safety altogether. reflection and generics have totally different intents, and don't mix well together

  • Exceptions method signatures while extending/implementing

    Suppose If i have some throws clauses in my method signatures in an interface.Now if i define a class which implements this interfcae and while implementing i do not give the throws clause in the signature then i should expect a compilation error.Which is not the case.Can someone tell me the reason for this.

    The throws cause is not part of the method signature. It is OK for a implementing method tp promise to throw fewer exceptions (in this case none) but it would not be OK for it to threaten to throw more exceptions.
    The general model is that an implementation or override of a method must require no more and provide no less.
    Chuck

  • Calling an interface METHOD of another abap web dynpro application

    Hi Experts,
    Can u plz tell how we can Call an interface METHOD of another abap web dynpro application in main WD Component.
    Thanks
    Mahesh

    Hi ,,
       Example ALV interface method calling   GET_MODEL interface method
       View attribute   declaration   :    M_WD_ALV  type      IWCI_SALV_WD_TABLE
         DATA lo_INTERFACECONTROLLER TYPE REF TO IWCI_SALV_WD_TABLE .
          wd_this->M_WD_ALV =   wd_this->wd_cpifc_alv( ).   "ALV is the usage name
         DATA lv_value TYPE ref to cl_salv_wd_config_table.
          lv_value = wd_this->M_WD_ALV->get_model(  ).   " interface method calling in ALV component usage.....
    Regards,
    Devi

  • No Method Signature - initQuery error after VO Substitution

    Hi All,
    I have done a VO Substitution for "NewBankAccountVOImpl". Below is the exact Requirement,
    iReceivables -> Query for a given Customer -> Go to accounts Tab -> Try to Pay off an invoice -> You get an option choose Payment Method as "New Bank Account" ->
    Now there are three field Routing Number, Account Number and Account Holder
    I need to restrict Account Number to minimum three characters. In 11.5.10 Oracle do not have this validation.
    So I checked out the place where the Routing Number and Account Number Validation happen i.e "NewBankAccountVOImpl" and extended the same to custom VOImpl and copied all the standard code to my custom code as below,
    package mercury.oracle.apps.ar.irec.accountDetails.pay.server;
    import oracle.apps.ar.irec.accountDetails.pay.server.NewBankAccountVOImpl;
    import oracle.apps.ar.irec.accountDetails.pay.server.NewBankAccountVORowImpl;
    import java.sql.Types;
    import java.lang.String;
    import oracle.apps.ar.irec.accountDetails.pay.utilities.PaymentUtilities;
    import oracle.apps.ar.irec.framework.IROAViewObjectImpl;
    import oracle.apps.fnd.common.VersionInfo;
    import oracle.apps.fnd.framework.OAException;
    import oracle.apps.fnd.framework.server.*;
    import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
    import oracle.jbo.RowIterator;
    import oracle.jbo.RowSetIterator;
    import oracle.jbo.domain.Number;
    import oracle.jbo.server.DBTransaction;
    import oracle.jdbc.driver.OracleCallableStatement;
    import oracle.jdbc.driver.OraclePreparedStatement;
    // --- File generated by Oracle Business Components for Java.
    // --------------- Modification History --------------------------
    // Date Created By Description
    // 04/01/2011 Veerendra K Account Number Validation to raise
    // error if Account Number entered is
    // less than 3 Digits
    public class MMARNewBankAccountVOImpl extends NewBankAccountVOImpl
    * This is the default constructor (do not remove)
    public MMARNewBankAccountVOImpl()
    public void initQuery()
    if(!isExecuted())
    executeQuery();
    reset();
    // Wrapper Method to validate Routing Number and Account Number
    public void validateNewBankAccount()
    OAApplicationModuleImpl oaapplicationmoduleimpl = (OAApplicationModuleImpl)getApplicationModule();
    RowSetIterator rowsetiterator = createRowSetIterator("iter");
    rowsetiterator.reset();
    NewBankAccountVORowImpl newbankaccountvorowimpl = (NewBankAccountVORowImpl)rowsetiterator.next();
    rowsetiterator.closeRowSetIterator();
    OAException oaexception = null;
    //object obj = null;
    int i = validateRoutingNumber(newbankaccountvorowimpl.getStrippedRoutingNumber());
    if(i == 0)
    OAException oaexception1 = new OAException("AR", "ARI_INVALID_ROUTING_NUMBER");
    if(oaexception == null)
    oaexception = oaexception1;
    else
    oaexception.setNextException(oaexception1);
    } else
    if(i == 2)
    OAException oaexception2 = new OAException("AR", "ARI_CREATE_BANK_ACCOUNT");
    if(oaexception == null)
    oaexception = oaexception2;
    else
    oaexception.setNextException(oaexception2);
    // Added by VEERENDRA KODALLI to limit addition of New Bank Account with Minimum 3 Digits
    if(validateBankAccountNumber(newbankaccountvorowimpl.getStrippedBankAccountNumber()))
    // Define Exception with FND Message MMARI_INVALID_BA_NUMBER
    OAException oaexception4 = new OAException("AR", "MMARI_INVALID_BA_NUMBER");
    if(oaexception == null)
    oaexception = oaexception4;
    else
    oaexception.setNextException(oaexception4);
    // Method to Validate if Entered Account Number and Routing Number Combination already exist
    if(validateDuplicateBankAccountNumber(newbankaccountvorowimpl.getStrippedBankAccountNumber(), newbankaccountvorowimpl.getStrippedRoutingNumber(), newbankaccountvorowimpl.getAccountHolderName()))
    OAException oaexception3 = new OAException("AR", "ARI_DUPLICATE_BA_NUMBER");
    if(oaexception == null)
    oaexception = oaexception3;
    else
    oaexception.setNextException(oaexception3);
    if(oaexception != null)
    oaexception.setApplicationModule(oaapplicationmoduleimpl);
    throw oaexception;
    } else
    return;
    // Method to Validate Routing Number
    public int validateRoutingNumber(String s)
    boolean flag = PaymentUtilities.checkDigits(s);
    if(!flag)
    return 0;
    OAApplicationModuleImpl oaapplicationmoduleimpl = (OAApplicationModuleImpl)getApplicationModule();
    OADBTransaction oadbtransaction = (OADBTransaction)oaapplicationmoduleimpl.getDBTransaction();
    if(oadbtransaction.isLoggingEnabled(2))
    oadbtransaction.writeDiagnostics(this, "Start validateRoutingNumber", 2);
    String s1 = "BEGIN :1 := ARP_BANK_DIRECTORY.is_routing_number_valid(:2,:3); END;";
    OracleCallableStatement oraclecallablestatement = (OracleCallableStatement)oadbtransaction.createCallableStatement(s1, 1);
    int i = 0;
    try
    oraclecallablestatement.registerOutParameter(1, -5, 38, 38);
    oraclecallablestatement.setString(2, s);
    oraclecallablestatement.setString(3, "ABA");
    oraclecallablestatement.execute();
    i = oraclecallablestatement.getInt(1);
    catch(Exception exception1)
    exception1.printStackTrace();
    throw OAException.wrapperException(exception1);
    finally
    try
    oraclecallablestatement.close();
    catch(Exception exception2)
    throw OAException.wrapperException(exception2);
    // Debug Message
    if(oadbtransaction.isLoggingEnabled(2))
    oadbtransaction.writeDiagnostics(this, "End validateRoutingNumber", 2);
    return i;
    // Method to Validate Duplicate Account Number
    public boolean validateDuplicateBankAccountNumber(String s, String s1, String s2)
    OAApplicationModuleImpl oaapplicationmoduleimpl = (OAApplicationModuleImpl)getApplicationModule();
    OADBTransaction oadbtransaction = (OADBTransaction)oaapplicationmoduleimpl.getDBTransaction();
    if(oadbtransaction.isLoggingEnabled(2))
    // Debug Message
    oadbtransaction.writeDiagnostics(this, "Start validateDuplicateBankAccountNumber", 2);
    String s3 = "BEGIN :1 := AR_IREC_PAYMENTS.is_bank_account_duplicate(:2,:3,:4); END;";
    OracleCallableStatement oraclecallablestatement = (OracleCallableStatement)oadbtransaction.createCallableStatement(s3, 1);
    boolean flag = true;
    try
    oraclecallablestatement.registerOutParameter(1, -5, 38, 38);
    oraclecallablestatement.setString(2, s);
    oraclecallablestatement.setString(3, s1);
    oraclecallablestatement.setString(4, s2);
    oraclecallablestatement.execute();
    Number number = new Number(oraclecallablestatement.getLong(1));
    if(number.equals(new Number("0")))
    flag = false;
    else
    flag = true;
    catch(Exception exception1)
    exception1.printStackTrace();
    throw OAException.wrapperException(exception1);
    finally
    try
    oraclecallablestatement.close();
    catch(Exception exception2)
    throw OAException.wrapperException(exception2);
    // Debug Message
    if(oadbtransaction.isLoggingEnabled(2))
    oadbtransaction.writeDiagnostics(this, "End validateDuplicateBankAccountNumber", 2);
    return flag;
    public boolean validateBankAccountNumber(String s)
    OAApplicationModuleImpl oaapplicationmoduleimpl = (OAApplicationModuleImpl)getApplicationModule();
    OADBTransaction oadbtransaction = (OADBTransaction)oaapplicationmoduleimpl.getDBTransaction();
    // Debug Message
    if(oadbtransaction.isLoggingEnabled(2))
    oadbtransaction.writeDiagnostics(this, "Start validateBankAccountNumber", 2);
    boolean flag = true;
    try
    // Check if the Account Number Length is less than 3 Digits
    if(s.length() < 3)
    flag = true;
    // Debug Message
    if(oadbtransaction.isLoggingEnabled(2))
    oadbtransaction.writeDiagnostics(this, "Account Number Less than 3 Digits!", 2);
    else
    // Debug Message
    if(oadbtransaction.isLoggingEnabled(2))
    oadbtransaction.writeDiagnostics(this, "Account Number greater than 3 Digits!", 2);
    flag = false;
    //return PaymentUtilities.checkDigits(s);
    catch (Exception exception4)
    //if(oadbtransaction.isLoggingEnabled(2))
    //oadbtransaction.writeDiagnostics(this, "Entered Catch", 2);
    throw OAException.wrapperException(exception4);
    if(oadbtransaction.isLoggingEnabled(2))
    // Debug Message
    oadbtransaction.writeDiagnostics(this, "End validateBankAccountNumber", 2);
    return flag;
    public static final String RCS_ID = "$Header: NewBankAccountVOImpl.java 115.8 2008/07/21 13:49:37 nkanchan noship $";
    public static final boolean RCS_ID_RECORDED = VersionInfo.recordClassVersion("$Header: NewBankAccountVOImpl.java 115.8 2008/07/21 13:49:37 nkanchan noship $", "oracle.apps.ar.irec.accountDetails.pay.server");
    I did compile the Java File and also the JPX import. It was all successful. I tested the code and it worked as expected. Now I see an exception on the page when I click the Pay button stating "No Method Signature No Method Signature - initQuery".
    The error do not come when I take out my substitution. Any one know what might be the reason for above issue. I have no idea why all of a sudden it stopped working and checked all standard filles but none got changed.
    Any pointers towards to resolve the same would be appreciable.
    Thanks in Advance,
    Veerendra

    Uma,
    try to delete all class files, recompile and run! Also, check if any CO is not extended other than from OAControllerImpl, although it would not be generally.
    --Mukul                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Access specifiers for interface methods

    When we implement the interface ,we have to specify the implementing method access specifier to be "PUBLIC" ,but not "PROTECTED" or "PRIVATE".
    Compiler is giving an error -- attempting to assign weaker access privileges ,when we specify protected.
    what is the internal reason for this?Why we shouldnt make the access weaker in the implementing class.
    Can any one help me on this.Your help is highly appreciated.

    When we implement the interface ,we have to specify
    the implementing method access specifier to be
    "PUBLIC" ,but not "PROTECTED" or "PRIVATE".
    Compiler is giving an error -- attempting to assign
    weaker access privileges ,when we specify protected.
    what is the internal reason for this?There is absolutely no point in having a private interface method. The interface represents a visible abstraction and private methods are never visible so it is a contradiction in terms.
    An interface is intended to represent an abstraction that a user (software) uses. Protected via child/parent represents a usage that is restricted to a child from a parent. The child can already see the parent so there is no point in having an abstraction for the child. And it would probably be unwise to limit a child by such an abstraction.
    Protected via the package and interfaces is more contentious as to why it is not allowed. There are those that argue that this should be allowed so that a package can use interfaces but restrict them to the package. To me this seems like a minor point given that most interfaces will probably represent an abstraction to other packages and not within a single package. This applies specifically to default access as well.

  • Interface Method

    Hi experts,
    I have the following scenario:
    Component A opens, in a modal window, the component B.
    When I do something in B, it's closed and I return to A.
    There, I need read data from B (which is closed at the moment), to do something in A.
    Anybody knows how can I do it?
    I tried with external context mapping, but It doesn't work...
    Could it be done with interface methods?
    Thanks in advance!
    Lucas

    Hi Padmam,
    Thank you for your reply too, but I'm having problems with your solution.
    I have created an interface Node in Component A, and I have created the mapping in the component usages of the component B.
    When I run component A, it gives me an error. I supose that it is rise by this Interface Node.
    This error is solved when I check out the property "Input Element (Ext)" of Interface Node, but without this property, I can't do the External Mapping...
    Could you correct me if I'm wrong?
    Thanks in advance!
    Lucas

  • Question when i am in web dynpro interface method trying to find code

    Hello guys,
    I am in an event handler and i see this logic wd_this->mo_dodm_srchbidder_c->add_selected_bidder().  When i double click on the add selected bidder it takes me to the method inside interface /sapsrm/IF_CLL_DODM_BIDDER.   So when i double click on the method it takes me nowhere.
    My question is what do i have to do or where do i go to see the code for add_selected_bidder?   thank you.

    I think, you have visited to the definition of the interface method and not the implementation of the method.
    You have instantiated the wd_this->mo_dodm_srchbidder_c some where, may be in the wd domodifyview. Find that out where the implementation happens.
    I believe when you double click the method in  editor ask for to go to definition or implementation.

Maybe you are looking for

  • Read only data DVD

    A photographer has burned me a dvd with photos in NEF format. I can view them with "Quick View", but i can't copy them to my computer. I get an error code -8060 or -35. Under permissions of dvd properties it is "read only". Is it still possible to co

  • Installing NWDI in Existing SAP Portal

    hi experts, My project currently require to retrieve and modify ESS (personal information) standard code since the standard personal information in ESS will not meet our requirement. I found out that i need NWDI installed in our environment in order

  • DI PL16 - Error on GetByKey

    I started to get the following error when doing Doc.GetByKey(CurrDocEntry) The Error: "Unable to cast object of type 'SAPbobsCOM.CompanyClass' to type 'SAPbobsCOM.ICompany" any ideas? Thanks Moty

  • WRT51AB - Not able to connect to one site when accessing thro router

    When I am trying to access a particluar website directly via cable modem using ethernet cable, I am able to access the website. However if I connect the wireless router to the modem and then try to access the website using wireless connection, I am n

  • [ER] Partial submit (PPR) propagation from Region to Parent

    Hi! I would suggest to enable propagation of partial submits (PPR trigers) from Regions to parent page. New Parent Action element in taskflows enables propagation of navigation actions so similar propagation of PPR should be very neat feature. Regard