Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*
 * JRichClient -- Java libraries for rich client applications.
 * Copyright (C) 2007 CompuLink, Ltd. 409 Vandiver Drive #4-200,
 * Columbia, Missouri 65202-1562, All Rights Reserved.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import java.beans.ExceptionListener;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;

public class Main {
    public static Object duplicate(Object object, boolean noisy) {
        byte[] momento = encodeObject(object, noisy);
        return decodeObject(momento, noisy);
    }

    public static byte[] encodeObject(Object object, final boolean noisy) {
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        XMLEncoder encoder = new XMLEncoder(outputStream);
        encoder.setExceptionListener(new ExceptionListener() {
            public void exceptionThrown(Exception ex) {
                if (noisy)
                    ex.printStackTrace();
            }
        });

        encoder.writeObject(object);
        encoder.close();

        if (noisy)
            System.out.println(outputStream.toString());

        return outputStream.toByteArray();
    }

    public static Object decodeObject(byte[] byteArray, final boolean noisy) {
        ByteArrayInputStream inputStream = new ByteArrayInputStream(byteArray);

        XMLDecoder decoder = new XMLDecoder(inputStream);
        decoder.setExceptionListener(new ExceptionListener() {
            public void exceptionThrown(Exception ex) {
                if (noisy)
                    ex.printStackTrace();
            }
        });

        Object copy = decoder.readObject();
        decoder.close();
        return copy;
    }
}