How to make an Object common to all classes

I am building an application.
I need that one object (defined in the main class) be accesible to all other objects (classes). Also I need that any other object can change it.
How can I do that without passing the object's reference around? Actually I pass the reference through a SET method in each object. This is tedious!
Thanks a lot :)
iCamps

You could also create the Object using the singleton pattern. This way there is only one instance of the object, and every object that access it gets a reference to the same object.
public class SingletonObject {
    private SingletonObject instance;
    static {
        instance = new SingletonObject();
    public SingletonObject getInstance() {
        return instance;
    private SingletonObject() {
        // Constructor
    public synchronized method1() {}
    public synchronized method2() {}
}Then in your code access the SingletonObject like below. You can put a reference to the object in your constructor for each object that uses the SingletonObject, or jsut access it in the neccessary methods with SingletonObject.getInstance().
public class YourClass {
    public void someMethod() {
        SingletonObject so = SingletonObject.getInstance();
        so.method1();
        so.method2();
}

Similar Messages

  • How to make an object distributed across multiple jres?

    Hi,
    We used cache data mechanism for performance tuning. It will store data in static variable (Hashtable) and get initialized when app starts . We are using IPlanet Application Server and
    Using 6 KJS engines. This object ( Hashtable) is not distributed across all JRES.It has to reinitialize data again when request goes to any other KJS.
    We avoid sharing data in session and request, as data is huge.
    Can any one help us how to make this object distributed across all KJSs?
    Thanks in advance.
    raj

    We used cache data mechanism for performance tuning.
    It will store data in static variable (Hashtable) and
    get initialized when app starts.
    We are using IPlanet Application Server and
    Using 6 KJS engines. This object ( Hashtable) is not
    distributed across all JRES. It has to reinitialize
    data again when request goes to any other KJS.
    We avoid sharing data in session and request, as data
    is huge.
    Can any one help us how to make this object
    distributed across all KJSs?When you say 'initialized when app starts' do you mean iPlanets StartUp classes, rather than the Servlets init() ? Given a 'huge' dataset, avoid the latter.
    I'd suggest that a better approach is to implement this as an Entity Bean and accessed from Session bean and using Value Objects to return the data subsets.
    Checkout the Java Pet Store
    http://java.sun.com/blueprints/code/jps13/datasheet.html

  • HOw to make an Object oriented alv respond to double click

    Hi all,
    HOw to make an Object oriented alv respond to double click.SAmple code will be helpful.
    Thanks in advance,
    Alex.

    Hi,
    1. Create a Control (for Custom and Split Containers only)
    2. Instantiate a Container Object (in case of Custom and Split Containers, specify the control which is created by us in Screen painter) CREATE OBJECT
    3. Instantiate an Object of the kind of report that has to be displayed (List, Grid or Tree). CREATE OBJECT . Here we need to specify the Parent Container as the so that it sits in that container.
    4. Call appropriate methods to display the report on the screen. CALL METHOD ->
    DATA : g_dock TYPE REF TO cl_gui_docking_container,
    g_split TYPE REF TO cl_gui_easy_splitter_container,
    g_cont1 TYPE REF TO cl_gui_container,
    g_cont2 TYPE REF TO cl_gui_container,
    g_grid1 TYPE REF TO cl_gui_alv_grid,
    g_grid2 TYPE REF TO cl_gui_alv_grid.
    i_mara is an internal table of structure MARA
    SELECT * FROM mara INTO TABLE i_mara.
    i_kna1 is an internal table of structure KNA1
    SELECT * FROM kna1 INTO TABLE i_kna1.
    To create an Object of type Docking Container
    CREATE OBJECT g_dock
    EXPORTING
    side = cl_gui_docking_container=>dock_at_top
    extension = 200 .
    To Create an Object of Type Split Container. Here we can see that the Docking *Container Created above has been used as a parent .
    CREATE OBJECT g_split
    EXPORTING
    parent = g_dock
    orientation = 1 .
    Easy Split container splits one Control into 2 manageable controls, each of them is used * to handle one GUI Container each
    g_cont1 = g_split->top_left_container.
    g_cont2 = g_split->bottom_right_container.
    To Create an Object of type Grid . Here we can see that the Left Split Container * Created above has been used as a parent .
    CREATE OBJECT g_grid1
    EXPORTING
    i_parent = g_cont1 .
    To Create an Object of type Grid . Here we can see that the Right Split Container * Created above has been used as a parent .
    CREATE OBJECT g_grid2
    EXPORTING
    i_parent = g_cont2 .
    The method of Grid Control Object is used to display the Data.
    CALL METHOD g_grid1->set_table_for_first_display
    EXPORTING
    i_structure_name = 'MARA'
    CHANGING
    it_outtab = i_mara[] .
    The method of Grid Control Object is used to display the Data.
    CALL METHOD g_grid2->set_table_for_first_display
    EXPORTING
    i_structure_name = 'KNA1'
    CHANGING
    it_outtab = i_kna1[] .
    Regards
    Hari

  • How to make Shape3D object translucent

    Hi,
    How to make Shape3D object (like Box, Cylinder) translucent? I tried the below option but the box is not becoming translucent at all.
    final PhongMaterial redMaterial = new PhongMaterial();
              redMaterial.setSpecularColor(Color.rgb(10, 255, 15, opacity));
              redMaterial.setDiffuseColor(Color.rgb(10, 255, 15, opacity));
    final Box box = new Box(width,height,depth);
    box.setMaterial(redMaterial);
    When opacity is 1, the color of the box will be Green, when it is 0 the color becomes black.
    Is there any way the box can be made translucent?

    There is at least one unresolved issue concerning PhongMaterial's transparency: RT-28874.
    I'm neither able to get it working properly. My red Sphere also fades to black while varying the opacity value from 1.0 to 0.0.
    August

  • How can 1 make an object of user defined class immutable?

    Hi All,
    How can one make an object of user defined class immutable?
    Whats the implementation logic with strings as immutable?
    Regards,

    Hi All,
    How can one make an object of user defined class
    immutable?The simple answer is you can't. That is, you can't make the object itself immutable, but what you can do is make a wrapper so that the client never sees the object to begin with.
    A classic example of a mutable class:
    class MutableX {
        private String name = "None";
        public String getName() {
            return name;
        public void setName(String name) {
            this.name = name;
    }I don't think it's possible to make this immutable, but you can create a wrapper that is:
    class ImmutableX {
        private final MutableX wrappedInstance;
        public ImmutableX (String name) {
            wrappedInstance = new MutableX();
            wrappedInstance.setName(name);
        public String getName() {
            return wrappedInstance.getName();
        // Don't give them a way to set the name and never expose wrappedInstance.
    }Of course, if you're asking how you can make your own class immutable then the simple answer is to not make any public or protected methods that can mutate it and don't expose any mutable members.
    Whats the implementation logic with strings as
    immutable?
    Regards,I don't understand the question.

  • How to make saved IR available for all users

    Hi,
    I've created IR and saved it to several tabs based on search conditions.
    But they're only visible for developers.
    How to make these tabs available for all end-users ?
    Does version 4.0 support this option ?
    Thank you!

    Hi
    At present this feature is not included, although I believe it may be in 4.0. Many people have provided workarounds for this. None of which I have tried. I cannot find the original thread but here is a solution from a chap called Ruud
    >
    One way to share your saved reports with others is to 'Publish' your report settings to a few intermediate tables in your application and have other users 'Import' your settings from there. The reason for using intermediate tables is so that not all your saved reports need to be 'visible' to other users (only those that you've chosen to publish).
    Basically you have available the following views and package calls that any APEX user can access:-
    - flows_030100.apex_application_pages (all application pages)
    - flows_030100.apex_application_page_ir_rpt (all saved reports - inclusing defaults and all user saved reports)
    - flows_030100.apex_application_page_ir_cond (the associated conditions/filters for above saved reports)
    - wwv_flow_api.create_worksheet_rpt (package procedure that creates a new saved report)
    - wwv_flow_api.create_worksheet_condition (package procedure that creates a condition/filter for above saved report)
    The way I've done it is that I've created 2 tables in my application schema that are straightforward clones of the 2 above views.
    CREATE TABLE user_report_settings AS SELECT * FROM flows_030100.apex_application_page_ir_rpt;
    CREATE TABLE user_report_conditions AS SELECT * FROM flows_030100.apex_application_page_ir_cond;
    ( NB. I deleted any contents that may have come across to make sure we start with a clean slate. )
    These two tables will act as my 'repository'.
    To simplify matters I've also created 2 views that look at the same APEX views.
    CREATE OR REPLACE VIEW v_report_settings AS
    SELECT r.*
    p.page_name
    FROM flows_030100.apex_application_page_ir_rpt r,
    flows_030100.apex_application_pages p
    WHERE UPPER ( r.application_name ) = <Your App Name>
    AND r.application_user 'APXWS_DEFAULT'
    AND r.session_id IS NULL
    AND p.application_id = r.application_id
    AND p.page_id = r.page_id;
    CREATE OR REPLACE VIEW v_report_conditions AS
    SELECT r.*
    p.page_name
    FROM flows_030100.apex_application_page_ir_cond r,
    flows_030100.apex_application_pages p
    WHERE UPPER ( r.application_name ) = <Your App Name>
    AND r.application_user 'APXWS_DEFAULT'
    AND p.application_id = r.application_id
    AND p.page_id = r.page_id;
    I then built 2 screens:-
    1) Publish Report Settings
    This shows 2 report regions:-
    - Region 1 - Shows a list of all your saved reports from V_REPORT_SETTINGS (filtered to only show yours)
    SELECT apex_item.checkbox ( 1, report_id ) " ",
    page_name,
    report_name
    FROM v_report_settings
    WHERE application_user = :APP_USER
    AND ( page_id = :P27_REPORT OR :P27_REPORT = 0 )
    ORDER BY page_name,
    report_name
    Each row has a checkbox to select the required settings to publish.
    The region has a button called PUBLISH (with associated process) that when pressed will copy the settings from
    V_REPORT_SETTINGS (and V_REPORT_CONDITIONS) into USER_REPORT_SETTINGS (and USER_REPORT_CONDITIONS).
    - Region 2 - Shows a list of already published reports in table USER_REPORT_SETTINGS (again filtered for your user)
    SELECT apex_item.checkbox ( 10, s.report_id ) " ",
    m.label,
    s.report_name
    FROM user_report_settings s,
    menu m
    WHERE m.page_no = s.page_id
    AND s.application_user = :APP_USER
    AND ( s.page_id = :P27_REPORT OR :P27_REPORT = 0 )
    ORDER BY m.label,
    s.report_name
    Each row has a checkbox to select a setting that you would like to delete from the repository.
    The region has a button called DELETE (with associated process) that when pressed will remove the selected
    rows from USER_REPORT_SETTINGS (and USER_REPORT_CONDITIONS).
    NB: P27_REPORT is a "Select List With Submit" to filter the required report page first.
    Table MENU is my application menu table where I store my menu/pages info.
    2) Import Report Settings
    This again shows 2 report regions:-
    - Region 1 - Shows a list of all published reports in table USER_REPORT_SETTINGS (filtered to show only other users saved reports)
    SELECT apex_item.checkbox ( 1, s.report_id ) " ",
    m.label,
    s.report_name,
    s.application_user
    FROM user_report_settings s,
    menu m
    WHERE m.page_no = s.page_id
    AND s.application_user :APP_USER
    AND ( s.page_id = :P28_REPORT OR :P28_REPORT = 0 )
    ORDER BY m.label,
    s.report_name,
    s.application_user
    Each row has a checkbox to select the setting(s) that you would like to import from the repository.
    The region has one button called IMPORT that when pressed will import the selected settings.
    It does this by using the 2 above mentioned package procedure to create a new saved report for you
    with the information form the repository. Be careful to match the right column with the right procedure
    parameter and to 'reverse' any DECODEs that the view has.
    - Region 2 - Shows a list of all your saved reports from V_REPORT_SETTINGS (filtered to only show yours)
    SELECT page_name,
    report_name
    FROM v_report_settings
    WHERE application_user = :APP_USER
    AND ( page_id = :P28_REPORT OR :P28_REPORT = 0 )
    ORDER BY page_name,
    report_name
    This is only needed to give you some feedback as to whether the import succeeded.
    A few proviso's:-
    a) I'm sure there's a better way to do all this but this works for me :-)
    b) This does not work for Computations! I have not found an API call to create computations.
    They will simply not come across into the repository.
    c) If you import the same settings twice I've made it so that the name is suffixed with (2), (3) etc.
    I did not find a way to update existing report settings. You can only create new ones.
    d) Make sure you refer to your saved reports by name, not ID, when matching APEX stored reports and the
    reports in your repository as the ID numbers may change if you re-import an application or if you
    auto-generate your screens/reports (as I do).
    Ruud
    >
    To me this is a bit too much of a hack and I personally wouldn't implement it - it's just an example to show it can be done.
    Also if you look here in the help in APEX Home > Adding Application Components > Creating Reports > Editing Interactive Reports
    ...and go to the last paragraph, you can embed predicates in the URL.
    Cheers
    Ben
    http://www.munkyben.wordpress.com
    Don't forget to mark replies helpful or correct ;)
    Edited by: Munky on Jul 30, 2009 8:03 AM

  • How to make warehouse field inactive for all users in all documents autom.

    Hi All,
    Can anyone pls tell me "**how to make warehouse field inactive for all users in all documents without having to do it through form setting** "for each and every user. It should be visible but inactive
    Thanks & Regards,
    Mukesh Agrawal

    Hi,
    As a work around create a warehouse SelectWH and map the mandatory acoounts as a On hold account(in chart of accounts).So there will not be any posting on this account.
    And set this warehouse as default warehouse for all users.
    So without selecting the appropriate warehouse the user can not add the document.
    I think this might resolve you issue.

  • How to make any object self-shining?

    hi,
    i guess thats an easy question, but i dont know where to look for the answer.
    so how to make any object self-shining like the infamous colorcube, so that one does not need to place any light?
    and am I right in my assumption that doing so will reduce the need of rendering power, since lights dont have to be computed?
    thanx,
    Usul

    I'm not sure what you mean here- if your object is lit then lighting will need to be calculated. If you don't want shapes to be lit, I think you can disable it by calling setLightingEnable(false) in their materials.

  • How to make an object mutable?

    Can any one tell me how to make an object mutable?
    Following is Class X & Y?
    class Y
    public static void main(String arg[]) {
    X a1=new X();
    Object a=a1.get();
    System.out.println(a.toString());
    a1.set(a);
    System.out.println(a.toString());
    class X implements Serializable
    public Object get(){
    return new Object();
    public synchronized void set(Object o)
    o=null;
    In my class Y when i say
    a1.set(a);
    I want local Object a of main method should be nullified.
    Can it be possible if yes what is the way or code to be applied so that
    my next a.toString() statement will give me NullpointerException.

    Isn't it more accurate to say that object references are passed by value?
    OP -- Basically you can't to what you want to do. When you "pass an object" as a method parameter, what you're really passing is a copy of the reference that points to the object. You now have two refs pointing to the same object--one in the caller and one in the method being executed. Setting either of those refs to null does NOT affect the object itself, and does NOT affect the other ref. It just means that the ref that's been set to null no longer points to any object.
    If you want the called method to make a change that the caller can see, you need to either 1) return a value from the method, 2) encapsulate the object to be changed as a member of new class, or 3) pass the object to be changed as the single element of an array. I would STRONGLY recommend against (3) as a way to simulate pass by reference. Better to examine your design and determine whether (1) or (2) more closely matches what you're really trying to accomplish.

