1fb299fa2Sopenharmony_ci/*
2fb299fa2Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
3fb299fa2Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4fb299fa2Sopenharmony_ci * you may not use this file except in compliance with the License.
5fb299fa2Sopenharmony_ci * You may obtain a copy of the License at
6fb299fa2Sopenharmony_ci *
7fb299fa2Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
8fb299fa2Sopenharmony_ci *
9fb299fa2Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10fb299fa2Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11fb299fa2Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12fb299fa2Sopenharmony_ci * See the License for the specific language governing permissions and
13fb299fa2Sopenharmony_ci * limitations under the License.
14fb299fa2Sopenharmony_ci */
15fb299fa2Sopenharmony_ci#include "script_param.h"
16fb299fa2Sopenharmony_ci#include "script_expression.h"
17fb299fa2Sopenharmony_ci#include "script_utils.h"
18fb299fa2Sopenharmony_ci
19fb299fa2Sopenharmony_ciusing namespace std;
20fb299fa2Sopenharmony_ci
21fb299fa2Sopenharmony_cinamespace Uscript {
22fb299fa2Sopenharmony_ciScriptParams::~ScriptParams()
23fb299fa2Sopenharmony_ci{
24fb299fa2Sopenharmony_ci    for (auto iter = expressionList_.begin(); iter != expressionList_.end();) {
25fb299fa2Sopenharmony_ci        delete *iter;
26fb299fa2Sopenharmony_ci        iter = expressionList_.erase(iter);
27fb299fa2Sopenharmony_ci    }
28fb299fa2Sopenharmony_ci    this->expressionList_.clear();
29fb299fa2Sopenharmony_ci}
30fb299fa2Sopenharmony_ci
31fb299fa2Sopenharmony_ciScriptParams* ScriptParams::CreateParams(UScriptExpression *expression)
32fb299fa2Sopenharmony_ci{
33fb299fa2Sopenharmony_ci    auto params = new(std::nothrow) ScriptParams();
34fb299fa2Sopenharmony_ci    if (params == nullptr) {
35fb299fa2Sopenharmony_ci        USCRIPT_LOGE("Create params failed");
36fb299fa2Sopenharmony_ci        return nullptr;
37fb299fa2Sopenharmony_ci    }
38fb299fa2Sopenharmony_ci    params->AddParams(expression);
39fb299fa2Sopenharmony_ci    return params;
40fb299fa2Sopenharmony_ci}
41fb299fa2Sopenharmony_ci
42fb299fa2Sopenharmony_ciScriptParams* ScriptParams::AddParams(ScriptParams *params, UScriptExpression *expression)
43fb299fa2Sopenharmony_ci{
44fb299fa2Sopenharmony_ci    if (params == nullptr) {
45fb299fa2Sopenharmony_ci        params = new(std::nothrow) ScriptParams();
46fb299fa2Sopenharmony_ci        if (params == nullptr) {
47fb299fa2Sopenharmony_ci            USCRIPT_LOGE("Create params failed");
48fb299fa2Sopenharmony_ci            return nullptr;
49fb299fa2Sopenharmony_ci        }
50fb299fa2Sopenharmony_ci    }
51fb299fa2Sopenharmony_ci    params->AddParams(expression);
52fb299fa2Sopenharmony_ci    return params;
53fb299fa2Sopenharmony_ci}
54fb299fa2Sopenharmony_ci
55fb299fa2Sopenharmony_civoid ScriptParams::AddParams(UScriptExpression *expression)
56fb299fa2Sopenharmony_ci{
57fb299fa2Sopenharmony_ci    expressionList_.push_back(expression);
58fb299fa2Sopenharmony_ci}
59fb299fa2Sopenharmony_ci} // namespace Uscript
60