Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [ajdt-dev] Declaring methods in interface through Aspect


Hi Ron,
  Thats works exactly the way i want.
Have a nice day.
Regards
Vinodh Subbiah
Retail Shared Infrastructure Team
JPM
614 213 1574 (W)
602 403 8451(M)
vinodhts@xxxxxxxxx






"Ron Bodkin" <rbodkin@xxxxxxxxxxxxxx>
Sent by: ajdt-dev-bounces@xxxxxxxxxxx

04/13/2006 11:32 AM
Please respond to AspectJ Development Tools developer discussions

       
        To:        "'AspectJ Development Tools developer discussions'" <ajdt-dev@xxxxxxxxxxx>
        cc:        
        Subject:        RE: [ajdt-dev] Declaring methods in interface through Aspect



Vinodh,
 
You need to use the abstract modifier to make it work. ITD’s on an interface aren’t abstract by default, as you discovered, but if you do make them abstract you can implement them in the class instead. E.g.,
 
interface Sample {}
 
public aspect AbstractInterfaceMethod {
    public abstract void Sample.ImplementMe();
}
 



From: ajdt-dev-bounces@xxxxxxxxxxx [mailto:ajdt-dev-bounces@xxxxxxxxxxx] On Behalf Of vinodh.t.subbiah@xxxxxxxxxxxx
Sent:
Thursday, April 13, 2006 11:23 AM
To:
ajdt-dev@xxxxxxxxxxx
Subject:
[ajdt-dev] Declaring methods in interface through Aspect

 

Hi All,

Im trying to add a method declaration in an Interface IAccountSDB.

But when i try to add it in Aspect it gives me compilation error saying no body implemented.Then I try to implement the body in the Class SDBRental which extends the IAccountSDB.

Still I was getting the error and finally i add the dummy implementation { ...} and it got compiled and also running correctly.But why i need to provide this implementation when I want to really declare the method in interface only?

Code shown as below.


Also it is not giving any compilation error if the sub class does not implement the methods in interface !.When i run i saw the method declared in interface gets called !Please help to resolve this issue.(It behaves like abstract class implementation)


package my.rsi.aspect.management;

import com.chase.rsi.model.repository.SafeDepositBoxRentalResponse;

import com.chase.rsi.model.service.*;

import  my.rsi.management.*;

import com.chase.rsi.model.repository.*;

import com.chase.rsi.model.service.exception.ServiceException;


/**

 */

public aspect SDBAccountService {

       declare parents : SDBRental implements IAccountSDB;

       public SafeDepositBoxRentalResponse IAccountSDB.rental2SafeDepositBox(

               RequestContext context, AccountIdentifier accountIdentifier,SafeDepositInfo safeDepositInfo)

               throws ServiceException{

               System.out.println(" Why I have to give implementation in interface itself? ");

               return null;

       }

       
       
       
       public SafeDepositBoxRentalResponse SDBRental.rental2SafeDepositBox(

               RequestContext context, AccountIdentifier accountIdentifier,SafeDepositInfo safeDepositInfo)

               throws ServiceException{

               System.out.println(" IN SDBRental.rental2SafeDepositBox Interface");

               return null;

       }

       public SafeDepositBoxRentalResponse SDBRental.rentalSafeDepositBox(

               RequestContext context, AccountIdentifier accountIdentifier,SafeDepositInfo safeDepositInfo)

               throws ServiceException{

               System.out.println(" IN SDBRental.rentalSafeDepositBox Interface");

               return null;

       }

       public static void main(String [] args)

       {

               SDBRental sdbRental = new SDBRental();

               try {

               sdbRental.rentalSafeDepositBox(null,null,null);

               sdbRental.rental2SafeDepositBox(null,null,null);

               }catch(Exception e)

               {

                       System.out.println("Exception in main");

               }

       }

       
}

Vinodh Subbiah
Retail Shared Infrastructure Team
JPM
614 213 1574 (W)
602 403 8451(M)
vinodhts@xxxxxxxxx
 


 

 

 _______________________________________________
ajdt-dev mailing list
ajdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ajdt-dev


Back to the top