- /**
- * Create a new jVCard server on the given port, then run it.
- *
- * @param port
- * the port to run on
- *
- * @throws SecurityException
- * in case of internal error
- * @throws NoSuchMethodException
- * in case of internal error
- * @throws ClassNotFoundException
- * in case of internal error
- * @throws IllegalAccessException
- * in case of internal error
- * @throws InstantiationException
- * in case of internal error
- * @throws InvocationTargetException
- * in case of internal error
- * @throws IllegalArgumentException
- * in case of internal error
- * @throws IOException
- * in case of IO error
- */
- @SuppressWarnings("unchecked")
- static private void runServer(int port) throws NoSuchMethodException,
- SecurityException, ClassNotFoundException, InstantiationException,
- IllegalAccessException, IllegalArgumentException,
- InvocationTargetException {
- @SuppressWarnings("rawtypes")
- Class serverClass = Class.forName("be.nikiroo.jvcard.remote.Server");
- Method run = serverClass.getDeclaredMethod("run", new Class[] {});
- run.invoke(serverClass.getConstructor(int.class).newInstance(port));
- }
-
- /**
- * Start the TUI program.
- *
- * @param textMode
- * TRUE to force text mode, FALSE to force the Swing terminal
- * emulator, null to automatically determine the best choice
- * @param files
- * the files to show at startup
- *
- * @throws SecurityException
- * in case of internal error
- * @throws NoSuchMethodException
- * in case of internal error
- * @throws ClassNotFoundException
- * in case of internal error
- * @throws IllegalAccessException
- * in case of internal error
- * @throws InstantiationException
- * in case of internal error
- * @throws InvocationTargetException
- * in case of internal error
- * @throws IllegalArgumentException
- * in case of internal error
- * @throws IOException
- * in case of IO error
- */
- @SuppressWarnings("unchecked")
- static private void startTui(Boolean textMode, List<String> files)
- throws NoSuchMethodException, SecurityException,
- ClassNotFoundException, InstantiationException,
- IllegalAccessException, IllegalArgumentException,
- InvocationTargetException {
- @SuppressWarnings("rawtypes")
- Class launcherClass = Class
- .forName("be.nikiroo.jvcard.tui.TuiLauncher");
- Method start = launcherClass.getDeclaredMethod("start", new Class[] {
- Boolean.class, List.class });
- start.invoke(launcherClass.newInstance(), textMode, files);
- }
-
- /**
- * Return the {@link Card} corresponding to the given URL, synchronised if
- * necessary.
- *
- * @param input
- * the jvcard:// with resource name URL (e.g.:
- * <tt>jvcard://localhost:4444/coworkers</tt>)
- *
- * @throws SecurityException
- * in case of internal error
- * @throws NoSuchMethodException
- * in case of internal error
- * @throws ClassNotFoundException
- * in case of internal error
- * @throws IllegalAccessException
- * in case of internal error
- * @throws InstantiationException
- * in case of internal error
- * @throws InvocationTargetException
- * in case of internal error
- * @throws IllegalArgumentException
- * in case of internal error
- * @throws IOException
- * in case of IO error
- */
- @SuppressWarnings("unchecked")
- static private Card syncCard(String input) throws ClassNotFoundException,
- NoSuchMethodException, SecurityException, InstantiationException,
- IllegalAccessException, IllegalArgumentException,
- InvocationTargetException, IOException {
- @SuppressWarnings("rawtypes")
- Class syncClass = Class.forName("be.nikiroo.jvcard.remote.Sync");
- Method getCache = syncClass.getDeclaredMethod("getCache",
- new Class[] {});
- Method sync = syncClass.getDeclaredMethod("sync", new Class[] {
- Card.class, boolean.class });
-
- Object o = syncClass.getConstructor(String.class).newInstance(input);
-
- File file = (File) getCache.invoke(o);
- Card card = new Card(file, Format.VCard21);
- card.setRemote(true);
- sync.invoke(o, card, false);
-
- return card;
- }
-