blob: be6448e5432b398b072c0202563370822d9f66c4 [file] [log] [blame]
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
/*
*******************************************************************************
* Copyright (C) 1996-2011, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
*/
package com.ibm.icu.dev.test.serializable;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.List;
import com.ibm.icu.dev.test.serializable.SerializableTestUtility.Handler;
import com.ibm.icu.util.VersionInfo;
/**
* This class writes the test objects for each class to a file. The work is
* actually done by the superclass, CoverageTest. This class just constructs
* a CoverageTest w/ a non-null path, which tells it to write the data.
*
*/
public class SerializableWriter
{
String path;
public SerializableWriter(String path)
{
this.path = path;
}
private static String folderName()
{
int major = VersionInfo.ICU_VERSION.getMajor();
int minor = VersionInfo.ICU_VERSION.getMinor();
int milli = VersionInfo.ICU_VERSION.getMilli();
int micro = VersionInfo.ICU_VERSION.getMicro();
StringBuffer result = new StringBuffer("ICU_");
result.append(major);
result.append(".");
result.append(minor);
if (milli != 0 || micro != 0) {
result.append(".");
result.append(milli);
if (micro != 0) {
result.append(".");
result.append(micro);
}
}
return result.toString();
}
public static void main(String[] args) throws IOException
{
String outDir = null;
if (args.length == 0) {
URL dataURL = SerializableWriter.class.getResource("data");
outDir = dataURL.getPath() + "/" + folderName();
} else {
outDir = args[0] + "/" + folderName();
}
SerializableWriter writer = new SerializableWriter(outDir);
writer.serialize();
}
public void serialize() throws IOException {
File outDir = new File(this.path);
if (!outDir.exists()) {
outDir.mkdirs();
}
List<String> classList = SerializableTestUtility.getSerializationClassList(this);
for (String className : classList) {
Handler classHandler = SerializableTestUtility.getHandler(className);
if (classHandler == null) {
System.out.println("No Handler - Skipping Class: " + className);
continue;
}
Object[] testObjects = classHandler.getTestObjects();
File oof = new File(this.path, className + ".dat");
SerializableTestUtility.serializeObjects(oof, testObjects);
}
}
}