in src/com/amazon/ion/apps/SymtabApp.java [67:132]
protected int processOptions(String[] args)
{
for (int i = 0; i < args.length; i++)
{
String arg = args[i];
if ("--catalog".equals(arg))
{
String symtabPath = args[++i];
loadCatalog(symtabPath);
}
else if ("--import".equals(arg))
{
// We'll use the latest version available.
String name = args[++i];
IonCatalog catalog = mySystem.getCatalog();
SymbolTable table = catalog.getTable(name);
if (table == null)
{
String message =
"There's no symbol table in the catalog named " +
name;
throw new RuntimeException(message);
}
myImports.add(table);
logDebug("Imported symbol table " + name
+ "@" + table.getVersion());
}
else if ("--name".equals(arg))
{
if (mySymtabName != null)
{
throw new RuntimeException("Multiple names");
}
mySymtabName = args[++i];
if (mySymtabName.length() == 0)
{
throw new RuntimeException("Name must not be empty");
}
}
else if ("--version".equals(arg))
{
if (mySymtabVersion != 0)
{
throw new RuntimeException("Multiple versions");
}
int version = Integer.parseInt(arg);
if (version < 1)
{
throw new RuntimeException("Version must be at least 1");
}
if (version != 1)
{
String message = "Symtab extension not implemented";
throw new UnsupportedOperationException(message);
}
mySymtabVersion = version;
}
else
{
// this arg is not an option, we're done here
return i;
}
}
return args.length;
}