  • How to make touchpad Be sensitive to all areas of his

    hi
    i have Lenovo x201 and i have problem.
    how to make touchpad Be sensitive to all areas of his ?
    for example, the top area not responding if i drag my finger
    from the top to bottom - but if i drag my finger from the middle to bottom its works fine.
    i need to make the touchpad be sensitive for all his area

    Hi,
    I have already responded for a similar query of yours in this thread. Please change the settings as mentioned and revert if issue persists.
    Regards,
    Mithun.
    Did someone help you today? Press the star on the left to thank them with a Kudo!
    If you find a post helpful and it answers your question, please mark it as an "Accepted Solution"! This will help the rest of the Community with similar issues identify the verified solution and benefit from it.
    Follow @LenovoForums on Twitter!

  • How to make my tab page shows all my applications?

    How to make my tab page shows all my applications?Please help me as fast as possible. Thx .
    Note: Please write as detail as possible because I am new to vb.Thx again.

    Hi,
     For a lack of info about what Applications you are talking about we can only guess at what you want to do. In my experience, this is the kind of question that ends up being a mile long with 15 different examples because nobody knows exactly what you
    are trying to do.
     With that said, maybe you can put a ListView in your TabPage and use the code i showed in the link below. If not then please explain exactly what you want to do.  8)
    How to make a screen that displays 'all apps'?
    If you say it can`t be done then i`ll try it

  • How to make a safe copy of all mails or to export these?

    Hello, I'n newbie on Mac OS X. I've been wondering how to make a safe copy of all mails in my inbox or to export all of them, like on Outlook with the function "Export". I don't find such function under MAIL. Can you please help me? Thanks
    Best regards.

    Hi
    Welcome to Mac Computing.
    The folder holding your e-mail plus mailboxes etc. is located (via the Finder) in your User Account>Library>Mail folder. You can copy this folder to external media, such as another hard drive, or CD/DVD.
    If you want to save specific e-mails, follow these directions from Mail's Help section (Help Menu):
    Exporting email messages:
    You can save one or more messages as a separate file to archive messages or to import the contents into another application. You can open the saved message in TextEdit.
    Open the message you want to export.
    Choose File > Save As, and enter a name for the file.
    Choose a location for the file from the Where pop-up menu.
    Choose a format from the pop-up menu.
    If you choose Rich Text Format, the text formatting of the message will be visible.
    If you choose Plain Text, the colors, fonts, and other formatting will be lost.
    If you choose Raw Message Source, the full delivery headers will be visible. If the message has attachments, you'll only see the encoded version of the attached files.
    A Good way to familiarize yourself with OS X is to pick up a copy of Scott Kelby's book OS X Tiger: Killer Tips.
    Post back

  • How to create an object within the same class???

    hi im just a newbie
    i v been always creating an object from the main class..
    but how to create an object inside the same class??
    i got main and students class
    the main got an array
    Students[] stu = new Students[]
    and i got
    stu[i] = new Students(id,name);
    i++;
    but i wanna do these things inside the Students class..
    i tried ..but i got errors.....
    how to do this
    .

    javaexpert, :)
    I really have no idea what you are trying to do since you say you've always been creating an object from the main class, yet you always want to create an object inside the same class.
    I'll assume that you have an object in the main class that you are trying to access from the Students class.
    If you are trying to access objects that are contained within the main class FROM the Students class, then know that there are two ways of doing so, one being static, and the other dynamic (look up definitions if unclear):
    1.) make the objects in the main class both static and public and access the the objects using a convention similiar to: Main.object; It's important to note that Main is the name of your main class, and object is a static object. There are better ways of doing this by using gettter/setter methods, but I'll omit that tutorial.
    2.) Create a new instance of the main class and access the objects using a similiar fashion: Main myInstance = new Main(); myInstance.myObject;
    You should really use getter and setter methods but I'll omit the code. In terms of which approach is better, step one is by far.
    I don't mean to be condecending, but you should really brush up on your programming skills before posting to this forum. This is a fundamenetal concept that you will encounter time and time again.

  • How to create an object of our own class by using Class.forName()??

    how to create an object of our own class by using Class.forName()??
    plzz anser my qustion soon..

    Class.forName does not create an object. It returns a reference to the Class object that describes the metadata for the class in question--what methods and fields it has, etc.
    To create an object--regardless of whether it's your class or some other class--you could call newInstance on the Class object returned from Class.forName, BUT only if that class has a no-arg constructor that you want to call.
    Class<MyClass> clazz = Class.forName("com.mycompany.MyClass");
    MyClass mine = clazz.newInstance();If you want to use a constructor that takes parameters, you'll have to use java.lang.reflect.Constructor.
    Google for java reflection tutorial for more details.
    BUT reflection is often abused, and often employe when not needed. Why is it that you think you need this?

  • How to make text/objects move nonlinear speed on AE CC?

    Hi,
    I was wondering two questions:
    1) how to make "text holders" that has small animation. Here is an example from a video http://www.youtube.com/watch?v=5oSWt84VoAg (0:41).
    2) how to move objects with increasing speed and soft slow down. I know how to change speed, but how to make it so that it is only accelerating and slowing down? Same examle can be found from the clip above with the place holders and texts.
    Thank you for your help. If there is same kind of discussion going on please let me know. I could not find it.

    All of what you want to do comes down to the fine art of learning how to magle curves in the graph editor, which is nothing you can learn from just watching totorials. You learn it by doing and collecting experience.
    Mylenium

Maybe you are looking for

  • Swap Actiontec MI424WR Router

    Verizon needed to swap my Actiontec MI424WR router for performance reasons.  However I had a significant amount of time invested in my configuration so I was reluctant to agree.  Fortunately I had 7 versions of my configuration saved.  It was my unde

  • Which 3G iPad 2 is better, Verizon or ATT?

    I am going to buy a 3G iPad 2 and I would like some advice on whether ATT or Verizon has better service.  I have iphones on both ATT and Verizon and one is not really any better than the other.

  • The location bar has disappeared from the top of any tab that I open. How can I get it back?

    The location bar has disappeared from the top of any tab I open, so there is nowhere to type in a web address. Could I have accidentally made this happen? How do I get it back?

  • Failed to add node to cluster

    Hey, I am currently migrating my cluster. I removed the server pool master according to the metalink note by doing a failover (stopped the agent on the server pool master) Deleted the old master (node2) from the server pool. Executed the cleanup scri

  • Imported older PDFs view as blank pages but print ok

    When I open older pdfs or scanned docs and images they view a blank grey pages, but print ok