Help with Coherence EntryProcessor design

Hi Gurus,
We are in the process of designing our End Of Day Trade processing application on Coherence 3.7.1, the use case is as under
1. Trades coming through JMS channels are split in to Parent Trade + Child SubTrades, these trades and subtrades are placed in to their respective cache, collocated by Key Affinity.
2. We want to use Entry Processors to process each type of SubTrade and update the Parent Trade (An EntryProcessor per SubTrade Type).
3. Once all SubTrades are processed, The Trade reaches the Completed State and should be Audited and removed from the cache with all its SubTrades.
The EntryProcessors are working fine on preloaded Cache, Can you Gurus please verify the approach and please advise us how to extend it further for Trades being added to the cache after the invocation of the EntryProcessors, i.e we want to call these processors recursively. Is there a way to know when all EntryProcessors has completed so a new Execution for the same can be initiated, we want to avoid a number of event processors lined up unnecessarily.
Regards
Edited by: 965684 on 17-Oct-2012 03:10

They probably liked your style ( on the green logo ) and want to incorporate it into their packaging.  You should be honest and tell them you do not have any experience.  They'll probably bring you in at "entry level" so they can groom you to their corporate culture.  You'll probably be working under a senior designer and will probably spend a few months learning how things are done.  I'd imagine you'll need some basic knowledge of Illustrator and Photoshop, if not some intermediate level capabilities with both programs.
Now, if you want to impress them, find a current package the company had produced in the last few years.  Pull it apart and get it to lie flat.  Re-create the entire piece using Illustrator.  This will include a spot layer with dies.  Focus on improving the design and look of the piece, but make sure you do not copy what has already been done.  Come up with something original and incorporate your version of the "green" logo.  It does not have to be anything out-of-sight, but shows you know the company, you know how to improve the existing packaging out there, and you'll show initiate.  They'll probably never use it ( like your "green" logo, but will get you the job ).
This will take you some time.  I do not know of any web tutorials, but both Illustrator and Photoshop come with a few.  You could also go to a local bookstore and take alook at what they have in their "graphic design" section.  Some books come with a CD that has some templates and files you can take a look at.
There must be a void they're looking to fill, otherwise you'd never get the interview.  Don't get too stressed out trying to impress them.  They're already impressed.  But, if you "claim" to know it all in software, you'll be doing yourself a huge injustice.  Talent does not come in a box.  Sounds like they're willing to get you started, so go for it.

