| // © 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); |
| } |
| } |
| } |