diff src/org/eclipse/jetty/util/StringUtil.java @ 1012:8d0bdd357e6e

simplify StringUtil
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 24 Oct 2016 00:47:24 -0600
parents 3242aff51053
children 6939226e0ac4
line wrap: on
line diff
--- a/src/org/eclipse/jetty/util/StringUtil.java	Sun Oct 23 23:59:08 2016 -0600
+++ b/src/org/eclipse/jetty/util/StringUtil.java	Mon Oct 24 00:47:24 2016 -0600
@@ -33,16 +33,14 @@
  *
  * 
  */
-public class StringUtil
+public final class StringUtil
 {
 	private static final Logger LOG = LoggerFactory.getLogger(StringUtil.class);
 	
 	public static final String ALL_INTERFACES="0.0.0.0";
-	public static final String CRLF="\015\012";
 	   
 	public static final String __ISO_8859_1="ISO-8859-1";
 	public final static String __UTF8="UTF-8";
-	public final static String __UTF8Alt="UTF8";
 	public final static String __UTF16="UTF-16";
 	
 	public final static Charset __UTF8_CHARSET;
@@ -108,77 +106,6 @@
 		return c==null?s:new String(c);
 	}
 
-
-	/* ------------------------------------------------------------ */
-	public static boolean startsWithIgnoreCase(String s,String w)
-	{
-		if (w==null)
-			return true;
-		
-		if (s==null || s.length()<w.length())
-			return false;
-		
-		for (int i=0;i<w.length();i++)
-		{
-			char c1=s.charAt(i);
-			char c2=w.charAt(i);
-			if (c1!=c2)
-			{
-				if (c1<=127)
-					c1=lowercases[c1];
-				if (c2<=127)
-					c2=lowercases[c2];
-				if (c1!=c2)
-					return false;
-			}
-		}
-		return true;
-	}
-	
-	/* ------------------------------------------------------------ */
-	public static boolean endsWithIgnoreCase(String s,String w)
-	{
-		if (w==null)
-			return true;
-
-		if (s==null)
-			return false;
-			
-		int sl=s.length();
-		int wl=w.length();
-		
-		if (sl<wl)
-			return false;
-		
-		for (int i=wl;i-->0;)
-		{
-			char c1=s.charAt(--sl);
-			char c2=w.charAt(i);
-			if (c1!=c2)
-			{
-				if (c1<=127)
-					c1=lowercases[c1];
-				if (c2<=127)
-					c2=lowercases[c2];
-				if (c1!=c2)
-					return false;
-			}
-		}
-		return true;
-	}
-	
-	/* ------------------------------------------------------------ */
-	/**
-	 * returns the next index of a character from the chars string
-	 */
-	public static int indexFrom(String s,String chars)
-	{
-		for (int i=0;i<s.length();i++)
-		   if (chars.indexOf(s.charAt(i))>=0)
-			  return i;
-		return -1;
-	}
-	
 	/* ------------------------------------------------------------ */
 	/**
 	 * replace substrings within string.
@@ -208,40 +135,6 @@
 
 
 	/* ------------------------------------------------------------ */
-	/** Remove single or double quotes.
-	 */
-	public static String unquote(String s)
-	{
-		return QuotedStringTokenizer.unquote(s);
-	}
-
-
-	/* ------------------------------------------------------------ */
-	/** Append substring to StringBuilder 
-	 * @param buf StringBuilder to append to
-	 * @param s String to append from
-	 * @param offset The offset of the substring
-	 * @param length The length of the substring
-	 */
-	public static void append(StringBuilder buf,
-							  String s,
-							  int offset,
-							  int length)
-	{
-		synchronized(buf)
-		{
-			int end=offset+length;
-			for (int i=offset; i<end;i++)
-			{
-				if (i>=s.length())
-					break;
-				buf.append(s.charAt(i));
-			}
-		}
-	}
-
-	
-	/* ------------------------------------------------------------ */
 	/**
 	 * append hex digit
 	 * 
@@ -258,18 +151,7 @@
 			c= 'a'+(c-'0'-10);
 		buf.append((char)c);
 	}
-
-	/* ------------------------------------------------------------ */
-	public static void append2digits(StringBuffer buf,int i)
-	{
-		if (i<100)
-		{
-			buf.append((char)(i/10+'0'));
-			buf.append((char)(i%10+'0'));
-		}
-	}
 	
-	/* ------------------------------------------------------------ */
 	public static void append2digits(StringBuilder buf,int i)
 	{
 		if (i<100)
@@ -279,43 +161,6 @@
 		}
 	}
 	
-	/* ------------------------------------------------------------ */
-	/** Return a non null string.
-	 * @param s String
-	 * @return The string passed in or empty string if it is null. 
-	 */
-	public static String nonNull(String s)
-	{
-		if (s==null)
-			return "";
-		return s;
-	}
-	
-	/* ------------------------------------------------------------ */
-	public static boolean equals(String s,char[] buf, int offset, int length)
-	{
-		if (s.length()!=length)
-			return false;
-		for (int i=0;i<length;i++)
-			if (buf[offset+i]!=s.charAt(i))
-				return false;
-		return true;
-	}
-
-	/* ------------------------------------------------------------ */
-	public static String toUTF8String(byte[] b,int offset,int length)
-	{
-		try
-		{
-			return new String(b,offset,length,__UTF8);
-		}
-		catch (UnsupportedEncodingException e)
-		{
-			throw new IllegalArgumentException(e);
-		}
-	}
-
-	/* ------------------------------------------------------------ */
 	public static String toString(byte[] b,int offset,int length,String charset)
 	{
 		try
@@ -328,47 +173,12 @@
 		}
 	}
 
