package jdepend.client.core.remote.analyzer;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import jdepend.server.service.analyzer.AnalyzerDTO;
import jdepend.util.analyzer.framework.Analyzer;
public final class AnalyzerConvertUtil {
public static Analyzer createAnalyzer(AnalyzerDTO analyzerDTO) throws ClassNotFoundException, IOException {
return createAnalyzer(analyzerDTO.getDef(), analyzerDTO.getClassName(), analyzerDTO.getDefaultData());
}
public static Analyzer createAnalyzer(byte[] def, String className, byte[] data) throws ClassNotFoundException,
IOException {
// 加载类定义
(new AnalyzerClassLoader(def)).loadClass(className);
// 生成类实例
ObjectInputStream s = null;
InputStream in = null;
try {
in = new ByteArrayInputStream(data);
s = new ObjectInputStream(in);
Analyzer analyzer = (Analyzer) s.readObject();
return analyzer;
} finally {
if (in != null) {
in.close();
}
if (s != null) {
s.close();
}
}
}
}