001         package com.croftsoft.core.text.sml;
002    
003         import com.croftsoft.core.lang.StringLib;
004    
005         /*********************************************************************
006         * Static methods for encoding and decoding SML.
007         *
008         * <p>
009         * Java 1.1 compatible.
010         * </p>
011         *
012         * @version
013         *   2001-08-09
014         * @since
015         *   2001-05-14
016         * @author
017         *   <a href="http://croftsoft.com/">David Wallace Croft</a>
018         *********************************************************************/
019    
020         public final class  SmlCoder
021         //////////////////////////////////////////////////////////////////////
022         //////////////////////////////////////////////////////////////////////
023         {
024    
025         public static void  main ( String [ ]  args )
026         //////////////////////////////////////////////////////////////////////
027         {
028           System.out.println ( encode ( "<>" ) );
029    
030           System.out.println ( decode ( "&lt;&gt;" ) );
031         }
032              
033         //////////////////////////////////////////////////////////////////////
034         //////////////////////////////////////////////////////////////////////
035    
036         /*********************************************************************
037         * Encodes a String for SML transport.
038         *
039         * <p>
040         * Replaces angle brackets.
041         * </p>
042         *********************************************************************/
043         public static String  encode ( String  s )
044         //////////////////////////////////////////////////////////////////////
045         {
046           if ( s == null )
047           {
048             return null;
049           }
050    
051           s = StringLib.replace ( s, "<", "&lt;" );
052    
053           s = StringLib.replace ( s, ">", "&gt;" );
054           
055           return s;
056         }
057    
058         /*********************************************************************
059         * Decodes an SML String back into a regular String.
060         *
061         * <p>
062         * Substitutes angle brackets.
063         * </p>
064         *********************************************************************/
065         public static String  decode ( String  s )
066         //////////////////////////////////////////////////////////////////////
067         {
068           if ( s == null )
069           {
070             return null;
071           }
072    
073           s = StringLib.replace ( s, "&lt;", "<" );
074    
075           s = StringLib.replace ( s, "&gt;", ">" );
076           
077           return s;
078         }
079    
080         //////////////////////////////////////////////////////////////////////
081         //////////////////////////////////////////////////////////////////////
082    
083         private  SmlCoder ( ) { }
084    
085         //////////////////////////////////////////////////////////////////////
086         //////////////////////////////////////////////////////////////////////
087         }