bloritsch 01/10/25 10:50:45 Modified: bin/src Tag: cocoon_20_branch st.java Log: Synchronize with other repository Revision Changes Path No revision No revision 1.1.2.5 +130 -75 xml-cocoon2/bin/src/st.java Index: st.java =================================================================== RCS file: /home/cvs/xml-cocoon2/bin/src/st.java,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -u -r1.1.2.4 -r1.1.2.5 --- st.java 2001/10/08 20:18:49 1.1.2.4 +++ st.java 2001/10/25 17:50:45 1.1.2.5 @@ -5,8 +5,9 @@ * version 1.1, a copy of which has been included with this distribution in * * the LICENSE file. * *****************************************************************************/ -import java.io.FileInputStream; -import java.io.FileWriter; + +import java.io.FileInputStream; +import java.io.FileWriter; import java.io.IOException; /** @@ -33,53 +34,60 @@ * Pretty printing * * @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a> - * @version CVS $Revision: 1.1.2.4 $ $Date: 2001/10/08 20:18:49 $ + * @version CVS $Revision: 1.1.2.5 $ $Date: 2001/10/25 17:50:45 $ */ -public class st { +public class st +{ - public static String load(String filename) - throws IOException { + public static String load( String filename ) + throws IOException + { FileInputStream fis; - fis = new FileInputStream(filename); + fis = new FileInputStream( filename ); int available; byte[] data = null; byte[] tempData; byte[] copyData; - do { + do + { available = 1024; tempData = new byte[available]; - available = fis.read(tempData, 0, available); - if (available > 0) { - copyData = new byte[(data == null ? 0 : data.length) + available]; - if (data != null) { - System.arraycopy(data, 0, copyData, 0, data.length); + available = fis.read( tempData, 0, available ); + if ( available > 0 ) + { + copyData = new byte[( data == null ? 0 : data.length ) + available]; + if ( data != null ) + { + System.arraycopy( data, 0, copyData, 0, data.length ); } - System.arraycopy(tempData, 0, copyData, (data == null ? 0 : data.length), available); + System.arraycopy( tempData, 0, copyData, ( data == null ? 0 : data.length ), available ); data = copyData; } - } while (available > 0); + } while ( available > 0 ); fis.close(); - return (data != null ? new String(data) : ""); + return ( data != null ? new String( data ) : "" ); } - public static void save(String filename, String data) - throws IOException { - FileWriter fw = new FileWriter(filename); - fw.write(data); + public static void save( String filename, String data ) + throws IOException + { + FileWriter fw = new FileWriter( filename ); + fw.write( data ); fw.close(); } - public static void main(String[] args) { + public static void main( String[] args ) + { String inputName; String outputName; String arg; String label = null; String mimeType = null; - int mode = 0; - String arg1=null, arg2=null, arg3=null, arg4=null; + int mode = 0; + String arg1 = null, arg2 = null, arg3 = null, arg4 = null; boolean clError = false; @@ -87,98 +95,145 @@ outputName = null; int i; i = 0; - while (i < args.length && clError == false) { + while ( i < args.length && clError == false ) + { arg = args[i]; - if (arg.equals("-i") == true) { - if (i + 1 < args.length) - inputName = args[i+1]; + if ( arg.equals( "-i" ) == true ) + { + if ( i + 1 < args.length ) + inputName = args[i + 1]; else clError = true; i += 2; - } else if (arg.equals("-o") == true) { - if (i + 1 < args.length) - outputName = args[i+1]; + } + else if ( arg.equals( "-o" ) == true ) + { + if ( i + 1 < args.length ) + outputName = args[i + 1]; else clError = true; i += 2; - } else if (arg.equals("-l") == true) { - if (i + 1 < args.length) - label = args[i+1]; + } + else if ( arg.equals( "-l" ) == true ) + { + if ( i + 1 < args.length ) + label = args[i + 1]; else clError = true; i += 2; - } else if (arg.equals("-m") == true) { - if (i + 1 < args.length) - mimeType = args[i+1]; + } + else if ( arg.equals( "-m" ) == true ) + { + if ( i + 1 < args.length ) + mimeType = args[i + 1]; else clError = true; i += 2; - } else if (arg.equals("-a") == true) { - if (i + 3 < args.length && mode == 0) { + } + else if ( arg.equals( "-a" ) == true ) + { + if ( i + 3 < args.length && mode == 0 ) + { mode = 1; // add - arg1 = args[i+1]; - arg2 = args[i+2]; - arg3 = args[i+3]; - if (i + 4 < args.length && !args[i+4].startsWith("-")) { - arg4 = args[i+4]; + arg1 = args[i + 1]; + arg2 = args[i + 2]; + arg3 = args[i + 3]; + if ( i + 4 < args.length && !args[i + 4].startsWith( "-" ) ) + { + arg4 = args[i + 4]; i++; - } else { + } + else + { arg4 = null; } i += 4; - } else { + } + else + { clError = true; } - } else { + } + else + { clError = true; } } - if (inputName == null || outputName == null) { + if ( inputName == null || outputName == null ) + { clError = true; } - if (mode == 0) { + if ( mode == 0 ) + { clError = true; } - if (clError == true) { - System.out.println("Usage: st -i inputsitemap -o outputsitemap " + - "[-l label] [-m mimetype] -a componentcategory"+ - " componentname class [optionalconfigurationstring]"); - } else { - try { - String data = load(inputName); + if ( clError == true ) + { + System.out.println( "Usage: st -i inputsitemap -o outputsitemap " + + "[-l label] [-m mimetype] -a componentcategory" + + " componentname class [optionalconfigurationstring]" ); + } + else + { + try + { + String data = load( inputName ); - if (mode == 1) { + if ( mode == 1 ) + { // add a component // arg1 : category // arg2 : componentname // arg3 : class // arg4 : optional configuration - String searchString = "</map:"+arg1+">"; - int pos = data.indexOf(searchString); - int categoryStartPos = data.indexOf("<map:"+arg1+">"); - if (categoryStartPos == -1) categoryStartPos = data.indexOf("<map:"+arg1+" "); - if (categoryStartPos != -1 && categoryStartPos < pos && pos != -1) { + String searchString = new StringBuffer( "</map:" ).append( arg1 ).append( ">" ).toString(); + int pos = data.indexOf( searchString ); + int categoryStartPos = data.indexOf( + new StringBuffer( "</map:" ).append( arg1 ).append( ">" ).toString() ); + if ( categoryStartPos == -1 ) + categoryStartPos = data.indexOf( + new StringBuffer( "</map:" ).append( arg1 ).append( " " ).toString() ); + if ( categoryStartPos != -1 && categoryStartPos < pos && pos != -1 ) + { // the category exists, now search if a component // with the name already exists - int componentPos = data.substring(categoryStartPos, pos).indexOf("name=\""+arg2+"\""); - if (componentPos == -1) { - data = data.substring(0, pos) - + "<map:"+arg1.substring(0, arg1.length()-1) - + " name=\"" + arg2 + "\" src=\""+arg3+"\"" - + (mimeType == null ? "" : " mime-type=\""+mimeType+"\"") - + (label == null ? "" : " label=\""+label+"\"") - + (arg4 == null ? "/>\n" - : ">\n"+arg4+"\n" - + "</map:"+arg1.substring(0, arg1.length()-1)+">\n") - + data.substring(pos); + int componentPos = data.substring( categoryStartPos, pos ).indexOf( + new StringBuffer( "name=\"" ).append( arg2 ).append( "\"" ).toString() ); + if ( componentPos == -1 ) + { + StringBuffer buffer = new StringBuffer( data.substring( 0, pos ) ) + .append( "<map:" ).append( arg1.substring( 0, arg1.length() - 1 ) ) + .append( " name=\"" ).append( arg2 ).append( "\" src=\"" ).append( arg3 ).append( "\"" ); + + if ( null == mimeType ) + { + buffer.append( " mime-type=\"" ).append( mimeType ).append( "\"" ); + } + if ( null == label ) + { + buffer.append( " label=\"" ).append( label ).append( "\"" ); + } + if ( null == arg4 ) + { + buffer.append( ">\n" ).append( arg4 ).append( "\n" ) + .append( "</map:" ).append( arg1.substring( 0, arg1.length() - 1 ) ).append( ">\n" ); + } + else + { + buffer.append( "/>\n" ); + } + buffer.append( data.substring( pos ) ).toString(); + data = buffer.toString(); } } } - save(outputName, data); - } catch (IOException ioe) { - System.err.println("Exception: " + ioe); + save( outputName, data ); + } + catch ( IOException ioe ) + { + System.err.println( "Exception: " + ioe ); ioe.printStackTrace(); } }
---------------------------------------------------------------------- In case of troubles, e-mail: [EMAIL PROTECTED] To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]