-
-	/* ------------------------------------------------------------ */
 	public static boolean isUTF8(String charset)
 	{
 		return __UTF8.equalsIgnoreCase(charset)||__UTF8Alt.equalsIgnoreCase(charset);
 	}
 
 
-	/* ------------------------------------------------------------ */
-	public static String printable(String name)
-	{
-		if (name==null)
-			return null;
-		StringBuilder buf = new StringBuilder(name.length());
-		for (int i=0;i<name.length();i++)
-		{
-			char c=name.charAt(i);
-			if (!Character.isISOControl(c))
-				buf.append(c);
-		}
-		return buf.toString();
-	}
-	
-	/* ------------------------------------------------------------ */
-	public static String printable(byte[] b)
-	{
-		StringBuilder buf = new StringBuilder();
-		for (int i=0;i<b.length;i++)
-		{
-			char c=(char)b[i];
-			if (Character.isWhitespace(c)|| c>' ' && c<0x7f)
-				buf.append(c);
-			else 
-			{
-				buf.append("0x");
-				TypeUtil.toHex(b[i],buf);
-			}
-		}
-		return buf.toString();
-	}
-	
 	public static byte[] getBytes(String s)
 	{
 		try
@@ -381,122 +191,5 @@
 			return s.getBytes();
 		}
 	}
-	
-	public static byte[] getBytes(String s,String charset)
-	{
-		try
-		{
-			return s.getBytes(charset);
-		}
-		catch(Exception e)
-		{
-			LOG.warn("",e);
-			return s.getBytes();
-		}
-	}
-	
-	
-	
-	/**
-	 * Converts a binary SID to a string SID
-	 * 
-	 * http://en.wikipedia.org/wiki/Security_Identifier
-	 * 
-	 * S-1-IdentifierAuthority-SubAuthority1-SubAuthority2-...-SubAuthorityn
-	 */
-	public static String sidBytesToString(byte[] sidBytes)
-	{
-		StringBuilder sidString = new StringBuilder();
-		
-		// Identify this as a SID
-		sidString.append("S-");
-		
-		// Add SID revision level (expect 1 but may change someday)
-		sidString.append(Byte.toString(sidBytes[0])).append('-');
-		
-		StringBuilder tmpBuilder = new StringBuilder();
-		
-		// crunch the six bytes of issuing authority value
-		for (int i = 2; i <= 7; ++i)
-		{
-			tmpBuilder.append(Integer.toHexString(sidBytes[i] & 0xFF));
-		}
-		
-		sidString.append(Long.parseLong(tmpBuilder.toString(), 16)); // '-' is in the subauth loop
-   
-		// the number of subAuthorities we need to attach
-		int subAuthorityCount = sidBytes[1];
 
-		// attach each of the subAuthorities
-		for (int i = 0; i < subAuthorityCount; ++i)
-		{
-			int offset = i * 4;
-			tmpBuilder.setLength(0);
-			// these need to be zero padded hex and little endian
-			tmpBuilder.append(String.format("%02X%02X%02X%02X", 
-					(sidBytes[11 + offset] & 0xFF),
-					(sidBytes[10 + offset] & 0xFF),
-					(sidBytes[9 + offset] & 0xFF),
-					(sidBytes[8 + offset] & 0xFF)));  
-			sidString.append('-').append(Long.parseLong(tmpBuilder.toString(), 16));
-		}
-		
-		return sidString.toString();
-	}
-	
-	/**
-	 * Converts a string SID to a binary SID
-	 * 
-	 * http://en.wikipedia.org/wiki/Security_Identifier
-	 * 
-	 * S-1-IdentifierAuthority-SubAuthority1-SubAuthority2-...-SubAuthorityn
-	 */
-	public static byte[] sidStringToBytes( String sidString )
-	{
-		String[] sidTokens = sidString.split("-");
-		
-		int subAuthorityCount = sidTokens.length - 3; // S-Rev-IdAuth-
-		
-		int byteCount = 0;
-		byte[] sidBytes = new byte[1 + 1 + 6 + (4 * subAuthorityCount)];
-		
-		// the revision byte
-		sidBytes[byteCount++] = (byte)Integer.parseInt(sidTokens[1]);
-
-		// the # of sub authorities byte
-		sidBytes[byteCount++] = (byte)subAuthorityCount;
-
-		// the certAuthority
-		String hexStr = Long.toHexString(Long.parseLong(sidTokens[2]));
-		
-		while( hexStr.length() < 12) // pad to 12 characters
-		{
-			hexStr = "0" + hexStr;
-		}
-
-		// place the certAuthority 6 bytes
-		for ( int i = 0 ; i < hexStr.length(); i = i + 2)
-		{
-			sidBytes[byteCount++] = (byte)Integer.parseInt(hexStr.substring(i, i + 2),16);
-		}
-				
-		
-		for ( int i = 3; i < sidTokens.length ; ++i)
-		{
-			hexStr = Long.toHexString(Long.parseLong(sidTokens[i]));
-			
-			while( hexStr.length() < 8) // pad to 8 characters
-			{
-				hexStr = "0" + hexStr;
-			}     
-			
-			// place the inverted sub authorities, 4 bytes each
-			for ( int j = hexStr.length(); j > 0; j = j - 2)
-			{          
-				sidBytes[byteCount++] = (byte)Integer.parseInt(hexStr.substring(j-2, j),16);
-			}
-		}
-	  
-		return sidBytes;
-	}
 }