Skip to content

Commit

Permalink
[Shared Model][UWP] Add input validation to the object model (#3226)
Browse files Browse the repository at this point in the history
  • Loading branch information
RebeccaAnne authored Jul 31, 2019
1 parent 3c63421 commit 0ee155f
Show file tree
Hide file tree
Showing 83 changed files with 975 additions and 345 deletions.
33 changes: 33 additions & 0 deletions samples/v1.3/Elements/Action.Submit.IgnoreInputValidation.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.3",
"body": [
{
"type": "TextBlock",
"text": "Here are some required inputs"
},
{
"type": "Input.Text",
"id": "input1",
"isRequired": true
},
{
"type": "Input.Text",
"id": "input2",
"isRequired": true
}
],
"actions": [
{
"type": "Action.Submit",
"title": "OK",
"ignoreInputValidation": false
},
{
"type": "Action.Submit",
"title": "Cancel",
"ignoreInputValidation": true
}
]
}
40 changes: 40 additions & 0 deletions samples/v1.3/Elements/AdaptiveCard.InputNecessityIndicators.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"inputNecessityIndicators": "optionalInputs",
"version": "1.3",
"body": [
{
"type": "TextBlock",
"text": "This one is optional"
},
{
"type": "Input.Text",
"id": "input1",
"isRequired": false
},
{
"type": "TextBlock",
"text": "This one too"
},
{
"type": "Input.Text",
"id": "input2"
},
{
"type": "TextBlock",
"text": "This is required"
},
{
"type": "Input.Text",
"id": "input3",
"isRequired": true
}
],
"actions": [
{
"type": "Action.Submit",
"title": "OK"
}
]
}
34 changes: 34 additions & 0 deletions samples/v1.3/Elements/Input.Text.Regex.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"inputNecessityIndicators": "none",
"version": "1.3",
"body": [
{
"type": "TextBlock",
"text": "This input is required and has a regex"
},
{
"type": "Input.Text",
"id": "input1",
"isRequired": true,
"regEx": "([A-Z])\\w+"
},
{
"type": "TextBlock",
"text": "This input is optional and has a regex"
},
{
"type": "Input.Text",
"id": "input2",
"isRequired": false,
"regEx": "([A-Z])\\w+"
}
],
"actions": [
{
"type": "Action.Submit",
"title": "OK"
}
]
}
33 changes: 33 additions & 0 deletions samples/v1.3/Elements/Input.Text.isRequired.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"inputNecessityIndicators": "requiredInputs",
"version": "1.3",
"body": [
{
"type": "TextBlock",
"text": "Two required inputs and one optional"
},
{
"type": "Input.Text",
"id": "input1",
"isRequired": true
},
{
"type": "Input.Text",
"id": "input2",
"isRequired": true
},
{
"type": "Input.Text",
"id": "input3",
"isRequired": false
}
],
"actions": [
{
"type": "Action.Submit",
"title": "OK"
}
]
}
199 changes: 199 additions & 0 deletions source/android/adaptivecards/src/main/cpp/objectmodel_wrap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8812,6 +8812,54 @@ SWIGEXPORT jint JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
}


SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_getInputNecessityIndicatorsEnum(JNIEnv *jenv, jclass jcls) {
jlong jresult = 0 ;
AdaptiveCards::EnumHelpers::EnumMapping< AdaptiveCards::InputNecessityIndicators > *result = 0 ;

(void)jenv;
(void)jcls;
result = (AdaptiveCards::EnumHelpers::EnumMapping< AdaptiveCards::InputNecessityIndicators > *) &AdaptiveCards::EnumHelpers::getInputNecessityIndicatorsEnum();
*(AdaptiveCards::EnumHelpers::EnumMapping< AdaptiveCards::InputNecessityIndicators > **)&jresult = result;
return jresult;
}


SWIGEXPORT jstring JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_InputNecessityIndicatorsToString(JNIEnv *jenv, jclass jcls, jint jarg1) {
jstring jresult = 0 ;
AdaptiveCards::InputNecessityIndicators arg1 ;
std::string result;

(void)jenv;
(void)jcls;
arg1 = (AdaptiveCards::InputNecessityIndicators)jarg1;
result = AdaptiveCards::InputNecessityIndicatorsToString(arg1);
jresult = jenv->NewStringUTF((&result)->c_str());
return jresult;
}


