/**
* This file is part of ObjectFabric (http://objectfabric.org).
*
* ObjectFabric is licensed under the Apache License, Version 2.0, the terms
* of which may be found at http://www.apache.org/licenses/LICENSE-2.0.html.
*
* Copyright ObjectFabric Inc.
*
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
* WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
package org.objectfabric;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
final class PlatformGenerator {
private static final Platform _platform = new JVMPlatform();
private PlatformGenerator() {
}
static Platform getPlatform() {
return _platform;
}
// Class
static Class forName(String name) {
if (name.equals("byte[]"))
return byte[].class;
try {
return Class.forName(name);
} catch (ClassNotFoundException ex) {
return null;
}
}
// TODO unify with .NET enums
static boolean isJavaEnum(Class c) {
return c.isEnum();
}
static boolean isInterface(Class c) {
return c.isInterface();
}
@SuppressWarnings("unchecked")
static boolean isAssignableFrom(Class c, Class o) {
return c.isAssignableFrom(o);
}
static boolean isTObject(Class c) {
return isAssignableFrom(TObject.class, c);
}
static boolean isTMap(Class c) {
return isAssignableFrom(TMap.class, c);
}
@SuppressWarnings("unchecked")
static boolean isCollection(Class c) {
if (c != null)
if (isAssignableFrom(TKeyed.class, c))
return true;
return false;
}
// File
static void writeFile(String path, char[] text, int length) {
File file = new File(path);
FileWriter writer = null;
try {
writer = new FileWriter(file);
writer.write(text, 0, length);
} catch (IOException ex) {
throw new RuntimeException(ex);
} finally {
try {
if (writer != null)
writer.close();
} catch (IOException ex) {
// Ignore
}
}
}
static void clearFolder(String folder) {
clearFolder(new File(folder));
}
static void clearFolder(File folder) {
if (folder.exists()) {
for (File child : folder.listFiles()) {
if (child.isDirectory())
clearFolder(child);
if (!child.delete())
throw new RuntimeException();
}
}
}
static boolean fileExists(String file) {
return new File(file).exists();
}
static void mkdir(String folder) {
new File(folder).mkdir();
}
static String readCopyright() {
Properties jautodoc = new Properties();
try {
jautodoc.load(new FileInputStream("../api/.settings/net.sf.jautodoc.prefs"));
} catch (Exception ex) {
throw new RuntimeException(ex);
}
return jautodoc.getProperty("header_text");
}
}