Similar Messages

  • Help with Print Layout Designer

    Hi all,
    I'm not sure if I should post this here or not, I already posted it in the Business One Forum.  Moderator(s)  if this is not the proper place please delete it and let me know that it is not the appropriate venue.
    I need some help with Print Layout Designer.  I am running 2005A SP01, and my customer wants a modification to the Sales Backorder Report.  They want to add the column "In Stock" to both the report as displayed on the screen and the printed document.  The report rendered to the screen has the In Stock, but it is not checked as visible.  I check it and In Stock shows up as designed.  The part I am having problems with is the printed document. I opened the PLD from the Backorder Report, and saved it under a different name.  I resized some of the columns in the repetitive area (header and data) to make room for the In Stock column.  I CAN add the text field Instock as free text and enter "In Stock" as the content.  I looked at the "backorder" column in the PLD, and it is a text field with the source System Variable and the variable is 109.  I would assume that all I need to do in my added column is to set the source to System Variable and enter the variable number.  That is the problem; I can't find the variable number for that column.  I looked on the report rendered to the screen with system information on and the variable is "3 #000027825,OnHand".  I looked at the Back Order column of the report rendered to the screen and the variable is "3 #000028725,OpenCreQty".  I found a spreadsheet that is supposed to contain a list of system variables for 2007A, but the document type for this report is BRDR and that document type does not appear in the list of document types in that spreadsheet.  I looked for a similar spreadsheet for 2005A SP01 but didn't find one.  I DID find a document "How To Customize Printing Templates with the Print Layout Designer".  According to that document, I should be able to get the system variable from the report rendered to the screen with System Information turned on.  Can anyone help?
    TIA,
    Steve

    I haven't dealt with this before so I can't be certain, but here are my thoughts.
    The Backordered Qty is probably a calculated field, so that's why it's a system variable. The In Stock is a defined field, so you probably can use the file and field number, OITM, OnHand. I would look at maybe the stock number or description to see how those are setup on the form instead of the backordered qty field.

  • Can anyone help with database driven design

    Hi,
    I would like to determine the best way to serve large amounts
    of text on an html page. I have manuals with lots of links that I
    want to add to a website. I would like to employ database driven
    web development in my design, would this be a good use for it? If
    so would you suggest php and what database?
    Thanks!
    Please forgive me for double posting, I posted this in the
    general forum but maybe should have done it here first?

    I would say it totally depends on the format that the manuals
    are in. If they're HTML than you can store them as BLOB's in mysql
    and you're life will be rather easy. You would need to parse the
    blob output for URLs but that's about it.
    However, if the manuals are in PDF than a database wouldn't
    help with the storage of the actual files, however you can use
    either XML or a DB (i.e. mysql) to store the metadata about that
    manual so that you can at least make the site searchable.
    A little more information about your data/website would
    probably be helpful.
    Aram

  • Help with Package Label Design

    Hi, I work for a one of the fortune 500 company as a helpdesk. Last month my company came out with a go green logo and when I saw I decide to create one. I showed the logo to my Director and my director forwarded the design to the Marketing department. They really like the design, but they couldn't use it because they already pay a design company for that logo and the logo were already print on the market. What happen next, is that they send me an email Yesterday asking me if I'm interest in getting an interview for a packaging designer job and the interview is going to be for next month. Now, I have no experience with packaging, label and printing and they know that, but I will like to surprise the with couple of design. I would like to know what software do I need to use from design to printing and if there is any good website with good tutorials. Thanks

    They probably liked your style ( on the green logo ) and want to incorporate it into their packaging.  You should be honest and tell them you do not have any experience.  They'll probably bring you in at "entry level" so they can groom you to their corporate culture.  You'll probably be working under a senior designer and will probably spend a few months learning how things are done.  I'd imagine you'll need some basic knowledge of Illustrator and Photoshop, if not some intermediate level capabilities with both programs.
    Now, if you want to impress them, find a current package the company had produced in the last few years.  Pull it apart and get it to lie flat.  Re-create the entire piece using Illustrator.  This will include a spot layer with dies.  Focus on improving the design and look of the piece, but make sure you do not copy what has already been done.  Come up with something original and incorporate your version of the "green" logo.  It does not have to be anything out-of-sight, but shows you know the company, you know how to improve the existing packaging out there, and you'll show initiate.  They'll probably never use it ( like your "green" logo, but will get you the job ).
    This will take you some time.  I do not know of any web tutorials, but both Illustrator and Photoshop come with a few.  You could also go to a local bookstore and take alook at what they have in their "graphic design" section.  Some books come with a CD that has some templates and files you can take a look at.
    There must be a void they're looking to fill, otherwise you'd never get the interview.  Don't get too stressed out trying to impress them.  They're already impressed.  But, if you "claim" to know it all in software, you'll be doing yourself a huge injustice.  Talent does not come in a box.  Sounds like they're willing to get you started, so go for it.

  • Help with GRAPH Marker Design Tutorial

    I am trying to create a custom marker design for a line chart (Using Illustrator CS3). I've followed all the steps in the HELP RESOURCE CENTER, but I can not get my marker to size any larger than the initial itty-bitty-square it creates. According to HELP, you can size your artwork larger than the initial marker square you copy and build the art over. That the design is scaled so that the backmost rectangle in the design is the same as the default square marker.
    I've built it all in the proper order. But when I go to apply my new custom marker design, it is all sized DOWN to fit in the default square marker space.
    Anyone out there with experience in customizing?

    To add a detail: the marker box will always 6 pt square, no matter how big or small your designed marker is. So, to create a new marker design, simply draw the design as big or small as you want; position it in relation to the orig 6 pt square [which is always backmost].
    I found this clarification with step-by-step instructions in this pdf document:
    http://www.adobe.com/products/adobemag/archive/pdfs/9611qaai.pdf
    When you save your marker design in the graph dialogue box, only the portion of your design that falls WITHIN the 6 pt square is previewed; but your entire design will show up when you apply it.
    Hope this saves a bit of frustration!

  • Need help with installing CS6 Design Standard

    Hi all,
    Bought CS6 Design standard as a download from Currys the other day. I have a list of 4 files to download.
    First one is a PDF to tell me how to activate my student software.
    Second is a download .exe file for design standard
    Third is another .exe for illistrator content installer
    Fourth is another .exe for indesign and incopy content installer.
    I've donwloaded all 4 files and once i've clicked on the two content installers i then click on the design standard .exe file and up comes this error message "the file archive part of adobe cs6 design standard is missing. you need all parts in the same folder in order to extract adobe cs6 design standard. please download all parts."
    As google automatically places all the download items into the downloads folder, I'm assuming I've done the correct thing and placed them all in the same folder.
    I have read that you need to extract a .72 folder or something. however i cannot see that on my downloads list.
    Please could someone help, or is this a case of taking my laptop into currys and demanding someone to help me??

    you should contact your vendor to see where that 7z file is.
    btw, it should not be manually extracted.  the exe will extract the 7z file's contents.
    or you may be able to download from here, http://helpx.adobe.com/x-productkb/policy-pricing/cs6-product-downloads.html

  • Need help with a report design- 11.1.1.5(11g)

    Hello Experts
    I have a report with Category(Electronics, Home App..), Brand(Philips, samsung,..), products(TV, Laptop, Lamps..), % Expenses, % Profit and now the users want this report in such a way that Category, Brand and Products has to come under one column not a traditional way as above.
    In the subject area i have column variables Category, brand, Products and division is a custom name the users given to us in a design document. Any ideas how i can get this from presentation layer. please let me know if i am not clear.
    Division % Expenses % profit
    Electronics 20% 40%
    Home APP 15% 29%
    Philips 23% 31%
    Samsung 19% 54%
    TV 33% 48%
    Laptop 12% 26%
    Lamps 41% 62%
    Thanks,
    RC
    Edited by: user1146711 on May 30, 2012 1:31 PM
    Edited by: user1146711 on May 30, 2012 1:39 PM
    Edited by: user1146711 on May 30, 2012 1:44 PM
    Edited by: user1146711 on May 30, 2012 1:46 PM

    user1146711 wrote:
    Hello Experts
    I have a report with Category(Electronics, Home App..), Brand(Philips, samsung,..), products(TV, Laptop, Lamps..), % Expenses, % Profit and now the users want this report in such a way that Category, Brand and Products has to come under one column not a traditional way as above.
    In the subject area i have column variables Category, brand, Products and division is a custom name the users given to us in a design document. Any ideas how i can get this from presentation layer. please let me know if i am not clear.
    Division % Expenses % profit
    Electronics 20% 40%
    Home APP 15% 29%
    Philips 23% 31%
    Samsung 19% 54%
    TV 33% 48%
    Laptop 12% 26%
    Lamps 41% 62%
    Thanks,
    RC
    What you are trying to achieve is determined by how the data are set up in the repository. In order to get all the values under one heading called "division," it needs to be in the hierarchy that would than allow you to choose "division" and then the corresponding expenses and profits, regardless of the category, brand or porduct. If the category, brand and products columns don't have a corresponding "division" entry in the table, you will not be able to achieve what you desire.

  • Help with Lego Digital Designer Troubleshooting

    I downloaded LEGO Digital Designer 4.0 the first day I got this computer, on December 4, 2010. I went on it today and it wouldn't load so I downloaded the new version, LEGO Digital Designer 4.2. But I double-clicked on it and it still won't load. Can anyone help me? PLEASE! I really wanted to build something, . I want that frown to turn into this: ! HELP ME PLEASE!

    It looks to me that LDD was written for Leopard. I couldn't find any reference on their wesite for Lion compatability. Since you posted no profile I am assuming you have upgraded to Lion.

  • Help with SQL class design

    Hello,
    I was rocking along working on a CMS , when I found that my sql engine class
    was not going to do what I needed. So I am now re-writng the class, This time I want
    to make sure that my class will be able to handle any situation that my come up.
    So, my question is, if I have a SQL result containg multiple data types would
    using getObject be ok to use. In the code below I just want to return a vector
    full of vectors containg objects. Then let who ever called this class parse the
    returned vector and cast objects as needed.
    I this a good design?
    thanks,
    jd
    public Vector mkStmnt(String sqlCommand){
      sqlConnect();
      Vector resVector = new Vector();
      Vector resFullVector = new Vector();
      ResultSet res = null;
      try{
        Statement stmt = con.createStatement();
        boolean b = stmt.execute(sqlCommand);
        if(b){
          res = stmt.getResultSet();
          while(res.next()){
            for(int i = 1; i <= res.getMetaData().getColumnCount(); i++){     
            resVector.add(res.getString(i)); // want to change this to getObject
         }                                                   // so it can handle doubles and strings
                                                                 // correctly
            resFullVector.add(new Vector(resVector));
         resVector.removeAllElements();
        else{
           int updateCount = stmt.getUpdateCount();
           resVector.add(new Integer(updateCount).toString());
           resFullVector.add(new Vector(resVector));
           resVector.removeAllElements();
      }catch(Exception e){
         System.out.println(e + " catch 1");
      if(res != null){
        try{
          res.close();
         }catch(Exception e){
         System.out.println(e + "catch 2 ");
       closeCon();
       return resFullVector;
    }

    Well, you can't handle all possible statements wich such a construct. in addition, this conversion from a ResultSet to a self made Vector of Vector table costs too much performance. The casting is also expensive and the client code have to do lots of them. Much faster would be to return a ResultSet object and the client can get the values with specifc getXXX() methods. For simple, few requests this might be okay. i suggest you offer multiple choices in your "sql engine" class, e.g.:
         * Execute a SELECT statement on this object's connection.
         * @param sql SQL query with SELECT statement.
         * @return Result of the query or null if failed.
         * @throws SQLExceptionon error.
        public ResultSet select(String sql) throws SQLException {
            return select(getMyConnection(), sql);
        }//select()
         * Execute a SELECT statement on a specific connection.
         * @param connection Connection to use.
         * @param sql SQL query with SELECT statement.
         * @return ResultSet Result of the query or null if failed.
         * @throws SQLException on error.
        public ResultSet select(Connection connection, String sql) throws SQLException {
            ResultSet result = null;
            if (connection != null && sql != null) {
                Statement stmt = createStatement(connection);
                logger.fine(sql);
                boolean isResultSet = stmt.execute(sql);
                if (isResultSet) {
                    result = stmt.getResultSet();
                } else { //update count or no more results
                    stmt.close();
            }//else: input unavailable
            return result;
        }//select()
         * Get result of a SELECT statement in a Vector of Vector data structure (to be independent from
        * JDBC API in client code).
         * @param sql Select query to perform.
         * @return Vector with first element being a Vector with the column titles
         * and the remaining elements being Vectors with row values.
         * @throws SQLException on error.
        public Vector selectValues(String sql) throws SQLException {
            Vector result = null;
            if (sql != null) {
                ResultSet rs = select(sql);
                if (rs != null) {
                    int columnCount = 0;
                    //get titles:
                    Vector titles = new Vector();
                    try {
                        ResultSetMetaData rsmd = rs.getMetaData();
                        columnCount = rsmd.getColumnCount();
                        for (int i = 1; i <= columnCount; i++) {
                            String columnName = rsmd.getColumnName(i);
                            titles.addElement(columnName);
                        }//next column
                        result = new Vector();
                        result.addElement(titles);
                        //get values:
                        Vector row = null;
                        while (rs.next()) { //next row
                            row = new Vector(columnCount);
                            for (int i = 1; i <= columnCount; i++) { //for all columns
                                row.addElement(rs.getObject(i));
                            }//next column
                            result.addElement(row);
                        }//while(rs.next())
                    } finally {
                        closeResultSet(rs);
                }//else: ResultSet is null
            }//else: input unavailable
            return result;
        }//selectValues()btw: resFullVector.add(new Vector(resVector)); is one Vector too much ;-)

  • Help with my hp design jet 5500

    Hi I recently brought a hp designjet 5500 to set up a canvas business. It came with hp 81 dye inks and hp 81 print heads. I have brought hp 83 uv inks And I just wanted to know if I have to buy hp 83 print heads or can I just use the hp83 inks with the hp81 print heads? Are the two print heads different?
    Any help would be greatly appreciated.

    Try the document I linked below. It might be able to help you find the cause of the issue.
    http://h10025.www1.hp.com/ewfrf/wc/document?docname=c02221706
    Binary_Zen (worked at HP )
    Click the white Kudos star to say thanks
    Please mark Accept As Solution if it solves your problem

  • Help with a database design for community housing project

    Talking database design
    Hi all, I have been wondering about the design of tables for a big block of residential units. There are 100 + rooms. there are about 25 houses in this complex but the 100 + rooms are all rented out separately.
    Its just like a college campus really but its not a college campus , its a little unique.
    The rents are applied as a percentage of income, so thats not common, so I included a tblRoomCost where the pre-calculated weekly cost is entered, and its got a date field in there for when the change of rent charged. I probably need to include an income field in tblCustomer, even just as an Admin reference.
    So is this looking pretty ok and would there be any point in scrapping the database and using text files ?
    So what do you think of these tables please ?
    tblCustomer
    pkCustomer, fldFirstName, fldLastname
    tblRoomAllocation
    pkRoomID, fkCustomer
    tblRoomCost
    pkRoomID, fldDate, fldRoomCost
    tblTransactionID
    pkTransactionID, fldDate, fldTransactionType, fkCustomer, fldAmount

    The naming scheme is one I learned and havn't thought past it though I do get into trouble and your suggestion may prove useful when codeing !
    I thought the tblRoomAllocation and tblRoomCost took care of changing. Though I see now that tbleRoomAllocation needs a Date field really. And the tblRoomCost has a fldRoomCost which isnt really that good an implementation as the rooms themselves are priced always accoedijng to the income of a resident and not because of the room. So the real world object is getting fudgy........
    It is extremely unlikly that Admin would ever allow two rooms to be rented by an individual.
    I will have a look at possibly your suggestion that an Accounts table be used.
    Also I thought about having a startDate and EndDate in the tblTransaction to represent the period being paid for. Just seems like a lot of Dates in a transaction table. One to record the transaction, the other two dates to indicate the period that was actually being paid for. ? When perhaps I should work that out in the runtime code.v ? This will be a VB.Net app.
    Do you think there is a need for Accounts table if only one room is permitted to be rented , though room changing may be common?
    And thx for your input.
    Message was edited by:
    user521381

  • Help with Java Applet Design

    Hi,
    I'm a uni student and I've had some programming experience in Java, although sadly a bit lacking in the area of Java Applets.
    Recently I've being involved in a project where some tests are ran a number of times and a Data Aquisition System is used to transfer the number of cycles the test have currently done onto the computer, in a .csv file.
    What I would like to do is to make this count available in a web browser LIVE.
    I've come up with an idea, which is to write a Java Applet to read this file and output the correct count value in a textbox or what ever, however I am having a bit of difficulty making this update live.
    Should I have some sort of script inside the webpage source that re-
    runs the applet at regular intervals? If then how would that be possible?
    Or should I have the applet re-read the file at regular intervals and repaint it-self? If then there will be problems with timers and possible execution threads (which I don't quite understand yet)?
    One thing I want to be careful of is that this file to be read is updated by the DAQ system at random times, so whatever solution is implemented, I wouldn't want the file to be corrupted (e.g. if the file is read and written at the same time).
    Thanks for any help

    Read data from file at regular specified intervals,
    display data in an applet.
    U can use java.util.Timer and TimerTask and schedule the task.
    for applets to read file, you may have have to sign the applet.
    public class ReadApplet{
    private Timer timer;
    private TimerTask tt;
    private JTextField tf;
    public void init(){
    tf=new JTextField(15);
    timer=new Timer();
    tt = new TimerTask(){
    public void run(){
    try{
    BufferedReader fr=new BufferedReader(new FileReader(datafile));
    String data = br.readLine();
    int num = Integer.parseInt( data);
    tf.setText("" + num);
    }catch(Exception e) {}
    timer.schedule( tt, 0, interval);
    - create a jar file containing the class file
    - generate a key using keytool -genkey
    - sign the applet jar with jarsigner -signedjar using your key
    -include applet code in html file
    <applet code="Yourapplet.class" ARCHIVE="your signed jar" width="" height=""></applet>
    It should work

  • Help with print layout designer - backorder report

    Hello,
    There is a canned report in the reports section of Sales - A/R called "Backorder". I need to modify the layout on this report so that it shows customer name instead of customer code. Currently it is setup to show "customer code". The field is a variable and 'link to' field shows "F_160".
    How can I determine link to fields the corresponding #?
    Thanks!

    Hi Ali Shah,
    You can do your customization in the back order report like bring the purchase order vendor name and sales order customer and so.on if you want ....
    Put the Database field in the layout and PRESS Shift + Alt on same time and select the field  and selected the purchase order / customer name and map it.
    Now you will get the customer/vendor name in the repetative area... I Did the same and replying to your question here. so no doubt you can bring the information Mr.Ali.
    Best of Luck
    Regards
    PL.Chidambaram

  • Help with a Form Design

    Im working on a form that uses 2 tables. One had the user information and the other one had information about activities from the user. The user can enter one or more activities. Which type of page i can use? ( master detail form, form on a table..) I wanna see the 2 tables in only one page.. thanks in advance..

    There should be an option for using the same page as described in the manual here [http://download.oracle.com/docs/cd/E14373_01/appdev.32/e11838/app_comp.htm#BCEBEDIC]
    Look for the phrase "Edit detail as tabular form on same page"
    By "create another one for the other table", are you saying that you choose a master table in the wizard and then it ends and you have to go back to the wizard?
    Greg

  • Help with encapsulation and a specific case of design

    Hello all. I have been playing with Java (my first real language and first OOP language) for a couple months now. Right now I am trying to write my first real application, but I want to design it right and I am smashing my head against the wall with my data structure, specifically with encapsulation.
    I go into detail about my app below, but it gets long so for those who don't want to read that far, let me just put these two questions up front:
    1) How do principles of encapsulation change when members are complex objects rather than primitives? If the member objects themselves have only primitive members and show good encapsulation, does it make sense to pass a reference to them? Or does good encapsulation demand that I deep-clone all the way to the bottom of my data structure and pass only cloned objects through my top level accessors? Does the analysis change when the structure gets three or four levels deep? Don't DOM structures built of walkable nodes violate basic principles of encapsulation?
    2) "Encapsulation" is sometimes used to mean no public members, othertimes to mean no public members AND no setter methods. The reasons for the first are obvious, but why go to the extreme of the latter? More importantly HOW do you go to the extreme of the latter? Would an "updatePrices" method that updates encapsulated member prices based on calculations, taking a single argument of say the time of year be considered a "setter" method that violates the stricter vision of encapsulation?
    Even help with just those two questions would be great. For the masochistic, on to my app... The present code is at
    http://www.immortalcoil.org/drake/Code.zip
    The most basic form of the application is statistics driven flash card software for Japanese Kanji (Chinese characters). For those who do not know, these are ideographic characters that represent concepts rather than sounds. There are a few thousand. In abstract terms, my data structure needs to represent the following.
    -  There are a bunch of kanji.
       Each kanji is defined by:
       -  a single character (the kanji itself); and
       -  multiple readings which fall into two categories of "on" and "kun".
          Each reading is defined by:
          -  A string of hiragana or katakana (Japanese phoenetic characters); and
          -  Statistics that I keep to represent knowledge of that reading/kanji pair.Ideally the structure should be extensible. Later I might want to add statistics associated with the character itself rather than individual readings, for example. Right now I am thinking of building a data structure like so:
    -  A Vector that holds:
       -  custom KanjiEntry objects that each hold
          -  a kanji in a primitive char value; and
          -  two (on, kun) arrays or Vectors of custom Reading objects that hold
             -  the reading in a String; and
             -  statistics of some sort, probably in primitive valuesFirst of all, is this approach sensible in the rough outlines?
    Now, I need to be able to do the obvious things... save to and load from file, generate tables and views, and edit values. The quesiton of editting values raises the questions I identified above as (1) and (2). Say I want to pull up a reading, quiz the user on it, and update its statistics based on whether the user got it right or wrong. I could do all this through the KanjiEntry object with a setter method that takes a zillion arguments like:
    theKanjiEntry.setStatistic(
    "on",   // which set of readings
    2,      // which element in that array or Vector
    "score", // which statistic
    98);      // the valueOr I could pass a clone of the Reading object out, work with that, then tell the KanjiEntry to replace the original with my modified clone.
    My instincts balk at the first approach, and a little at the second. Doesn't it make more sense to work with a reference to the Reading object? Or is that bad encapsulation?
    A second point. When running flash cards, I do not care about the subtlties of the structure, like whether a reading is an on or a kun (although this is important when browsing a table representing the entire structure). All I really care about is kanij/reading pairings. And I should be able to quickly poll the Reading objects to see which ones need quizzing the most, based on their statistics. I was thinking of making a nice neat Hashtable with the keys being the kanji characters in Strings (not the KanjiEntry objects) and the values being the Reading objects. The result would be two indeces to the Reading objects... the basic structure and my ad hoc hashtable for runninq quizzes. Then I would just make sure that they stay in sync in terms of the higher level structure (like if a whole new KanjiEntry got added). Is this bad form, or even downright dangerous?
    Apart from good form, the other consideration bouncing around in my head is that if I get all crazy with deep cloning and filling the bottom level guys with instance methods then this puppy is going to get bloated or lag when there are several thousand kanji in memory at once.
    Any help would be appreciated.
    Drake

    Usually by better design. Move methods that use the
    getters inside the class that actually has the data....
    As a basic rule of thumb:
    The one who has the data is the one using it. If
    another class needs that data, wonder what for and
    consider moving that operation away from that class.
    Or move from pull to push: instead of A getting
    something from B, have B give it to A as a method
    call argument.Thanks for the response. I think I see what you are saying.. in my case it is something like this.
    Solution 1 (disfavored):
    public class kanjiDrill{ // a chunk of Swing GUI or something
         public void runDrill(Vector kanjiEntries){
              KanjiEntry currentKanjiEntry = kanjiEntries.elementAt(0); // except really I will pick one randomly
              char theKanji = currentKanjiEntry.getKanji();
              String theReading = currentKanjiEntry.getReading();
              // build and show a flashcard based on theKanji and theReading
              // use a setter to change currentKanji's data based on whether the user answers correctly;
    }Solution 2 (favored):
    public class kanjiDrill{ // a chunk of Swing GUI or something
         public void runDrill(Vector kanjiEntries){
              KanjiEntry currentKanjiEntry = kanjiEntries.elementAt(0); // except really I will pick one randomly
              currentKanji.buildAndShowFlashcard(); // method includes updating stats
    }I can definitely see the advantages to this, but two potential reasons to think hard about it occur to me right away. First, if this process is carried out to a sufficient extreme the objects that hold my data end up sucking in all the functionality of my program and my objects stop resembling natural concepts.
    In your shopping example, say you want to generate price tags for the items. The price tags can be generated with ONLY the raw price, because we do not want the VAT on them. They are simple GIF graphics that have the price printed on a an irregular polygon. Should all that graphics generating code really go into the item objects, or should we just get the price out of the object with a simple getter method and then make the tags?
    My second concern is that the more instance methods I put into my bottom level data objects the bigger they get, and I intend to have thousands of these things in memory. Is there a balance to strike at some point?
    It's not really a setter. Outsiders are not setting
    the items price - it's rather updating its own price
    given an argument. This is exactly how it should be,
    see my above point. A breach of encapsulation would
    be: another object gets the item price, re-calculates
    it using a date it knows, and sets the price again.
    You can see yourself that pushing the date into the
    item's method is much beter than breaching
    encapsulation and getting and setting the price.So the point is not "don't allow access to the members" (which after all you are still doing, albeit less directly) so much as "make sure that any functionality implicated in working with the members is handled within the object," right? Take your shopping example. Say we live in a country where there is no VAT and the app will never be used internationally. Then we would resort to a simple setter/getter scheme, right? Or is the answer that if the object really is pure data are almost so, then it should be turned into a standard java.util collection instead of a custom class?
    Thanks for the help.
    Drake

Maybe you are looking for