use of com.igormaznitsa.mindmap.plugins.api.AbstractImporter in project netbeans-mmd-plugin by raydac.
the class Main method convertData.
private static boolean convertData(@Nonnull @MustNotContainNull final String[] args) {
MindMapPluginRegistry.getInstance().registerPlugin(new LocalMMDExporter());
MindMapPluginRegistry.getInstance().registerPlugin(new LocalMMDImporter());
final String[] params = new String[5];
final Properties options = new Properties();
final int IN_FILE = 0;
final int OUT_FILE = 1;
final int IN_TYPE = 2;
final int OUT_TYPE = 3;
final int SETTINGS = 4;
final int OPTION = 5;
// NOI18N
params[IN_TYPE] = "mmd";
// NOI18N
params[OUT_TYPE] = "mmd";
// NOI18N
params[SETTINGS] = "";
int detected = -1;
boolean allOk = true;
for (int i = 1; i < args.length; i++) {
if (detected >= 0) {
if (detected == OPTION) {
final String text = args[i];
// NOI18N
final String[] splitted = text.split("\\=");
if (splitted.length < 2) {
// NOI18N
options.put(splitted[0], "true");
} else {
options.put(splitted[0], splitted[1]);
}
} else {
params[detected] = args[i];
}
detected = -1;
} else {
if ("--in".equalsIgnoreCase(args[i])) {
// NOI18N
detected = IN_FILE;
} else if ("--out".equalsIgnoreCase(args[i])) {
// NOI18N
detected = OUT_FILE;
} else if ("--from".equalsIgnoreCase(args[i])) {
// NOI18N
detected = IN_TYPE;
} else if ("--to".equalsIgnoreCase(args[i])) {
// NOI18N
detected = OUT_TYPE;
} else if ("--settings".equalsIgnoreCase(args[i])) {
// NOI18N
detected = SETTINGS;
} else if ("--option".equalsIgnoreCase(args[i])) {
// NOI18N
detected = OPTION;
} else {
// NOI18N
LOGGER.error("Unexpected argument : " + args[i]);
allOk = false;
break;
}
}
}
if (allOk) {
for (final String s : params) {
if (s == null) {
// NOI18N
LOGGER.error("Not provided required parameter");
allOk = true;
break;
}
}
if (allOk) {
final File inFile = new File(params[IN_FILE]);
final File outFile = new File(params[OUT_FILE]);
final AbstractImporter importer = MindMapPluginRegistry.getInstance().findImporterForMnemonic(params[IN_TYPE]);
final AbstractExporter exporter = MindMapPluginRegistry.getInstance().findExporterForMnemonic(params[OUT_TYPE]);
if (importer == null) {
// NOI18N
LOGGER.error("Unknown importer : " + params[IN_TYPE]);
allOk = false;
} else if (exporter == null) {
// NOI18N
LOGGER.error("Unknown exporter : " + params[OUT_TYPE]);
allOk = false;
}
if (allOk) {
final File settingsFile = params[SETTINGS].isEmpty() ? null : new File(params[SETTINGS]);
final MindMapPanelConfig config = new MindMapPanelConfig();
if (settingsFile != null) {
try {
config.loadFrom(new PropertiesPreferences(FileUtils.readFileToString(settingsFile, "UTF-8")));
} catch (IOException ex) {
// NOI18N
LOGGER.error("Can't load settings file : " + settingsFile, ex);
allOk = false;
}
}
if (allOk && importer != null && exporter != null) {
try {
makeConversion(inFile, importer, outFile, exporter, config, options);
} catch (final Exception ex) {
if (ex instanceof IllegalArgumentException) {
LOGGER.error(ex.getMessage());
} else {
// NOI18N
LOGGER.error("Unexpected error during conversion", ex);
}
allOk = false;
}
}
}
}
}
return allOk;
}
Aggregations