X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2Flauncher%2FOptional.java;h=cff57f953d34d3e36333531a423d1634ac554712;hb=50f45faca9eddbaaff473cef0e4108e5c47692a8;hp=b737c019502375fca91795019f4c0260477ab534;hpb=02b341aa6dcd14dc311f6ea218e199f20e242f36;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/launcher/Optional.java b/src/be/nikiroo/jvcard/launcher/Optional.java index b737c01..cff57f9 100644 --- a/src/be/nikiroo/jvcard/launcher/Optional.java +++ b/src/be/nikiroo/jvcard/launcher/Optional.java @@ -6,6 +6,7 @@ import java.lang.reflect.Method; import java.util.List; import be.nikiroo.jvcard.Card; +import be.nikiroo.jvcard.launcher.CardResult.MergeCallback; /** * This class let you call "optional" methods, that is, methods and classes that @@ -53,7 +54,7 @@ class Optional { InvocationTargetException { @SuppressWarnings("rawtypes") Class serverClass = Class.forName("be.nikiroo.jvcard.remote.Server"); - Method run = serverClass.getDeclaredMethod("run", new Class[] {}); + Method run = serverClass.getDeclaredMethod("run", new Class[] {}); run.invoke(serverClass.getConstructor(int.class).newInstance(port)); } @@ -92,7 +93,7 @@ class Optional { @SuppressWarnings("rawtypes") Class launcherClass = Class .forName("be.nikiroo.jvcard.tui.TuiLauncher"); - Method start = launcherClass.getDeclaredMethod("start", new Class[] { + Method start = launcherClass.getDeclaredMethod("start", new Class[] { Boolean.class, List.class }); start.invoke(launcherClass.newInstance(), textMode, files); } @@ -104,6 +105,10 @@ class Optional { * @param input * the jvcard:// with resource name URL (e.g.: * jvcard://localhost:4444/coworkers) + * @param callback + * the {@link MergeCallback} to call in case of conflict, or NULL + * to disallow conflict management (the {@link Card} will not be + * allowed to synchronise in case of conflicts) * * @throws SecurityException * in case of internal error @@ -123,17 +128,17 @@ class Optional { * in case of IO error */ @SuppressWarnings("unchecked") - static public Card syncCard(String input) throws ClassNotFoundException, - NoSuchMethodException, SecurityException, InstantiationException, - IllegalAccessException, IllegalArgumentException, - InvocationTargetException, IOException { + static public CardResult syncCard(String input, MergeCallback callback) + throws ClassNotFoundException, NoSuchMethodException, + SecurityException, InstantiationException, IllegalAccessException, + IllegalArgumentException, InvocationTargetException, IOException { @SuppressWarnings("rawtypes") Class syncClass = Class.forName("be.nikiroo.jvcard.remote.Sync"); - Method sync = syncClass.getDeclaredMethod("sync", - new Class[] { boolean.class }); + Method sync = syncClass.getDeclaredMethod("sync", new Class[] { + boolean.class, MergeCallback.class }); Object o = syncClass.getConstructor(String.class).newInstance(input); - Card card = (Card) sync.invoke(o, false); + CardResult card = (CardResult) sync.invoke(o, false, callback); return card; }