SWIGEXPORT jint JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_InputNecessityIndicatorsFromString(JNIEnv *jenv, jclass jcls, jstring jarg1) {
jint jresult = 0 ;
std::string *arg1 = 0 ;
AdaptiveCards::InputNecessityIndicators result;

(void)jenv;
(void)jcls;
if(!jarg1) {
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
return 0;
}
const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0);
if (!arg1_pstr) return 0;
std::string arg1_str(arg1_pstr);
arg1 = &arg1_str;
jenv->ReleaseStringUTFChars(jarg1, arg1_pstr);
result = (AdaptiveCards::InputNecessityIndicators)AdaptiveCards::InputNecessityIndicatorsFromString((std::string const &)*arg1);
jresult = (jint)result;
return jresult;
}


SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_AdaptiveBase64Util_1Decode(JNIEnv *jenv, jclass jcls, jstring jarg1) {
jlong jresult = 0 ;
std::string *arg1 = 0 ;
Expand Down Expand Up @@ -10810,6 +10858,47 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
}


SWIGEXPORT jstring JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_BaseInputElement_1GetErrorMessage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jstring jresult = 0 ;
AdaptiveCards::BaseInputElement *arg1 = (AdaptiveCards::BaseInputElement *) 0 ;
std::shared_ptr< AdaptiveCards::BaseInputElement const > *smartarg1 = 0 ;
std::string result;

(void)jenv;
(void)jcls;
(void)jarg1_;

smartarg1 = *(std::shared_ptr< const AdaptiveCards::BaseInputElement > **)&jarg1;
arg1 = (AdaptiveCards::BaseInputElement *)(smartarg1 ? smartarg1->get() : 0);
result = ((AdaptiveCards::BaseInputElement const *)arg1)->GetErrorMessage();
jresult = jenv->NewStringUTF((&result)->c_str());
return jresult;
}


SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_BaseInputElement_1SetErrorMessage(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
AdaptiveCards::BaseInputElement *arg1 = (AdaptiveCards::BaseInputElement *) 0 ;
std::string arg2 ;
std::shared_ptr< AdaptiveCards::BaseInputElement > *smartarg1 = 0 ;

(void)jenv;
(void)jcls;
(void)jarg1_;

smartarg1 = *(std::shared_ptr< AdaptiveCards::BaseInputElement > **)&jarg1;
arg1 = (AdaptiveCards::BaseInputElement *)(smartarg1 ? smartarg1->get() : 0);
if(!jarg2) {
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
return ;
}
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
if (!arg2_pstr) return ;
(&arg2)->assign(arg2_pstr);
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
(arg1)->SetErrorMessage(arg2);
}


SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_BaseInputElement_1SerializeToJsonValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jlong jresult = 0 ;
AdaptiveCards::BaseInputElement *arg1 = (AdaptiveCards::BaseInputElement *) 0 ;
Expand Down Expand Up @@ -15986,6 +16075,48 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
}


SWIGEXPORT jstring JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TextInput_1GetRegex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jstring jresult = 0 ;
AdaptiveCards::TextInput *arg1 = (AdaptiveCards::TextInput *) 0 ;
std::shared_ptr< AdaptiveCards::TextInput const > *smartarg1 = 0 ;
std::string result;

(void)jenv;
(void)jcls;
(void)jarg1_;

smartarg1 = *(std::shared_ptr< const AdaptiveCards::TextInput > **)&jarg1;
arg1 = (AdaptiveCards::TextInput *)(smartarg1 ? smartarg1->get() : 0);
result = ((AdaptiveCards::TextInput const *)arg1)->GetRegex();
jresult = jenv->NewStringUTF((&result)->c_str());
return jresult;
}


SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TextInput_1SetRegex(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
AdaptiveCards::TextInput *arg1 = (AdaptiveCards::TextInput *) 0 ;
std::string *arg2 = 0 ;
std::shared_ptr< AdaptiveCards::TextInput > *smartarg1 = 0 ;

(void)jenv;
(void)jcls;
(void)jarg1_;

smartarg1 = *(std::shared_ptr< AdaptiveCards::TextInput > **)&jarg1;
arg1 = (AdaptiveCards::TextInput *)(smartarg1 ? smartarg1->get() : 0);
if(!jarg2) {
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null string");
return ;
}
const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0);
if (!arg2_pstr) return ;
std::string arg2_str(arg2_pstr);
arg2 = &arg2_str;
jenv->ReleaseStringUTFChars(jarg2, arg2_pstr);
(arg1)->SetRegex((std::string const &)*arg2);
}


SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_TextInput_1dynamic_1cast(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jlong jresult = 0 ;
AdaptiveCards::BaseCardElement *arg1 = (AdaptiveCards::BaseCardElement *) 0 ;
Expand Down Expand Up @@ -17607,6 +17738,40 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
}


SWIGEXPORT jboolean JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_SubmitAction_1GetIgnoreInputValidation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jboolean jresult = 0 ;
AdaptiveCards::SubmitAction *arg1 = (AdaptiveCards::SubmitAction *) 0 ;
std::shared_ptr< AdaptiveCards::SubmitAction const > *smartarg1 = 0 ;
bool result;

