usr/src/java/adr/org/opensolaris/os/adr/adrgen/RadADRGen.java
author devjani.ray@oracle.com <devjani.ray@oracle.com>
Wed, 01 Feb 2012 09:22:41 -0500
changeset 797 a33daeba9b4c
permissions -rw-r--r--
CR7123217 - Rename adrgen to radadrgen
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
797
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
     1
/*
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
     2
 * CDDL HEADER START
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
     3
 *
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
     5
 * Common Development and Distribution License (the "License").
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
     6
 * You may not use this file except in compliance with the License.
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
     7
 *
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    11
 * and limitations under the License.
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    12
 *
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    18
 *
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    19
 * CDDL HEADER END
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    20
 */
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    21
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    22
/*
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    23
 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    24
 */
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    25
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    26
package org.opensolaris.os.adr.adrgen;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    27
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    28
import org.opensolaris.os.adr.*;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    29
import java.io.File;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    30
import java.io.FileNotFoundException;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    31
import java.net.URL;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    32
import java.util.*;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    33
import javax.xml.XMLConstants;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    34
import javax.xml.parsers.DocumentBuilder;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    35
import javax.xml.parsers.DocumentBuilderFactory;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    36
import javax.xml.parsers.ParserConfigurationException;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    37
import javax.xml.transform.TransformerException;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    38
import javax.xml.validation.SchemaFactory;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    39
import org.xml.sax.ErrorHandler;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    40
import org.xml.sax.SAXException;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    41
import org.xml.sax.SAXParseException;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    42
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    43
public class RadADRGen {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    44
    private static final String RADADRGEN_USAGE = "Usage: radadrgen [-N]" +
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    45
	" [-c [-r [-m][-s]]] [-j dir [-i]] [-o {docbook | text | none}]" +
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    46
	" [-d baseline.xml] spec.xml";
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    47
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    48
    static class Option {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    49
	private char letter_;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    50
	private String arg_;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    51
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    52
	Option(char letter, String arg) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    53
	    letter_ = letter;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    54
	    arg_ = arg;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    55
	}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    56
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    57
	char getLetter() {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    58
	    return letter_;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    59
	}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    60
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    61
	String getArg() {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    62
	    return arg_;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    63
	}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    64
    }
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    65
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    66
    static int getOptions(String[] args, String argspec, List<Option> opts) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    67
	Map<Character, Boolean> optspecs = new HashMap<Character, Boolean>();
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    68
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    69
	/* Parse argspec */
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    70
	int length = argspec.length();
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    71
	for (int i = 0; i < length; i++) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    72
	    char l = argspec.charAt(i);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    73
	    boolean hasargs = i + 1 < length && argspec.charAt(i + 1) == ':';
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    74
	    if (hasargs)
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    75
		i++;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    76
	    optspecs.put(l, hasargs);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    77
	}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    78
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    79
	/* Parse args */
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    80
	boolean inopt = false;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    81
	char pending = '\0';
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    82
	int i;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    83
	for (i = 0; i < args.length; i++) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    84
	    if (inopt) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    85
		opts.add(new Option(pending, args[i]));
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    86
		inopt = false;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    87
		continue;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    88
	    }
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    89
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    90
	    if (args[i].charAt(0) != '-')
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    91
		break;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    92
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    93
	    for (int j = 1; j < args[i].length(); j++) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    94
		char l = args[i].charAt(j);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    95
		if (!optspecs.containsKey(l)) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    96
		    System.err.format("Invalid option \"%c\"\n", l);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    97
		    System.exit(2);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    98
		}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
    99
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   100
		if (!optspecs.get(l)) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   101
		    opts.add(new Option(l, null));
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   102
		    continue;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   103
		}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   104
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   105
		if (j + 1 < args[i].length()) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   106
		    opts.add(new Option(l, args[i].substring(j + 1)));
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   107
		    break;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   108
		}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   109
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   110
		inopt = true;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   111
		pending = l;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   112
	    }
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   113
	}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   114
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   115
	if (inopt) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   116
	    System.err.format("Option \"%c\" requires an argument\n", pending);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   117
	    System.exit(2);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   118
	}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   119
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   120
	return i;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   121
    }
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   122
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   123
    /*
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   124
     * -c cname -j jname -s sname
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   125
     */
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   126
    /**
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   127
     * @param args the command line arguments
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   128
     */
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   129
    public static void main(String[] args) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   130
	boolean generate_c = false;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   131
	boolean generate_server = false;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   132
	boolean generate_cstubs = false;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   133
	boolean generate_java = false;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   134
	boolean generate_jimpl = false;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   135
	boolean generate_diff = false;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   136
	boolean generate_common = false;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   137
	boolean check_nullable = true;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   138
	DocGenerator.Format doc_fmt = null;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   139
	String java_dir = "java";
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   140
	String baseline = "";
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   141
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   142
	List<Option> opts = new LinkedList<Option>();
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   143
	int operands = getOptions(args, "Ncj:mrsid:o:", opts);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   144
	for (Option o : opts) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   145
	    switch (o.getLetter()) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   146
	    case 'N':
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   147
		check_nullable = false;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   148
		break;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   149
	    case 'c':
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   150
		generate_c = true;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   151
		break;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   152
	    case 'j':
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   153
		generate_java = true;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   154
		java_dir = o.getArg();
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   155
		break;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   156
	    case 'r':
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   157
		generate_server = true;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   158
		break;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   159
	    case 's':
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   160
		generate_cstubs = true;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   161
		break;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   162
	    case 'i':
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   163
		generate_jimpl = true;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   164
		break;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   165
	    case 'd':
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   166
		generate_diff = true;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   167
		baseline = o.getArg();
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   168
		break;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   169
	    case 'm':
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   170
		generate_common = true;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   171
		break;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   172
	    case 'o':
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   173
		try {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   174
		    doc_fmt =
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   175
			DocGenerator.Format.valueOf(o.getArg().toUpperCase());
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   176
		} catch (IllegalArgumentException ie) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   177
		    System.err.format("Invalid documentation format: %s\n",
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   178
			o.getArg());
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   179
		    System.err.println(RADADRGEN_USAGE);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   180
		    System.exit(2);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   181
		}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   182
		break;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   183
	    }
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   184
	}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   185
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   186
	if (operands == args.length) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   187
	    System.err.println(RADADRGEN_USAGE);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   188
	    System.exit(2);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   189
	}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   190
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   191
	DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   192
	factory.setNamespaceAware(true);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   193
	try {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   194
	    URL schema = ADRGen.class.getResource("adr.xsd");
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   195
	    if (schema == null) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   196
		System.err.println("Unable to find schema");
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   197
		System.exit(1);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   198
	    }
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   199
	    SchemaFactory schemafactory = SchemaFactory.newInstance(
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   200
		XMLConstants.W3C_XML_SCHEMA_NS_URI);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   201
	    /* Use SchemaResourceResolver to find included/imported schemas */
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   202
	    schemafactory.setResourceResolver(new SchemaResourceResolver());
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   203
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   204
	    factory.setSchema(schemafactory.newSchema(schema));
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   205
	} catch (SAXException e) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   206
	    System.err.println("Error reading ADR schema: " + e.getMessage());
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   207
	    System.exit(1);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   208
	}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   209
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   210
	DocumentBuilder builder;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   211
	/* Contrary to the javadoc, the default error handler just drives on */
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   212
	ErrorHandler realHandler = new ErrorHandler() {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   213
	    public void warning(SAXParseException exception)
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   214
		throws SAXException {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   215
		throw exception;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   216
	    }
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   217
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   218
	    public void error(SAXParseException exception)
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   219
		throws SAXException {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   220
		throw exception;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   221
	    }
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   222
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   223
	    public void fatalError(SAXParseException exception)
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   224
		throws SAXException {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   225
		throw exception;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   226
	    }
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   227
	};
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   228
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   229
	try {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   230
	    builder = factory.newDocumentBuilder();
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   231
	    builder.setErrorHandler(realHandler);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   232
	} catch (ParserConfigurationException ex) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   233
	    System.err.println("Initialization error");
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   234
	    System.exit(1);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   235
	    return;
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   236
	}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   237
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   238
	for (int i = operands; i < args.length; i++) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   239
	    String file = args[i];
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   240
	    try {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   241
		ADRGen p = new ADRGen(builder, new File(file), check_nullable);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   242
		if (generate_diff) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   243
		    ADRGen pbaseline =
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   244
			new ADRGen(builder, new File(baseline), check_nullable);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   245
		    APIDiff.diff(pbaseline.iface_.apis_, p.iface_.apis_);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   246
		}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   247
		if (generate_c)
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   248
		    CGenerator.generate(p, generate_server, generate_cstubs,
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   249
			generate_common);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   250
		if (generate_java)
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   251
		    new JGenerator(p, java_dir).generate(false, generate_jimpl);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   252
		if (doc_fmt != null) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   253
		    DocGenerator.generate(p, doc_fmt);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   254
		}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   255
	    } catch (ParseException e) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   256
		System.err.format("Error parsing file %s: %s\n", file,
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   257
		    e.getMessage());
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   258
		System.exit(1);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   259
	    } catch (FileNotFoundException e) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   260
		System.err.println(e.getMessage());
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   261
		System.exit(1);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   262
	    } catch (TransformerException e) {
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   263
		/* Display an error and continue other operations */
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   264
		System.err.format("Error transforming file %s: %s\n", file,
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   265
		    e.getMessage());
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   266
		System.exit(1);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   267
	    }
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   268
	    builder.reset();
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   269
	    /*
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   270
	     * Contrary to the javadoc, the post-reset error handler is *not*
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   271
	     * functionally equal to the pre-reset error handler.
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   272
	     */
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   273
	    builder.setErrorHandler(realHandler);
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   274
	}
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   275
    }
a33daeba9b4c CR7123217 - Rename adrgen to radadrgen
devjani.ray@oracle.com <devjani.ray@oracle.com>
parents:
diff changeset
   276
}