Best way to call methods on similar objects without an interface
Hi,
I have two objects that i need to iterate, they both have the same method i need to call during iteration, but those two objects are from different libraries and i cannot change them to add them as implement interface...
for (Iterator it = documents.iterator(); it.hasNext();) {
Document1 document = (Document1) it.next();
document.getName();
But I can also get a documents's collection where the object is Document2 and not Document1 that also has getName(), what's the best way to implement this? I mean i know i can just add if conditions to say if (instanceof) do this or that.. but I don't think this is good as everytime there's a new type of doc i'd have to add one more...
Any suggestions?
Thanks,
I have two objects that i need to iterate, they both have the same method i need to call during iteration, but those two objects are from different libraries and i cannot change them to add them as implement interface...
You already know what you need to do. You just don't want to do it.
You can't treat two (or more) instances the same if they aren't the same. Here are three methods:
1. Add code (like you propose) to determine which type you have
2. Create your own classes that extend those classes and have your own class implement your own interface that has the 'getName' method. When you create instances of your own class the constructor can have code that determines which type you have and then use the appropriate 'getName' method. Your app code would use your own classes instead of the ones from the libraries
3. Use reflection to call the 'getName' method.
Similar Messages
-
What is the best way to call SSH commands through Java technologies
What is the best way to call SSH commands through Java technologies
I don't think you can specify the password at the prompt using ssh. Plink has the -pw command option for passwords. What I did was except ssh to ask me and write the password programmatically through the outputStream I obtained from my Process object. I looked for "password: ", and then wrote the password with a trailing newline.
Both plink and ssh will also ask if you trust the host if it is the first time you are connecting to it. So before just writing the password, check if the program wants verification from you: normally supplying "y" or "n". This should only have to happen the first time the client connects. It looks like thisPLINK:
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's key fingerprint is:
1024 f8:43:61:4c:a2:5b:77:be:5b:a7:bb:1f:f7:79:b3:b7
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n)
SSH:
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
RSA key fingerprint is e1:02:13:c8:52:c2:23:41:9b:5b:58:2c:18:e6:59:af.
Are you sure you want to continue connecting (yes/no)?What I did was read character by character from the inputStream until I found things of interest ... like "password: ". You only need to search for this in your method which will launch the ssh or plink Process. Once you have verifyed yourself, you can just pass commands to the Process, which is an ssh connection.
My suggestion is to read() each byte from the Process's inputStream and write it to stdout. Look and see what you need to be looking for so you can interactive with the program correctly. You can't use readLine here becuase when the ssh asks for the password it does not print a newline. I do know for sure, that ssh will simply print, "passowrd: ". Plink will print this as well if the -pw option is not supplied. -
Best way to call EJB - Servlet or Tag Library
Hi,
What is the best way to call an EJB from a JSP? We are using Weblogic 7.0(moving to 8.1 beta). WE have a form on a JSP that needs to get data from an EJB. Our flow goes from JSP --> Controller servlet or tag library -->EJB "Bean" Controller ---> EJB. The specfic EJB we need to populate drop downs and fields will be called by a bean controller. Is it better to call the bean controller using a tag library in the jsp or go to the controller servlet to get the data? If servlet is the answer, where do I lookup the EJB Home and call the create from within the servlet? Any help would be greatly appreciated!!
Thanks!IMO, if you are following some design patterns, like the MVC framework, the best thing is to populate the model(entities that contain the business data) and call the respective getXX methods from the model on the JSP page. The reason for doing so is to keep JSP pages away from any other work other than to just display the business data contained in the respective business entities.
The model can be populated in the servlet and either set in the request or session attribute as per the requirement.
The EJB can be looked up in the servlet as and when required. I would suggest to make use of the Service Locator Pattern to do a look up for the EJB Remote Interface and accordingly make the business calls.
Hopefully this answers some of your questions. -
which is the best way to call a scotland mobile phone from skype? i been using pay as u go credit and its 8 cents a min and was wondering if a monthly thing or a subscription is the way to go
Translation patterns are for internal use to manipulate a number and then a route pattern will be responsible for pushing it out the gateway or some other method. If this DID is still being sent to you you could either manipulate this at the CUBE and hairpin it backout or send it to CUCM and hairpin it back after it gets translated with a translation pattern out a route pattern. I would recommend doing everything at the gateway unless you want to keep some record that the number is in use which CUCM can do more effectively.
This DID being used for a fax is elsewhere offnet at this point I take it? Make sure you have the proper CSS's and partitions set for hair pinning if you do this on CUCM since by nature forwarding to external numbers is disabled by default (or at least it used to be as I recall). -
Error on Calling Methods Using an Object of a Class
I keep getting the error cannot resolve variable addStud . I can't figure out why. I've created objects of classes before this way, then called methods within that class like this and it worked fine. I can't discern any difference between the syntax of the program that worked successfully and this one. I commented the parts where the error is when I tried to send a variable to a method in the class Recieve of which addStud is an object of. If you can see something that I can't I'd appreciate it. I've checked the obvious things like making sure the class name and method name is spelled the same way in both my frame and the class file.
import java.awt.event.*;
import java.awt.*; /* Used by IntroTest3.java. */
import javax.swing.*;
public class RegFrame extends JInternalFrame
{ // Begin class RegFrame
static final int xOffset = 30, yOffset = 30;
private JLabel nameLabel, displayLabel;
private JTextField nameField;
private JTextArea displayText;
private JButton addButton;
private String name;
private int numStu;
public RegFrame() { // Begin RegFrame constructor
super(" Register a New Student ",
true, //resizable
true, //closable
true, //maximizable
true);//iconifiable
//...Create the GUI and put it in the window...
//...Then set the window size or call pack...
setSize(400,300); //Set the window's location.
setLocation(xOffset, yOffset);
Container content = getContentPane();
setBackground(Color.white);
content.setBackground(Color.white);
content.setLayout( new FlowLayout());
//* CREATE LABELS AND TEST ENTRY FIELDS FOR REGISTERING A NEW STUDENT *
* HERE IS WHERE OBJECT OF RECIEVE IS CREATED *
Recieve addStud = new Recieve();
nameLabel = new JLabel(" Enter student name: ");
nameField = new JTextField(20);
content.add ( nameLabel );
content.add ( nameField );
addButton = new JButton( "Add Student" );
content.add( addButton );
addButton.addActionListener(
new ActionListener()
{ // Open ActionListener
public void actionPerformed (ActionEvent e)
getInput();
} // Close ActionListener
} // End RegFrame Constructor
// get input
private void getInput()
numStu++;
name = nameField.getText();
JOptionPane.showMessageDialog( null, "NAME: " + name + "\n"
+ "Student number:"+ numStu );
addStud.addName( name ); /** <--- HERE IS ERROR **/
} // End class RegFrame;This is the class:
public class Recieve
{ // Begin class Recieve
private double stAssign[];
private double stLab[];
private double stProject[];
private double stQuiz[];
private double stTest[];
private String stNames[];
int snc;
public Recieve ()
stAssign = new double[10];
stLab = new double[10];
stProject = new double[10];
stQuiz = new double[10];
stTest = new double[10];
stNames = new String[10];
snc = 0; // Student Name Counter
public void addName (String stName)
stNames[snc] = stName;
snc++;
} // End class Recieve1- Add the following class variable declaration for RegFrame:
private Recieve addStud;2- Change in the RegFrame constructor:
addStud = new Recieve(); -
What is the best way to call a report from within a report
What is the best way to call a report from within a report(master / Detail concept)
A type of drill down report
Oracle Database 10g
Forms 10.1.2.0.2
Report Builder 10.1.2.0.2Hi
Have a look in this link, certainly you will get fix, if not just post a comment on blog, will get reply soon
http://windows7bugs.wordpress.com/?s=oracle+10g+bug -
What is the best way to call a pageflow action from JavaScript?
What is the best way to call a pageflow action from JavaScript?
Thanks,
JohnJohn,
How would I do this from a grid??? Unfortunately there are no JavaScript attributes
on any of the grid tags that I can see.
Thanks,
John
"John H" <[email protected]> wrote:
>
Thanks John!
"John Rohrlich" <[email protected]> wrote:
John,
If you want to put up a confirm dialog before calling an action from
an
anchor it is done as follows.
Here is an example from code of mine that deletes a customer order,if
the
user confirms the delete. I pass the order id as a parameter.
- john
Here is the JavaScript -
function confirmDelete() {
if(confirm('Continue with order delete?'))
return true;
else
return false;
Here is a sample anchor tag -
<netui:anchor action="requestToDeleteOrder" onClick="return
confirmDelete(); return false;">
Delete
<netui:parameter name="orderId" value="{container.item.orderId}"/>
</netui:anchor>
"John H" <[email protected]> wrote in message
news:402138f5$[email protected]..
Thanks for the replies. I figured it was going to require buildingmy own
url
to call the action. I had hoped there was an easier way to do it.Rich,
the
reason I want to do this is because I want to call the JavaScript
function
confirm()
when a user clicks on a link (in a repeater/grid) to drop a record,I only
want
to call the drop action if the user confirms the drop. Maybe thereis a
better
way to do what I am trying to do??? I really appreciate any help
you
guys
can
give me on this, I am pretty new to this sort of stuff.
Thanks,
John
"Rich Kucera" <[email protected]> wrote:
"John H" <[email protected]> wrote:
What is the best way to call a pageflow action from JavaScript?
Thanks,
JohnTry figuring out the URL to the pageflow action, create a hidden
form
in the
page, then use JS to submit the form. Why would you want to though,
isn't
the server going to want to send you to the next page? -
What is the best way to implement a cluster-wide object ID generator?
What is the best way to implement a cluster-wide object ID generator?
What is the best way to implement a cluster-wide
object ID generator?Always use 3 because it is prime.
Alternatively more information about the system and the needs of the system might prompt alternative ideas some of which are likely to be better than others for your particular implementation and system constraints. -
Best way to call oracle db from BPEL 2.0
Hi
Anybody knows which is the best way to call select or call store procedures from BPEL 2.0 ? Do I need to use JCD (java collaboration definition in repository-based projects -caps 5.x) and oracle eWAY to interact with oracle database?
Regards.You can also create a new WSDL with a concrete binding to DATABASE, as explained on http://wiki.open-esb.java.net/Wiki.jsp?page=CreatingAWSDLDocumentForTypeDATABASE
BRs
Kris -
Calling Methods from Business Object BUS2032
Hi all,
Is it possible to call methods from the Business Object BUS2032.
If so, how can it be done??
Regards,Hi Marv,
you sure can. Here is an extract from the SAP Help. I found it at http://help.sap.com/saphelp_46c/helpdata/en/c5/e4ad71453d11d189430000e829fbbd/frameset.htm
<b>Programmed Method Call</b>
Call (fictitious) method Print of object type VBAK (sales document). The method receives the parameters Paperformat and Printertype as input.
* Call method Print of object type VBAK
* Data declarations
DATA: VBAK_REF TYPE SWC_OBJECT.
SWC_CONTAINER CONTAINER.
* Create object reference to sales document
SWC_CREATE_OBJECT VBAK_REF 'VBAK' <KeySalesDoc>
* Fill input parameters
SWC_CREATE_CONTAINER CONTAINER.
SWC_SET_ELEMENT CONTAINER 'Paperformat' 'A4'.
SWC_SET_ELEMENT CONTAINER 'Printertype' 'Lineprinter'.
* Call Print method
SWC_CALL_METHOD VBAK_REF 'Print' CONTAINER.
* Error handling
IF SY-SUBRC NE 0.
ENDIF.
Cheers
Graham -
What is the best way to archive old e mail folders without buying software. I tried to drag them into a folder on the hard drive but they get saved in a strange format.
This is on sale for US $12:
http://www.mupromo.com/?ref=4506 -
Best way to call screen in BOR method
Hi,
I'm new to BOR objects. I have a requirement to create to a screen to accept values and perform validation on the value.
As I'm using FOP(EWBC), So in the steps the best way looks like using BOR objects.
Can any body please guide me what is the best way to create and call a screen in the BOR method?
Thanks in advance
RohanIMO the best way is to create a Function Module and call it from your BOR method
-
Best way to implement application level persistant objects?
I'm designing a J2EE application and want to create some objects that represent lookup tables in the database. I would like these to be static objects that get created either at application startup or the first time they are called and remain in application scope globally for all users/sessions. These are objects that contain lists used for drop-downs/listboxes. I don't necessarilly want to take up unecessary memory
and take a performance hit for each session by creating them new for each session. The question is what is the recommended design for this scenario? Should these be implemented as static Stateless Session beans with an application scope? Are there any examples on the best way to do this in J2EE?
Thanks.You can simply (and properly) implement the Singleton pattern. Then multiple threads can all query the cached reference table values in the Singleton. Now, I know, that Singletons and J2EE are supposedly no-no's, but sometimes the easiest and simplest solution really is the best one. Perform the database query at startup in a static initializer. Then ensure that you do not have mutator methods (e.g., removeXXX(), setXXX(), addXXX(), etc.) Only provide accessor/getter methods. If you want to be able to refresh the cache without restarting the server, you will have to think about race conditions. But if you are implementing a vanilla cache, I would go with a Singleton.
- Saish
"My karma ran over your dogma." - Anon -
Best way to draw thousands of graphic objects on the screen
Hello everybody, I'm wanting to develop a game where at times thousands of graphic objects are displayed on-screen. What better way to do this in terms of performance and speed?
I have some options below. Do not know if the best way is included in these options.
1 - Each graphical object is displayed on a MovieClip or Sprite.
2 - There is a Bitmap that represents the game screen. All graphical objects that are displayed on screen have your images stored in BitmapData. Then the Bitmap that represents the game screen copies for themselves the BitmapData of graphical objects to be screened, using for this bitmapData.copyPixels (...) or BitmapData.draw (...). The Bitmap that represents the screen is added to the stage via addChild (...).
3 - The graphical objects that are displayed on screen will have their images drawn directly on stage or in a MovieClip/Sprite added to this stage by addChild (...). These objects are drawn using the methods of the Graphics class, as beginBitmapFill and beginFill.
Recalling that the best way probably is not one of these 3 above.
I really need this information to proceed with the creation of my game.
Please do not be bothered with my English because I'm using Google translator.
Thank you in advance any help.Thanks for the information kglad. =)
Yes, my game will have many objects similar in appearance.
Some other objects will use the same image stored, just in time to render these objects is that some effects (such as changing the colors) will be applied in different ways. But the picture for them all is the same.
Using the second option, ie, BitmapDatas, which of these two methods would be more efficient? copyPixels or draw?
Thank you in advance any help. =D -
Call the CALL METHOD and CREATE OBJECT
Hi Friends,
How to call the CALL METHOD and CALL OBJECT in the se38 edit program.For example for calling the FUNCTION MODULE we can use the pattern in that using the call function we can get the function module in the se38 edit.but in METHOD hoe to call if you explain me in detail it would be very much usefulfor me.
Thanks,
Regards,
Rajendra KumarHi rajendra,
its the same way we do. call pattern ..there will be another radiobutton whcich says 'ABAP objects' , give the method name and the class name there.. this will call the method similar to function module..
we can also write our own classes and methods...
say..you created your own class c1 and method m1
then first create the instance of the object..
data:obj1 type ref to c1.
create object obj1.
call method obj1->m1.
Regards,
Vidya.
Maybe you are looking for
-
AP Invoice Aging Report for past date
hi guys, I am running R12. my requirement is to run AP invoice aging report for past dates (same like AP Trial Balance Report), but the seeded invoice aging report has no option to do so. would appreciate some help thanks in advance Ravi
-
My iPhone 4S with latest os no longer "rings" loud enough to hear of phone in holster or pocket. I am missing all my calls. Are there any fixes?
-
Transfer purchased HD iTunes movie from Apple TV to iMac
Hello, If I purchase a HD movie from iTunes can it be transferred to my iMac? Then, I would like to take that copy and put on my Macbook (with USB stick?) which is in turn synced to a second Apple TV. All of my hardware shares the same iTunes account
-
Intercompny billing for maintenance work orders
All, I have two scenarios dealing with intercompany activities for maintenance work orders. The first scenario involves a maintenance work order in Company B doing work on equipment also in Company B. The work order requires labor services and materi
-
Can anyone help me install the free office download (trial version) WITHOUT having to provide CC info???