(void)jenv;
(void)jcls;
(void)jarg1_;

smartarg1 = *(std::shared_ptr< const AdaptiveCards::SubmitAction > **)&jarg1;
arg1 = (AdaptiveCards::SubmitAction *)(smartarg1 ? smartarg1->get() : 0);
result = (bool)((AdaptiveCards::SubmitAction const *)arg1)->GetIgnoreInputValidation();
jresult = (jboolean)result;
return jresult;
}


SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_SubmitAction_1SetIgnoreInputValidation(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
AdaptiveCards::SubmitAction *arg1 = (AdaptiveCards::SubmitAction *) 0 ;
bool arg2 ;
std::shared_ptr< AdaptiveCards::SubmitAction > *smartarg1 = 0 ;

(void)jenv;
(void)jcls;
(void)jarg1_;

smartarg1 = *(std::shared_ptr< AdaptiveCards::SubmitAction > **)&jarg1;
arg1 = (AdaptiveCards::SubmitAction *)(smartarg1 ? smartarg1->get() : 0);
arg2 = jarg2 ? true : false;
(arg1)->SetIgnoreInputValidation(arg2);
}


SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_SubmitAction_1SerializeToJsonValue(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jlong jresult = 0 ;
AdaptiveCards::SubmitAction *arg1 = (AdaptiveCards::SubmitAction *) 0 ;
Expand Down Expand Up @@ -18965,6 +19130,40 @@ SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectMode
}


SWIGEXPORT jint JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_AdaptiveCard_1GetInputNecessityIndicators(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jint jresult = 0 ;
AdaptiveCards::AdaptiveCard *arg1 = (AdaptiveCards::AdaptiveCard *) 0 ;
std::shared_ptr< AdaptiveCards::AdaptiveCard const > *smartarg1 = 0 ;
AdaptiveCards::InputNecessityIndicators result;

(void)jenv;
(void)jcls;
(void)jarg1_;

smartarg1 = *(std::shared_ptr< const AdaptiveCards::AdaptiveCard > **)&jarg1;
arg1 = (AdaptiveCards::AdaptiveCard *)(smartarg1 ? smartarg1->get() : 0);
result = (AdaptiveCards::InputNecessityIndicators)((AdaptiveCards::AdaptiveCard const *)arg1)->GetInputNecessityIndicators();
jresult = (jint)result;
return jresult;
}


SWIGEXPORT void JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_AdaptiveCard_1SetInputNecessityIndicators(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jint jarg2) {
AdaptiveCards::AdaptiveCard *arg1 = (AdaptiveCards::AdaptiveCard *) 0 ;
AdaptiveCards::InputNecessityIndicators arg2 ;
std::shared_ptr< AdaptiveCards::AdaptiveCard > *smartarg1 = 0 ;

(void)jenv;
(void)jcls;
(void)jarg1_;

smartarg1 = *(std::shared_ptr< AdaptiveCards::AdaptiveCard > **)&jarg1;
arg1 = (AdaptiveCards::AdaptiveCard *)(smartarg1 ? smartarg1->get() : 0);
arg2 = (AdaptiveCards::InputNecessityIndicators)jarg2;
(arg1)->SetInputNecessityIndicators(arg2);
}


SWIGEXPORT jlong JNICALL Java_io_adaptivecards_objectmodel_AdaptiveCardObjectModelJNI_AdaptiveCard_1GetSelectAction(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jlong jresult = 0 ;
AdaptiveCards::AdaptiveCard *arg1 = (AdaptiveCards::AdaptiveCard *) 0 ;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,14 @@ public void SetMinHeight(long value) {
AdaptiveCardObjectModelJNI.AdaptiveCard_SetMinHeight(swigCPtr, this, value);
}

public InputNecessityIndicators GetInputNecessityIndicators() {
return InputNecessityIndicators.swigToEnum(AdaptiveCardObjectModelJNI.AdaptiveCard_GetInputNecessityIndicators(swigCPtr, this));
}

public void SetInputNecessityIndicators(InputNecessityIndicators value) {
AdaptiveCardObjectModelJNI.AdaptiveCard_SetInputNecessityIndicators(swigCPtr, this, value.swigValue());
}

public BaseActionElement GetSelectAction() {
long cPtr = AdaptiveCardObjectModelJNI.AdaptiveCard_GetSelectAction(swigCPtr, this);
return (cPtr == 0) ? null : new BaseActionElement(cPtr, true);
Expand Down
Loading

0 comments on commit 0ee155f

Please sign in to comment.