Best way to implement extension to String

I have an webapp that displays data taken from a database, and I have lots of Strings that need to be tweaked for HTML display. For example, I want to replace Ca2+ with Ca<sup>2+</sup>.
So currently I have a static method that takes care of this
public static String formatForHTML(String input) {
        input = input.replace("Ca2+", "Ca<sup>2+</sup>");
        input = input.replace("Cs+", "Cs<sup>+</sup>");
      etc etc
        return input;
    }which gets called from various places:
public String getComments() {
        return Format.formatForHTML(comments);
    }I feel that a better way of doing this would be to make a lightweight class - essentially I want to do something like this
public class SpecialString extends String{
public String formatNicely{
  String temp = this;
  temp = temp.replace("Ca2+", "Ca<sup>2+</sup>");
  etc.
  return temp;
}This would allow me to do this
SpecialString s = "An interesting ion is Ca2+";
out.println(s.formatNicely());While still allowing me to use all the String methods
int length = s.length();
String start = s.subString(0,3);I know that String is final, so I can't do the above. The obvious thing is to make a lightweight class that uses a String internally
public class SpecialString{
    private String s;
    public SpecialString(String init){
    this.s = init;
    public String formatNicely(){
        String temp = s;
        temp = temp.replace("Ca2+", "Ca<sup>2+</sup>");
        etc.
        return temp;
}This is fine, and allows me to do
SpecialString s = "An interesting ion is Ca2+";
out.println(s.formatNicely());BUT I now don't have access to all the other String methods
SpecialString s = "An interesting ion is Ca2+";
int length = s.length();  // no such methodI can add an accessor
public class SpecialString{
    private String s;
    public SpecialString(String init){
    this.s = init;
    public String formatNicely(){
        String temp = s;
        temp = temp.replace("Ca2+", "Ca<sup>2+</sup>");
        etc.
        return temp;
    public String getSpecialString(){
       return this.s;
}and now call
SpecialString s = "An interesting ion is Ca2+";
int length = s.getSpecialString().length();  // OK nowOR I can manually add methods to my SpecialString class
public class SpecialString{
    private String s;
    public SpecialString(String init){
    this.s = init;
    public String formatNicely(){
        String temp = s;
        temp = temp.replace("Ca2+", "Ca<sup>2+</sup>");
        etc.
        return temp;
    public int length(){
         return this.s.length();
}and call
SpecialString s = "An interesting ion is Ca2+";
int length = s.length();  // also OKBoth of these solutions seem like a lot of extra code. Is this just a feature of the Java that I have to live with, or is there a better way to do this?

mojones wrote:
I have an webapp that displays data taken from a database, and I have lots of Strings that need to be tweaked for HTML display. For example, I want to replace Ca2+ with Ca<sup>2+</sup>.
So currently I have a static method that takes care of this
public static String formatForHTML(String input) {
input = input.replace("Ca2+", "Ca<sup>2+</sup>");
input = input.replace("Cs+", "Cs<sup>+</sup>");
etc etc
return input;
}which gets called from various places:
public String getComments() {
return Format.formatForHTML(comments);
}I feel that a better way of doing this would be to make a lightweight class - essentially I want to do something like this
public class SpecialString extends String{
public String formatNicely{
String temp = this;
temp = temp.replace("Ca2+", "Ca<sup>2+</sup>");
etc.
return temp;
}This would allow me to do this
SpecialString s = "An interesting ion is Ca2+";
out.println(s.formatNicely());While still allowing me to use all the String methods
int length = s.length();
String start = s.subString(0,3);I know that String is final, so I can't do the above. The obvious thing is to make a lightweight class that uses a String internally
public class SpecialString{
private String s;
public SpecialString(String init){
this.s = init;
public String formatNicely(){
String temp = s;
temp = temp.replace("Ca2+", "Ca<sup>2+</sup>");
etc.
return temp;
}This is fine, and allows me to do
SpecialString s = "An interesting ion is Ca2+";
out.println(s.formatNicely());BUT I now don't have access to all the other String methods
SpecialString s = "An interesting ion is Ca2+";
int length = s.length();  // no such methodI can add an accessor
public class SpecialString{
private String s;
public SpecialString(String init){
this.s = init;
public String formatNicely(){
String temp = s;
temp = temp.replace("Ca2+", "Ca<sup>2+</sup>");
etc.
return temp;
public String getSpecialString(){
return this.s;
}and now call
SpecialString s = "An interesting ion is Ca2+";
int length = s.getSpecialString().length();  // OK nowOR I can manually add methods to my SpecialString class
public class SpecialString{
private String s;
public SpecialString(String init){
this.s = init;
public String formatNicely(){
String temp = s;
temp = temp.replace("Ca2+", "Ca<sup>2+</sup>");
etc.
return temp;
public int length(){
return this.s.length();
}and call
SpecialString s = "An interesting ion is Ca2+";
int length = s.length();  // also OKBoth of these solutions seem like a lot of extra code. Is this just a feature of the Java that I have to live with, or is there a better way to do this?you could store into the database both strings- one without the html and another with the html

Similar Messages

  • Displaying Multiple Values on GUI components - best way to implement

    Hi,
    my program needs to implement a basic function that most commercial programs use very widely: If the program requires that a GUI component (say a JTextField) needs to display multiple values it either goes <blank> or say something more meaningfull like "multiple values". What is the best way of implementing it?
    In particular:
    My data is a class called "Student" that among other things has a field for the student name, like: protected String name; and the usual accessor methods (getName, setName) for it.
    Assuming that the above data (i.e. Student objects) is stored in a ListModel and the user can select multiple "Students", if a JTextField is required to display the user selection (blank for multiple selections, or the student "name" for a single selection), what is the best (OO) way of implementing it? Is there any design pattern (best practice) for this basic piece of functionality? A crude way is to have the JTextField check and compare all the time the user selections one by one, but I'm sure there must be a more OO/better approach.
    Any ideas much appreciated.
    Kyri.

    Ok, I will focus on building a solution on 12c.
    right now I have used a USER_DATASTORE with a procedure to glue all the field together in one document.
    This works fine for the search.
    I have created a dummy table on which the index is created and also has an extra field which contains the key related to all the tables.
    So, I have the following tables:
    dummy_search
    contracts
    contract_ref
    person_data
    nac_data
    and some other tables...
    the current design is:
    the index is on dummy_search.
    When we update contracts table a trigger will update dummy_search.
    same configuration for the other tables.
    Now we see locking issues when having a lot of updates on these tables as the same time.
    What is you advice for this situation?
    Thanks,
    Edward

  • Best way to implement a simple read of multiple stings from a db

    Hello guys,
    I am trying to read a collection of countries (Strings) into a collection inside a Movie object. The countries reside in a separate DB table with a FK referencing the Movie.
    My questions:
    1) What is the best way to implement this? Do I need a seperate entity 'country' ? Is there a general way to read many strings into a collection?
    2) the countries list does not have to be updated, only read. How do I make sure it is not persistent?
    I have noticed that in my JPA implementation (in netbeans) I do not have something like CollectionOfElements (that is present in hybernate).
    Thank you,
    Marek

    >
    My questions:
    1) What is the best way to implement this? Do I need a seperate entity 'country' ? Is there a general way to read many strings into a collection?
    Probably yes, you need to have one entity for country.for getting the right answer, Post it here - Enterprise Technologies - Java EE SDK (http://forums.sun.com/forum.jspa?forumID=136)

  • Best way to implement m to n relation?

    Could you please give me some advice on the best way to implement m-n relations in apex?
    Example: I want to store server and database info. A server can have multiple database of course. But in case of a RAC database, the database can be running on multiple servers. So I have tables:
    create table SERVERS (id number primary key, name varchar2(30));
    create table DATABASES(id number primary key, name varchar2(30))
    and an m-to-n table
    create table SERV_DB(serv_id number references SERVERS(id), db_id number references DATABASES(id), instance_name varchar2(30))
    So the table SERV_DB can tell me e.g. that database PROD is running on server 'prdsrv1' with instance PROD1 and on server 'prdsrv2' with instance name PROD2
    How would you design an apex page to maintain this information (adding relations, updating instance names, etc)? I have a solution using checkboxes and 2 for-loops over htmldb_application.g_f40 (to process checkboxes) and g_f41 (to process text fields with instance names) and some delete statements but the logic behind it looks too complex for me. I am convinced that this can be done more simpler. Seems like a common problem to me, so I wonder if there is no out-of-the-box solution in apex for this?
    Could you please show me or create a small demo application with the solution that looks most elegant to you?
    Thanks,
    Geert

    Thanks for your reply. You modified the question slightly, but conceptually it is still the same. What you call the instances table corresponds with my serv_db table. I understand the solution you propose using the tabular report. If I see it correctly, you would have an insert button above the tabular report for each new relation (instance - server) you would want to add. This is ok for the case i used (databases, servers, instances) because there are relatively few relations. However I would not like this solution for other cases. E.g.:
    case: you have a list of persons and a list of tasks. You want to assign tasks to persons in a way that each person has multiple tasks to do and each task can be assigned to multiple persons.
    Suppose you add a new person, and you want to assign 15 tasks to him. The solution above (with the tabular report) would be quite some work because you would have to click 15 times on the insert button and on each click select a task from the select list. In this case it would be more appropriate to, after selecting the new person, see a list of all tasks (e.g. 30 tasks) with a checkbox in front, so you can mark 15 out of the 30 checkboxes and press submit. It gets more complex when you want to assign also an attribute to the relation, i.e. showing the list with all tasks, a checkbox in front and a select list next to each task where you can choose from e.g. "priority high" or "priority low" to indicate that this task is high or low priority for that person. Is there an easy way to implement that?

  • 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 implement a shared Blocking Queue?

    What's the best way to implement a shared Blocking Queue that multiple JVMs can enqueue objects in and multiple JVM's can dequeue from simultaneously?
    Also, I see references on the web to com.tangosol.coherence.component.util.queue.ConcurrentQueue but I don't see it in the current API docs...
    Thanks

    Hi snidely_whiplash,
    snidely_whiplash wrote:
    What's the best way to implement a shared Blocking Queue that multiple JVMs can enqueue objects in and multiple JVM's can dequeue from simultaneously?
    Also, I see references on the web to com.tangosol.coherence.component.util.queue.ConcurrentQueue but I don't see it in the current API docs...
    ThanksThat class is an internal class, AFAIK.
    As for implementing a queue, you might want to look at Ashish Srivastava's ezMQ component for some ideas:
    http://ezsaid.blogspot.com/2009/01/implementing-jms-queue-on-top-of-oracle.html
    Best regards,
    Robert

  • Best way to implement app wide process

    I am working on an application that has a list of art work in an sql report.. I want to be able to add each piece to a collection of items (which is stored in a table), so I added another column to the sql report to store the id of the art work. I am just wondering what is the best way to implement the process to insert the item to the collection of items. Since I want to do this from multiple pages - link from art work sql report; link from the edit page for a particular art work; and on the artists page where there is also an sql report, I thought it may be best to have an application process, to save duplicating the process on multiple pages.. however I don't think there's a way to pass the id of the item to the application process? as I was thinking best to have the application process conditional based on request, and then have the link as a doSubmit().
    So is it best just to have the link redirect to the same page, passing the id of the item, and then having a process that runs before header that inserts the item, then assigning the item to NULL?
    Thanks in advance,
    Trent

    Daniel:
    Thanks for the info. I have found that the IFRAME works nicely for some applications,
    however, some applications I want to re-write the front end to look better in
    the portal rather than screen scrape.
    Thanks for the help
    Ryan
    "Daniel Selman" <[email protected]> wrote:
    Ryan,
    Check out the thread (a few days old) titled "Different ways of creating
    portlets".
    Sincerely,
    Daniel Selman
    "Ryan Richards" <[email protected]> wrote in message
    news:3d2eda12$[email protected]..
    I have a few existing applications that I need to port over to portletsin
    Weblogic
    Portal 4.0. One application is a servlet based web application witha few
    html front-end
    screens. I am trying to determine how to do this in the best way. Ihave
    noticed
    that portlets behave differently inside the portal than do stand-aloneweb
    apps.
    Any help would be appreciated.
    The other web application is the Microsoft Outlook Web Access. (Thisone
    is going
    to be difficult because it is actually an ASP app. I dont know if thisis
    possible
    without building some proxy code between bea and iis.)
    Thanks
    Ryan

  • Best way to implement this code in labview

    Hi
    What is the best way to implement this code in labview programming.
    I have an analogue input which triggers a boolean light when it reaches a certain voltage. but at the same time i would like it to enable two other outputs one for a set period of time and the other stay on until another statement becomes true.
    For example
    case 1:
    Set output high
    Delay(2000ms)
    Set output low
    Case 2:
    Set output high
    If statement 2 is true
    then set out put low
    if not then repeat until statement is true
    Thanks for your help

    Hi David,
    The code you posted will work, although note that the front panel becomes 'unresponsive' - as changes in the controls are only read once per iteration.  The wait function is an example of an execution timing VI, however if we want to do software timing (like a 2 hour wait) - we should use software timing VIs.
    Check out the following example (note we can stop execution during run-time):
    Regards,
    Peter D
    Attachments:
    SoftwareTiming.vi ‏26 KB

  • Best way to implement FREE purchase?

    Hi,
    I have purchases that are free for logged in users. What's the best way to implement a no-payment solution? Would having the payment fields hidden and COD auto-selected if the amount field is 0.00 a good idea? Is there a better way anyone has implemented this? And how about security flaws?

    Hi
    Here is an article about "no cost" orders
    COD payment method will not work for zero value orders , you will need to use the Free payment method described
    in this article http://kb.worldsecuresystems.com/893/bc_893.html
    Hope this helps!

  • What is the best way to implement Carousel i.e. web part in a site page on office 365 site?

    We can implement the Carousel web part in many ways like content By Query Web Part , jquery (nivo) plugin or content search web part etc. But among these which one is the best way to implement to get best performance of the page?
    Thanks

    content search web part always provides best performance because it uses the search. only consideration you need to take is, it does not display the changes immediately and you need to wait for the incremental crawl to happen.
    My Blog- http://www.sharepoint-journey.com|
    If a post answers your question, please click Mark As Answer on that post and Vote as Helpful

  • Best way to implement service in 3-tier webarchitecture

    Hi,
    What would be the best way to implement a service in the following 3-tier TopLink architecture: no ejb and a webclient (jsp/servlets)?
    Currently I have a server session type and a service pojo using a singleton SessionFactory. The service pojo is used by the jsp/servlets.
    Should the service pojo be a singleton? Should a SessionManager be used?
    In the examples on OTN a clientsession is directly acquired in the jsp/servlets.
    Thanks,
    Ronald

    Ronald,
    There are numerous ways to do this. I would recommend using the SessionFactory. The SessionFactory makes use of the SessionManager, which holds onto the singleton Server session. You can then acquire client sessions using the oracle.toplink.sessions.Session interface from the SessionFactory. There is no need to hold the SessionFactory in a singleton yourself and you do not need to reference the ClientSession directly either.
    We have introduced this latest approach to simplify coding. It will work in both the web architecture with JSP/Servlets accessing the sessions as well as within an EJB tier (Session/Message Driven beans).
    Doug

  • What is the best way to implement writable many-to-many relations

    As everyone knows, the many-to-many associations provided by BC4J are quite good to read many-to-many associations, but they are not able to write such associations.
    There are other solutions using composite associations or cascading-delete foreign keys, but as I was tought now, they are also quite problematic. See thread Internal error: Entity.afterRollback.status_dead   -- What does this mean? for more details.
    So I ask you: What is the best way to implement writable many to many associations? Do you really have to manage them "by hand"?
    Thanks for your ideas
    Frank

    I'd appreciate any hint
    Thanks

  • Event Structures​-best way to implement this UI?

    I am trying to write a VI to control & read data from 4 different "channels" (each measuring a DUT) at once.  I have written all the VI's for initializing instruments, communicating with the devices (VISA, GPIB), setting bias, reading data, etc...that has all completed. I just need to write the overall program with the user interface to allow the user to control these 4 channels & display the measured data.....as it turns out, this is the tricky part! My head is spinning from trying to figure out how to handle all the possible events.
    Basically for each channel, I want the user to be able to
    -enable/disable it  for measurement (e.g. if  there is no device loaded in Ch.3, we don't want to measure Ch.3..maybe disable/grey everything)
    -set bias conditions (only if channel enabled). Allow user to change bias "in real-time" by increment/decrementing (e.g. incrementing from 5.00 V to 5.01 V, for example).
    -turn biasing on/off (again, only if channel is enabled)
    Also,  I want each channel to display its measured data (e.g current, temperature reading)..every second or so. No graphs or anything fancy (for now! ), just numeric indicator. 
    Honestly, this all sounds so simple but I'm having trouble figuring out the best way to implement this, due to the fact that 1) there are multiple channels needing to be monitored for events  2) large number of user events that could occur (seems like at least 4 per channel - enabling/disabling, turning bias on/off, incrementing/decrementing bias values, etc ), Also the if a channel IS enabled, i want to be continously reading/displaying the data.  What is the best way to handle this? Should i have 4 separate while loops, each with an event structure to handle events for that particular channel..or will that give me grief somewhre? 
    Also, I have another nagging question. Pretty much all the examples I see re: Event Structures and booleans involve latched booleans, eg. buttons that are just pressed once and pop back up...e.g. buttons you press to tell it to complete a task (e.g. "Acquire Data" or "Stop") , and once it's pressed it's over and reset.  In my case, some of the booleans would not be latched...e.g. the "Enable Ch.2" button would be 'TRUE" as long as i want Ch. 2 to be read....does that make sense? Then, say hours later,  if i did want to disable that channel,  i would change it to "FALSE" and while that would be an "value change", the new value would not be "TRUE"..does that make sense? So  not sure if that would be dealt with the same way in an Event Structure. 
    Hope this all makes sense and many thanks in advance for any help!!!

    You're halfway there. I'd say the best solution is a producer/consumer structure, the event structure is used to generate queued commands to the consumer loop.
    All data is handled in the consumer loop, where you among other things have an array of clusters of channel/instrument settings. (I usually have several cluster, one for test data, one for instrument settings, one for general settings and so on)
    The event structure can have a 1 sec timeout, in which you queue up a Measure command.
    In the consumer, in the measure state you loop through your instruments and if enabled you measure them and update their indicators.
    The general (smart) way to setup the queue is with a cluster containing 2 elements, a typedef'd Command and a variant.
    This way you can send data with the command in any form which is then interpreted in the consumer.
    If, e.g. you press the Enable button on a channel, you can enqueue Enable and the channel number.
    /Y
    LabVIEW 8.2 - 2014
    "Only dead fish swim downstream" - "My life for Kudos!" - "Dumb people repeat old mistakes - smart ones create new ones."
    G# - Free award winning reference based OOP for LV

  • Best way to implement a standard layout across application

    What is the best way to implement a standard layout across the application?  For example, I am converting an HTML/ColdFusion site to Flex and I need to keep the look of the existing site in the new Flex app.  I need a standard layout on every screen in the new app with a standard header, footer and left nav bar.  Do I need to add that code to every screen in the app or can I just create on layout file and call that into every screen?  Thanks!

    There a few that will help you, look for Form and validator.
    Sincerely,
    Michael
    El 16/05/2009, a las 14:01, lee704 <[email protected]> escribió:
    >
    Thanks.  Are there sample data entry apps in the Tour de Flex samples?
    >

  • Best way to implement a docking container

    Hi everyone,
    I need to create a docking container that behaves the same way the draggable panel system works in Flex Builder (Eclipse):
    - Dock other containers to the edges
    - Automatically layout other containers when the dragged container is docked into/out of an edge
    Is there a custom control that would enable me to do this? If not, what's the best approach to create one?
    Thanks,
    Amir

    Hi snidely_whiplash,
    snidely_whiplash wrote:
    What's the best way to implement a shared Blocking Queue that multiple JVMs can enqueue objects in and multiple JVM's can dequeue from simultaneously?
    Also, I see references on the web to com.tangosol.coherence.component.util.queue.ConcurrentQueue but I don't see it in the current API docs...
    ThanksThat class is an internal class, AFAIK.
    As for implementing a queue, you might want to look at Ashish Srivastava's ezMQ component for some ideas:
    http://ezsaid.blogspot.com/2009/01/implementing-jms-queue-on-top-of-oracle.html
    Best regards,
    Robert

Maybe you are looking for

  • Cant connect wirelessly to internet after installing iphoto 9.2.1

    I recently upgraede my system to 10.6.8. Today I downloaded and installed iPhoto 9.2.1 (going from 6.0.6). Now I cant connect to the internet wirelessly. Ethernet works. Could these actions have something to do with causing this problem?

  • What is wrong in the program???(a little bit hard)

    i write a simple welclient, however it doesn't run well, it's not able to exit completely. plz tell me why?thanks. mport java.io.*; import java.net.*; public class Getpage public static void main(String arg[]) throws IOException Socket client = new S

  • Incorrect file name within folder

    I have saved a series of Captivate v4 projects in a folder. I have saved the projects with their relevant names. I have updated the project info details on each project to correctly reflect the name of the project chapter etc. Can anyone explain why

  • Imessages getting lost

    I have 2 iPhone 4 on my AT&T account. And, it is only with these iPhones do I seem to have this issue. iMessages are not always received between the 2 phones and there is no notification of failures, instead, I ask the other person, did you get my te

  • Dlopen failed, Unsatisfied data symbol ''[Vtable_Q2_3std12out_of_range]key

    After compiling and linking a shared library on HPUX that uses the OCI, attempts to load that shared library fail with the error: dlopen failed, Unsatisfied data symbol ''[Vtable_Q2_3std12out_of_range]key:'' in load module ''/usr/lib/oracle/10.2.0.4/