Skip to content

Commit

Permalink
Add parser warnings to the shared model and UWP (microsoft#1222)
Browse files Browse the repository at this point in the history
* Add parser warnings to the shared model and UWP

* Fixed shared model build

* Small fixes

* Add parser warnings to the shared model and UWP

* Fixed shared model build

* Small fixes

* iOS changes

* ios update

* ios changes

* ios changes

* merge

* Updating Android/Xamarin with new ParseResult.

* Fixing indentation

* Responding to code review feedback
  • Loading branch information
RebeccaAnne authored and Gilles Khouzam committed Mar 6, 2018
1 parent c55ac43 commit 7bd22bd
Show file tree
Hide file tree
Showing 40 changed files with 939 additions and 121 deletions.
2 changes: 2 additions & 0 deletions source/android/adaptivecards/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ add_library( # Sets the name of the library.
../../shared/cpp/ObjectModel/DateTimePreparsedToken.cpp
../../shared/cpp/ObjectModel/Util.cpp
../../shared/cpp/ObjectModel/UnknownElement.cpp
../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.cpp
../../shared/cpp/ObjectModel/ParseResult.cpp
src/main/cpp/objectmodel_wrap.cpp
)

Expand Down
7 changes: 7 additions & 0 deletions source/android/adaptivecards/src/AdaptiveCardObjectModel.i
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ struct tm {
#include "../../../shared/cpp/ObjectModel/OpenUrlAction.h"
#include "../../../shared/cpp/ObjectModel/ShowCardAction.h"
#include "../../../shared/cpp/ObjectModel/SubmitAction.h"
#include "../../../shared/cpp/ObjectModel/ParseResult.h"
#include "../../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.h"
#include "../../../shared/cpp/ObjectModel/SharedAdaptiveCard.h"
#include "../../../shared/cpp/ObjectModel/AdaptiveCardParseException.h"
#include "../../../shared/cpp/ObjectModel/HostConfig.h"
Expand Down Expand Up @@ -117,6 +119,8 @@ struct tm {
%shared_ptr(AdaptiveCards::OpenUrlAction)
%shared_ptr(AdaptiveCards::ShowCardAction)
%shared_ptr(AdaptiveCards::SubmitAction)
%shared_ptr(AdaptiveCards::AdaptiveCardParseWarning)
%shared_ptr(AdaptiveCards::ParseResult)
%shared_ptr(AdaptiveCards::AdaptiveCard)
%shared_ptr(AdaptiveCards::ContainerParser)
%shared_ptr(AdaptiveCards::TextBlockParser)
Expand Down Expand Up @@ -278,6 +282,7 @@ namespace Json {
}
%}

%template(AdaptiveCardParseWarningVector) std::vector<std::shared_ptr<AdaptiveCards::AdaptiveCardParseWarning> >;
%template(BaseCardElementVector) std::vector<std::shared_ptr<AdaptiveCards::BaseCardElement> >;
%template(ImageVector) std::vector<std::shared_ptr<AdaptiveCards::Image> >;
%template(FactVector) std::vector<std::shared_ptr<AdaptiveCards::Fact> >;
Expand Down Expand Up @@ -567,6 +572,8 @@ namespace Json {
%include "../../../shared/cpp/ObjectModel/OpenUrlAction.h"
%include "../../../shared/cpp/ObjectModel/ShowCardAction.h"
%include "../../../shared/cpp/ObjectModel/SubmitAction.h"
%include "../../../shared/cpp/ObjectModel/AdaptiveCardParseWarning.h"
%include "../../../shared/cpp/ObjectModel/ParseResult.h"
%include "../../../shared/cpp/ObjectModel/SharedAdaptiveCard.h"
%include "../../../shared/cpp/ObjectModel/AdaptiveCardParseException.h"
%include "../../../shared/cpp/ObjectModel/HostConfig.h"
Expand Down
372 changes: 354 additions & 18 deletions source/android/adaptivecards/src/main/cpp/objectmodel_wrap.cpp

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -107,49 +107,49 @@ public CardElementType GetElementType() {
return CardElementType.swigToEnum(AdaptiveCardObjectModelJNI.AdaptiveCard_GetElementType(swigCPtr, this));
}

public static AdaptiveCard DeserializeFromFile(String jsonFile, double rendererVersion, ElementParserRegistration elementParserRegistration, ActionParserRegistration actionParserRegistration) throws java.io.IOException {
public static ParseResult DeserializeFromFile(String jsonFile, double rendererVersion, ElementParserRegistration elementParserRegistration, ActionParserRegistration actionParserRegistration) throws java.io.IOException {
long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_DeserializeFromFile__SWIG_0(jsonFile, rendererVersion, ElementParserRegistration.getCPtr(elementParserRegistration), elementParserRegistration, ActionParserRegistration.getCPtr(actionParserRegistration), actionParserRegistration);
return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true);
return (cPtr == 0) ? null : new ParseResult(cPtr, true);
}

public static AdaptiveCard DeserializeFromFile(String jsonFile, double rendererVersion, ElementParserRegistration elementParserRegistration) throws java.io.IOException {
public static ParseResult DeserializeFromFile(String jsonFile, double rendererVersion, ElementParserRegistration elementParserRegistration) throws java.io.IOException {
long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_DeserializeFromFile__SWIG_1(jsonFile, rendererVersion, ElementParserRegistration.getCPtr(elementParserRegistration), elementParserRegistration);
return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true);
return (cPtr == 0) ? null : new ParseResult(cPtr, true);
}

public static AdaptiveCard DeserializeFromFile(String jsonFile, double rendererVersion) throws java.io.IOException {
public static ParseResult DeserializeFromFile(String jsonFile, double rendererVersion) throws java.io.IOException {
long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_DeserializeFromFile__SWIG_2(jsonFile, rendererVersion);
return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true);
return (cPtr == 0) ? null : new ParseResult(cPtr, true);
}

public static AdaptiveCard Deserialize(JsonValue json, double rendererVersion, ElementParserRegistration elementParserRegistration, ActionParserRegistration actionParserRegistration) throws java.io.IOException {
public static ParseResult Deserialize(JsonValue json, double rendererVersion, ElementParserRegistration elementParserRegistration, ActionParserRegistration actionParserRegistration) throws java.io.IOException {
long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_Deserialize__SWIG_0(JsonValue.getCPtr(json), json, rendererVersion, ElementParserRegistration.getCPtr(elementParserRegistration), elementParserRegistration, ActionParserRegistration.getCPtr(actionParserRegistration), actionParserRegistration);
return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true);
return (cPtr == 0) ? null : new ParseResult(cPtr, true);
}

public static AdaptiveCard Deserialize(JsonValue json, double rendererVersion, ElementParserRegistration elementParserRegistration) throws java.io.IOException {
public static ParseResult Deserialize(JsonValue json, double rendererVersion, ElementParserRegistration elementParserRegistration) throws java.io.IOException {
long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_Deserialize__SWIG_1(JsonValue.getCPtr(json), json, rendererVersion, ElementParserRegistration.getCPtr(elementParserRegistration), elementParserRegistration);
return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true);
return (cPtr == 0) ? null : new ParseResult(cPtr, true);
}

public static AdaptiveCard Deserialize(JsonValue json, double rendererVersion) throws java.io.IOException {
public static ParseResult Deserialize(JsonValue json, double rendererVersion) throws java.io.IOException {
long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_Deserialize__SWIG_2(JsonValue.getCPtr(json), json, rendererVersion);
return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true);
return (cPtr == 0) ? null : new ParseResult(cPtr, true);
}

public static AdaptiveCard DeserializeFromString(String jsonString, double rendererVersion, ElementParserRegistration elementParserRegistration, ActionParserRegistration actionParserRegistration) throws java.io.IOException {
public static ParseResult DeserializeFromString(String jsonString, double rendererVersion, ElementParserRegistration elementParserRegistration, ActionParserRegistration actionParserRegistration) throws java.io.IOException {
long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_DeserializeFromString__SWIG_0(jsonString, rendererVersion, ElementParserRegistration.getCPtr(elementParserRegistration), elementParserRegistration, ActionParserRegistration.getCPtr(actionParserRegistration), actionParserRegistration);
return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true);
return (cPtr == 0) ? null : new ParseResult(cPtr, true);
}

public static AdaptiveCard DeserializeFromString(String jsonString, double rendererVersion, ElementParserRegistration elementParserRegistration) throws java.io.IOException {
public static ParseResult DeserializeFromString(String jsonString, double rendererVersion, ElementParserRegistration elementParserRegistration) throws java.io.IOException {
long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_DeserializeFromString__SWIG_1(jsonString, rendererVersion, ElementParserRegistration.getCPtr(elementParserRegistration), elementParserRegistration);
return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true);
return (cPtr == 0) ? null : new ParseResult(cPtr, true);
}

public static AdaptiveCard DeserializeFromString(String jsonString, double rendererVersion) throws java.io.IOException {
public static ParseResult DeserializeFromString(String jsonString, double rendererVersion) throws java.io.IOException {
long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_DeserializeFromString__SWIG_2(jsonString, rendererVersion);
return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true);
return (cPtr == 0) ? null : new ParseResult(cPtr, true);
}

public static AdaptiveCard MakeFallbackTextCard(String fallbackText, String language) throws java.io.IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,17 @@ public class AdaptiveCardObjectModelJNI {
public final static native String JsonValue_getString(long jarg1, JsonValue jarg1_);
public final static native long new_JsonValue();
public final static native void delete_JsonValue(long jarg1);
public final static native long new_AdaptiveCardParseWarningVector__SWIG_0();
public final static native long new_AdaptiveCardParseWarningVector__SWIG_1(long jarg1);
public final static native long AdaptiveCardParseWarningVector_size(long jarg1, AdaptiveCardParseWarningVector jarg1_);
public final static native long AdaptiveCardParseWarningVector_capacity(long jarg1, AdaptiveCardParseWarningVector jarg1_);
public final static native void AdaptiveCardParseWarningVector_reserve(long jarg1, AdaptiveCardParseWarningVector jarg1_, long jarg2);
public final static native boolean AdaptiveCardParseWarningVector_isEmpty(long jarg1, AdaptiveCardParseWarningVector jarg1_);
public final static native void AdaptiveCardParseWarningVector_clear(long jarg1, AdaptiveCardParseWarningVector jarg1_);
public final static native void AdaptiveCardParseWarningVector_add(long jarg1, AdaptiveCardParseWarningVector jarg1_, long jarg2, AdaptiveCardParseWarning jarg2_);
public final static native long AdaptiveCardParseWarningVector_get(long jarg1, AdaptiveCardParseWarningVector jarg1_, int jarg2);
public final static native void AdaptiveCardParseWarningVector_set(long jarg1, AdaptiveCardParseWarningVector jarg1_, int jarg2, long jarg3, AdaptiveCardParseWarning jarg3_);
public final static native void delete_AdaptiveCardParseWarningVector(long jarg1);
public final static native long new_BaseCardElementVector__SWIG_0();
public final static native long new_BaseCardElementVector__SWIG_1(long jarg1);
public final static native long BaseCardElementVector_size(long jarg1, BaseCardElementVector jarg1_);
Expand Down Expand Up @@ -480,6 +491,14 @@ public class AdaptiveCardObjectModelJNI {
public final static native void delete_SubmitAction(long jarg1);
public final static native long new_SubmitActionParser();
public final static native void delete_SubmitActionParser(long jarg1);
public final static native long new_AdaptiveCardParseWarning(int jarg1, String jarg2);
public final static native void delete_AdaptiveCardParseWarning(long jarg1);
public final static native int AdaptiveCardParseWarning_GetStatusCode(long jarg1, AdaptiveCardParseWarning jarg1_);
public final static native String AdaptiveCardParseWarning_GetReason(long jarg1, AdaptiveCardParseWarning jarg1_);
public final static native long new_ParseResult(long jarg1, AdaptiveCard jarg1_, long jarg2, AdaptiveCardParseWarningVector jarg2_);
public final static native long ParseResult_GetAdaptiveCard(long jarg1, ParseResult jarg1_);
public final static native long ParseResult_GetWarnings(long jarg1, ParseResult jarg1_);
public final static native void delete_ParseResult(long jarg1);
public final static native long new_AdaptiveCard__SWIG_0();
public final static native long new_AdaptiveCard__SWIG_1(String jarg1, String jarg2, String jarg3, int jarg4, String jarg5, String jarg6);
public final static native long new_AdaptiveCard__SWIG_2(String jarg1, String jarg2, String jarg3, int jarg4, String jarg5, String jarg6, long jarg7, BaseCardElementVector jarg7_, long jarg8, BaseActionElementVector jarg8_);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.12
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */

package io.adaptivecards.objectmodel;

public class AdaptiveCardParseWarning {
private transient long swigCPtr;
private transient boolean swigCMemOwn;

protected AdaptiveCardParseWarning(long cPtr, boolean cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
swigCPtr = cPtr;
}

protected static long getCPtr(AdaptiveCardParseWarning obj) {
return (obj == null) ? 0 : obj.swigCPtr;
}

protected void finalize() {
delete();
}

public synchronized void delete() {
if (swigCPtr != 0) {
if (swigCMemOwn) {
swigCMemOwn = false;
AdaptiveCardObjectModelJNI.delete_AdaptiveCardParseWarning(swigCPtr);
}
swigCPtr = 0;
}
}

public AdaptiveCardParseWarning(WarningStatusCode statusCode, String message) {
this(AdaptiveCardObjectModelJNI.new_AdaptiveCardParseWarning(statusCode.swigValue(), message), true);
}

public WarningStatusCode GetStatusCode() {
return WarningStatusCode.swigToEnum(AdaptiveCardObjectModelJNI.AdaptiveCardParseWarning_GetStatusCode(swigCPtr, this));
}

public String GetReason() {
return AdaptiveCardObjectModelJNI.AdaptiveCardParseWarning_GetReason(swigCPtr, this);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.12
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */

package io.adaptivecards.objectmodel;

public class AdaptiveCardParseWarningVector {
private transient long swigCPtr;
protected transient boolean swigCMemOwn;

protected AdaptiveCardParseWarningVector(long cPtr, boolean cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
swigCPtr = cPtr;
}

protected static long getCPtr(AdaptiveCardParseWarningVector obj) {
return (obj == null) ? 0 : obj.swigCPtr;
}

protected void finalize() {
delete();
}

public synchronized void delete() {
if (swigCPtr != 0) {
if (swigCMemOwn) {
swigCMemOwn = false;
AdaptiveCardObjectModelJNI.delete_AdaptiveCardParseWarningVector(swigCPtr);
}
swigCPtr = 0;
}
}

public AdaptiveCardParseWarningVector() {
this(AdaptiveCardObjectModelJNI.new_AdaptiveCardParseWarningVector__SWIG_0(), true);
}

public AdaptiveCardParseWarningVector(long n) {
this(AdaptiveCardObjectModelJNI.new_AdaptiveCardParseWarningVector__SWIG_1(n), true);
}

public long size() {
return AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_size(swigCPtr, this);
}

public long capacity() {
return AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_capacity(swigCPtr, this);
}

public void reserve(long n) {
AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_reserve(swigCPtr, this, n);
}

public boolean isEmpty() {
return AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_isEmpty(swigCPtr, this);
}

public void clear() {
AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_clear(swigCPtr, this);
}

public void add(AdaptiveCardParseWarning x) {
AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_add(swigCPtr, this, AdaptiveCardParseWarning.getCPtr(x), x);
}

public AdaptiveCardParseWarning get(int i) {
long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_get(swigCPtr, this, i);
return (cPtr == 0) ? null : new AdaptiveCardParseWarning(cPtr, true);
}

public void set(int i, AdaptiveCardParseWarning val) {
AdaptiveCardObjectModelJNI.AdaptiveCardParseWarningVector_set(swigCPtr, this, i, AdaptiveCardParseWarning.getCPtr(val), val);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

public enum ErrorStatusCode {
InvalidJson(0),
UnsupportedSchemaVersion,
RenderFailed,
RequiredPropertyMissing,
InvalidPropertyValue,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/* ----------------------------------------------------------------------------
* This file was automatically generated by SWIG (http://www.swig.org).
* Version 3.0.12
*
* Do not make changes to this file unless you know what you are doing--modify
* the SWIG interface file instead.
* ----------------------------------------------------------------------------- */

package io.adaptivecards.objectmodel;

public class ParseResult {
private transient long swigCPtr;
private transient boolean swigCMemOwn;

protected ParseResult(long cPtr, boolean cMemoryOwn) {
swigCMemOwn = cMemoryOwn;
swigCPtr = cPtr;
}

protected static long getCPtr(ParseResult obj) {
return (obj == null) ? 0 : obj.swigCPtr;
}

protected void finalize() {
delete();
}

public synchronized void delete() {
if (swigCPtr != 0) {
if (swigCMemOwn) {
swigCMemOwn = false;
AdaptiveCardObjectModelJNI.delete_ParseResult(swigCPtr);
}
swigCPtr = 0;
}
}

public ParseResult(AdaptiveCard adaptiveCard, AdaptiveCardParseWarningVector warnings) {
this(AdaptiveCardObjectModelJNI.new_ParseResult(AdaptiveCard.getCPtr(adaptiveCard), adaptiveCard, AdaptiveCardParseWarningVector.getCPtr(warnings), warnings), true);
}

public AdaptiveCard GetAdaptiveCard() {
long cPtr = AdaptiveCardObjectModelJNI.ParseResult_GetAdaptiveCard(swigCPtr, this);
return (cPtr == 0) ? null : new AdaptiveCard(cPtr, true);
}

public AdaptiveCardParseWarningVector GetWarnings() {
return new AdaptiveCardParseWarningVector(AdaptiveCardObjectModelJNI.ParseResult_GetWarnings(swigCPtr, this), true);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ public enum WarningStatusCode {
NoRendererForType,
InteractivityNotSupported,
MaxActionsExceeded,
AssetLoadFailed;
AssetLoadFailed,
UnsupportedSchemaVersion;

public final int swigValue() {
return swigValue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -190,10 +190,10 @@ private void renderAdaptiveCard(boolean showErrorToast)

CardRendererRegistration.getInstance().registerRenderer("blah", new CustomBlahRenderer());

AdaptiveCard adaptiveCard = AdaptiveCard.DeserializeFromString(jsonText, AdaptiveCardRenderer.VERSION, elementParserRegistration);
ParseResult parseResult = AdaptiveCard.DeserializeFromString(jsonText, AdaptiveCardRenderer.VERSION, elementParserRegistration);
LinearLayout layout = (LinearLayout) findViewById(R.id.visualAdaptiveCardLayout);
layout.removeAllViews();
RenderedAdaptiveCard renderedCard = AdaptiveCardRenderer.getInstance().render(this, getSupportFragmentManager(), adaptiveCard, this, hostConfig);
RenderedAdaptiveCard renderedCard = AdaptiveCardRenderer.getInstance().render(this, getSupportFragmentManager(), parseResult.GetAdaptiveCard(), this, hostConfig);
layout.addView(renderedCard.getView());
}
catch (Exception ex)
Expand Down
Loading

0 comments on commit 7bd22bd

Please sign in to comment.