You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/01/13 09:11:16 UTC

isis git commit: ISIS-1008: trivial tidy up in ActionModel; moved exportAsJson into the ToDoItemContributions, minor enhancements.

Repository: isis
Updated Branches:
  refs/heads/ISIS-1008-stream-lobs-in-ajax c896fc0a0 -> edfb15352


ISIS-1008: trivial tidy up in ActionModel; moved exportAsJson into the ToDoItemContributions, minor enhancements.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/edfb1535
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/edfb1535
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/edfb1535

Branch: refs/heads/ISIS-1008-stream-lobs-in-ajax
Commit: edfb15352d8edcab771bfca84b6c21ed37185aaf
Parents: c896fc0
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Jan 13 08:11:13 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Jan 13 08:11:13 2015 +0000

----------------------------------------------------------------------
 .../viewer/wicket/model/models/ActionModel.java | 62 ++++++++++----------
 .../dom/src/main/java/dom/todo/ToDoItem.java    | 12 ----
 .../java/dom/todo/ToDoItemContributions.java    | 31 +++++++++-
 3 files changed, 61 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/edfb1535/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index 460cf14..e2b551e 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -101,7 +101,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
      * @param action
      * @return
      */
-    public static ActionModel create(ObjectAdapter objectAdapter, ObjectAction action) {
+    public static ActionModel create(final ObjectAdapter objectAdapter, final ObjectAction action) {
         final ObjectAdapterMemento serviceMemento = ObjectAdapterMemento.Functions.fromAdapter().apply(objectAdapter);
         final ActionMemento homePageActionMemento = ObjectAdapterMemento.Functions.fromAction().apply(action);
         final Mode mode = action.getParameterCount() > 0? Mode.PARAMETERS : Mode.RESULTS;
@@ -194,7 +194,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
 
         // capture argument values
         final ObjectAdapter[] argumentsAsArray = getArgumentsAsArray();
-        for(ObjectAdapter argumentAdapter: argumentsAsArray) {
+        for(final ObjectAdapter argumentAdapter: argumentsAsArray) {
             final String encodedArg = encodeArg(argumentAdapter);
             PageParameterNames.ACTION_ARGS.addStringTo(pageParameters, encodedArg);
         }
@@ -209,7 +209,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
         
         final StringBuilder buf = new StringBuilder();
         final ObjectAdapter[] argumentsAsArray = getArgumentsAsArray();
-        for(ObjectAdapter argumentAdapter: argumentsAsArray) {
+        for(final ObjectAdapter argumentAdapter: argumentsAsArray) {
             if(buf.length() > 0) {
                 buf.append(",");
             }
@@ -229,7 +229,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
     //////////////////////////////////////////////////
 
     
-    private static String titleOf(ObjectAdapter argumentAdapter) {
+    private static String titleOf(final ObjectAdapter argumentAdapter) {
         return argumentAdapter!=null?argumentAdapter.titleString(null):"";
     }
     
@@ -277,7 +277,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
         return new ActionMemento(owningSpec, actionType, actionNameParms);
     }
 
-    private static Mode actionModeFrom(PageParameters pageParameters) {
+    private static Mode actionModeFrom(final PageParameters pageParameters) {
         final ActionMemento actionMemento = newActionMementoFrom(pageParameters);
         if(actionMemento.getAction().getParameterCount() == 0) {
             return Mode.RESULTS;
@@ -288,7 +288,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
 
 
     private static ObjectAdapterMemento newObjectAdapterMementoFrom(final PageParameters pageParameters) {
-        RootOid oid = oidFor(pageParameters);
+        final RootOid oid = oidFor(pageParameters);
         if(oid.isTransient()) {
             return null;
         } else {
@@ -297,7 +297,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
     }
 
     private static RootOid oidFor(final PageParameters pageParameters) {
-        String oidStr = PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
+        final String oidStr = PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
         return getOidMarshaller().unmarshal(oidStr, RootOid.class);
     }
 
@@ -311,7 +311,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
     /**
      * Copy constructor, as called by {@link #copy()}.
      */
-    private ActionModel(ActionModel actionModel) {
+    private ActionModel(final ActionModel actionModel) {
         this.targetAdapterMemento = actionModel.targetAdapterMemento;
         this.actionMemento = actionModel.actionMemento;
         this.actionMode = actionModel.actionMode;
@@ -319,7 +319,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
         
         primeArgumentModels();
         final Map<Integer, ScalarModel> argumentModelByIdx = actionModel.arguments;
-        for (Map.Entry<Integer,ScalarModel> argumentModel : argumentModelByIdx.entrySet()) {
+        for (final Map.Entry<Integer,ScalarModel> argumentModel : argumentModelByIdx.entrySet()) {
             setArgument(argumentModel.getKey(), argumentModel.getValue().getObject());
         }
 
@@ -327,13 +327,13 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
     }
 
     private void setArgumentsIfPossible(final PageParameters pageParameters) {
-        List<String> args = PageParameterNames.ACTION_ARGS.getListFrom(pageParameters);
+        final List<String> args = PageParameterNames.ACTION_ARGS.getListFrom(pageParameters);
 
         final ObjectAction action = actionMemento.getAction();
         final List<ObjectSpecification> parameterTypes = action.getParameterTypes();
 
         for (int paramNum = 0; paramNum < args.size(); paramNum++) {
-            String encoded = args.get(paramNum);
+            final String encoded = args.get(paramNum);
             setArgument(paramNum, parameterTypes.get(paramNum), encoded);
         }
     }
@@ -370,27 +370,27 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
         setArgument(paramNum, argumentAdapter);
     }
 
-    private String encodeArg(ObjectAdapter adapter) {
+    private String encodeArg(final ObjectAdapter adapter) {
         if(adapter == null) {
             return NULL_ARG;
         }
         
-        ObjectSpecification objSpec = adapter.getSpecification();
+        final ObjectSpecification objSpec = adapter.getSpecification();
         if(objSpec.isEncodeable()) {
-            EncodableFacet encodeable = objSpec.getFacet(EncodableFacet.class);
+            final EncodableFacet encodeable = objSpec.getFacet(EncodableFacet.class);
             return encodeable.toEncodedString(adapter);
         }
         
         return adapter.getOid().enStringNoVersion(getOidMarshaller());
     }
 
-    private ObjectAdapter decodeArg(ObjectSpecification objSpec, String encoded) {
+    private ObjectAdapter decodeArg(final ObjectSpecification objSpec, final String encoded) {
         if(NULL_ARG.equals(encoded)) {
             return null;
         }
         
         if(objSpec.isEncodeable()) {
-            EncodableFacet encodeable = objSpec.getFacet(EncodableFacet.class);
+            final EncodableFacet encodeable = objSpec.getFacet(EncodableFacet.class);
             return encodeable.fromEncodedString(encoded);
         }
         
@@ -412,7 +412,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
 
 
     public ScalarModel getArgumentModel(final ActionParameterMemento apm) {
-        int i = apm.getNumber();
+        final int i = apm.getNumber();
 		ScalarModel scalarModel = arguments.get(i);
         if (scalarModel == null) {
             scalarModel = new ScalarModel(targetAdapterMemento, apm);
@@ -504,7 +504,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
     }
 
     public void clearArguments() {
-        for (ScalarModel argumentModel : arguments.values()) {
+        for (final ScalarModel argumentModel : arguments.values()) {
             argumentModel.reset();
         }
         this.actionMode = determineMode(actionMemento.getAction());
@@ -540,7 +540,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
             final ObjectAdapter resultAdapter = this.getObject();
             return resultAdapter;
 
-        } catch (RuntimeException ex) {
+        } catch (final RuntimeException ex) {
 
             // see if is an application-defined exception
             // if so, is converted to an application error,
@@ -563,15 +563,15 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
 
     // //////////////////////////////////////
     
-    public static RecoverableException getApplicationExceptionIfAny(Exception ex) {
-        Iterable<RecoverableException> appEx = Iterables.filter(Throwables.getCausalChain(ex), RecoverableException.class);
-        Iterator<RecoverableException> iterator = appEx.iterator();
+    public static RecoverableException getApplicationExceptionIfAny(final Exception ex) {
+        final Iterable<RecoverableException> appEx = Iterables.filter(Throwables.getCausalChain(ex), RecoverableException.class);
+        final Iterator<RecoverableException> iterator = appEx.iterator();
         return iterator.hasNext() ? iterator.next() : null;
     }
 
     public static IRequestHandler redirectHandler(final Object value) {
         if(value instanceof java.net.URL) {
-            java.net.URL url = (java.net.URL) value;
+            final java.net.URL url = (java.net.URL) value;
             return new RedirectRequestHandler(url.toString());
         }
         return null;
@@ -579,19 +579,19 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
 
     public static IRequestHandler downloadHandler(final Object value) {
         if(value instanceof Clob) {
-            Clob clob = (Clob)value;
+            final Clob clob = (Clob)value;
             return handlerFor(resourceStreamFor(clob), clob);
         }
         if(value instanceof Blob) {
-            Blob blob = (Blob)value;
+            final Blob blob = (Blob)value;
             return handlerFor(resourceStreamFor(blob), blob);
         }
         return null;
     }
     
     private static IResourceStream resourceStreamFor(final Blob blob) {
-        IResourceStream byteArrayResource = new AbstractResourceStream() {
-            
+        final IResourceStream resourceStream = new AbstractResourceStream() {
+
             private static final long serialVersionUID = 1L;
 
             @Override
@@ -608,16 +608,16 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
             public void close() throws IOException {
             }
         };
-        return byteArrayResource;
+        return resourceStream;
     }
 
     private static IResourceStream resourceStreamFor(final Clob clob) {
-        IResourceStream resourceStream = new StringResourceStream(clob.getChars(), clob.getMimeType().toString());
+        final IResourceStream resourceStream = new StringResourceStream(clob.getChars(), clob.getMimeType().toString());
         return resourceStream;
     }
 
-    private static IRequestHandler handlerFor(IResourceStream resourceStream, final NamedWithMimeType namedWithMimeType) {
-        ResourceStreamRequestHandler handler = 
+    private static IRequestHandler handlerFor(final IResourceStream resourceStream, final NamedWithMimeType namedWithMimeType) {
+        final ResourceStreamRequestHandler handler =
             new ResourceStreamRequestHandler(resourceStream, namedWithMimeType.getName());
         handler.setContentDisposition(ContentDisposition.ATTACHMENT);
         return handler;

http://git-wip-us.apache.org/repos/asf/isis/blob/edfb1535/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java b/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java
index 7ab5fff..ae41fa6 100644
--- a/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java
@@ -690,18 +690,6 @@ public class ToDoItem implements Categorized, Comparable<ToDoItem> {
     }
     //endregion
 
-    // region > exportAsJson (action)
-    /**
-     * Demonstrates functionality of streaming back Clob/Blob result within an action with a prompt, i.e. Ajax request
-     */
-    @ActionSemantics(Of.SAFE)
-    public Clob exportAsJson(
-            @ParameterLayout(named = "Comment") String comment
-    ) {
-        return new Clob("todo.json", "application/json", "{\"description\": \""+getDescription()+"\", \"comment\":\""+comment+"\"}");
-    }
-    //endregion
-
     //region > lifecycle callbacks
 
     public void created() {

http://git-wip-us.apache.org/repos/asf/isis/blob/edfb1535/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItemContributions.java
----------------------------------------------------------------------
diff --git a/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItemContributions.java b/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItemContributions.java
index 3ea61ff..fc6a9e0 100644
--- a/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItemContributions.java
+++ b/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItemContributions.java
@@ -44,6 +44,7 @@ import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.query.QueryDefault;
 import org.apache.isis.applib.services.queryresultscache.QueryResultsCache;
+import org.apache.isis.applib.value.Clob;
 
 @DomainService
 public class ToDoItemContributions extends AbstractFactoryAndRepository {
@@ -100,7 +101,7 @@ public class ToDoItemContributions extends AbstractFactoryAndRepository {
 
     //endregion
 
-    //region >  next, previous (contributed actions)
+    //region > next, previous (contributed actions)
     @DescribedAs("The next item not yet completed")
     @NotInServiceMenu
     @ActionSemantics(Of.SAFE)
@@ -221,6 +222,34 @@ public class ToDoItemContributions extends AbstractFactoryAndRepository {
     }
     //endregion
 
+    // region > exportAsJson (action)
+    /**
+     * Demonstrates functionality of streaming back Clob/Blob result within an action with a prompt, i.e. Ajax request
+     */
+    @ActionSemantics(Of.SAFE)
+    @NotInServiceMenu
+    public Clob exportAsJson(
+            final ToDoItem toDoItem,
+            @ParameterLayout(named = "File name") String fileName
+    ) {
+        if(!fileName.endsWith(".json")) {
+            fileName += ".json";
+        }
+        return new Clob(
+                fileName,
+                "application/json",
+                "{" +
+                "\"description\": \"" + toDoItem.getDescription()+"\"" +
+                ",\"complete\": " + ""+toDoItem.isComplete() +
+                "}");
+    }
+
+    public String default1ExportAsJson() {
+        return "todo";
+    }
+    //endregion
+
+
     //region > helpers
     protected String currentUserName() {
         return getContainer().getUser().getName();