public static void main()

in java/compat/src/main/java/org/bondlib/compat/CompatDriver.java [13:88]


    public static void main(final String[] args) throws IOException {
        if (args.length < 3 || args.length > 4) {
            System.out.println("Usage:");
            System.out.println("CompatDriver json|compact|compact2|fast|simple|simple2|schema input_file output_file [json|compact|fast|simple|simple2]");
            System.exit(STATUS_FAILURE);
        }

        final String fromProtocol = args[0];
        final String inputFile = args[1];
        final String outputFile = args[2];
        final String toProtocol;
        if (args.length == 4) {
            toProtocol = args[3];
        } else {
            toProtocol = fromProtocol;
        }

        final FileInputStream input = new FileInputStream(inputFile);
        final FileOutputStream output = new FileOutputStream(outputFile);

        TaggedProtocolReader taggedReader = null;
        UntaggedProtocolReader untaggedReader = null;
        ProtocolWriter writer = null;

        switch (fromProtocol) {
            case "fast":
                taggedReader = new FastBinaryReader(input, (short) 1);
                break;
            case "compact":
                taggedReader = new CompactBinaryReader(input, (short) 1);
                break;
            case "compact2":
                taggedReader = new CompactBinaryReader(input, (short) 2);
                break;
            case "simple":
                untaggedReader = new SimpleBinaryReader(input, (short) 1);
                break;
            case "simple2":
                untaggedReader = new SimpleBinaryReader(input, (short) 2);
                break;
            default:
                System.err.println("Unsupported input protocol: " + fromProtocol);
                System.exit(STATUS_FAILURE);
        }

        switch (toProtocol) {
            case "fast":
                writer = new FastBinaryWriter(output, (short) 1);
                break;
            case "compact":
                writer = new CompactBinaryWriter(output, (short) 1);
                break;
            case "compact2":
                writer = new CompactBinaryWriter(output, (short) 2);
                break;
            case "simple":
                writer = new SimpleBinaryWriter(output, (short) 1);
                break;
            case "simple2":
                writer = new SimpleBinaryWriter(output, (short) 2);
                break;
            default:
                System.err.println("Unsupported output protocol: " + toProtocol);
                System.exit(STATUS_FAILURE);
        }

        final Serializer<Compat> serializer = new Serializer<>();
        final Deserializer<Compat> deserializer = new Deserializer<>(Compat.BOND_TYPE);
        final Compat compat;
        if (untaggedReader != null) {
            compat = deserializer.deserialize(untaggedReader);
        } else {
            compat = deserializer.deserialize(taggedReader);
        }
        serializer.serialize(compat, writer);
    }