
io.gs2.limit.Gs2LimitRestClient Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gs2-java-sdk-limit Show documentation
Show all versions of gs2-java-sdk-limit Show documentation
Game Server Services GS2-Limit SDK for Java
The newest version!
/*
* Copyright 2016 Game Server Services, Inc. or its affiliates. All Rights
* Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package io.gs2.limit;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.json.JSONObject;
import org.json.JSONArray;
import io.gs2.model.AsyncAction;
import io.gs2.model.AsyncResult;
import io.gs2.exception.*;
import io.gs2.net.*;
import io.gs2.util.EncodingUtil;
import io.gs2.AbstractGs2Client;
import io.gs2.limit.request.*;
import io.gs2.limit.result.*;
import io.gs2.limit.model.*;
/**
* GS2 Limit API クライアント
*
* @author Game Server Services, Inc.
*
*/
public class Gs2LimitRestClient extends AbstractGs2Client {
/**
* コンストラクタ。
*
* @param gs2RestSession セッション
*/
public Gs2LimitRestClient(Gs2RestSession gs2RestSession) {
super(gs2RestSession);
}
class DescribeNamespacesTask extends Gs2RestSessionTask {
private DescribeNamespacesRequest request;
public DescribeNamespacesTask(
DescribeNamespacesRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/";
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
if (this.request.getPageToken() != null) {
queryStrings.add("pageToken=" + EncodingUtil.urlEncode((String.valueOf(this.request.getPageToken()))));
}
if (this.request.getLimit() != null) {
queryStrings.add("limit=" + String.valueOf(this.request.getLimit()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.GET)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* ネームスペースの一覧を取得
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void describeNamespacesAsync(
DescribeNamespacesRequest request,
AsyncAction> callback
) {
DescribeNamespacesTask task = new DescribeNamespacesTask(request, callback, DescribeNamespacesResult.class);
session.execute(task);
}
/**
* ネームスペースの一覧を取得
*
* @param request リクエストパラメータ
*/
public DescribeNamespacesResult describeNamespaces(
DescribeNamespacesRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
describeNamespacesAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class CreateNamespaceTask extends Gs2RestSessionTask {
private CreateNamespaceRequest request;
public CreateNamespaceTask(
CreateNamespaceRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/";
ObjectMapper mapper = new ObjectMapper();
JSONObject json = new JSONObject();
if (this.request.getName() != null) {
json.put("name", this.request.getName());
}
if (this.request.getDescription() != null) {
json.put("description", this.request.getDescription());
}
if (this.request.getContextStack() != null) {
json.put("contextStack", this.request.getContextStack());
}
builder.setBody(json.toString().getBytes());
builder
.setMethod(HttpTask.Method.POST)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* ネームスペースを新規作成
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void createNamespaceAsync(
CreateNamespaceRequest request,
AsyncAction> callback
) {
CreateNamespaceTask task = new CreateNamespaceTask(request, callback, CreateNamespaceResult.class);
session.execute(task);
}
/**
* ネームスペースを新規作成
*
* @param request リクエストパラメータ
*/
public CreateNamespaceResult createNamespace(
CreateNamespaceRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
createNamespaceAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class GetNamespaceStatusTask extends Gs2RestSessionTask {
private GetNamespaceStatusRequest request;
public GetNamespaceStatusTask(
GetNamespaceStatusRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/status";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.GET)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* ネームスペースの状態を取得
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void getNamespaceStatusAsync(
GetNamespaceStatusRequest request,
AsyncAction> callback
) {
GetNamespaceStatusTask task = new GetNamespaceStatusTask(request, callback, GetNamespaceStatusResult.class);
session.execute(task);
}
/**
* ネームスペースの状態を取得
*
* @param request リクエストパラメータ
*/
public GetNamespaceStatusResult getNamespaceStatus(
GetNamespaceStatusRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
getNamespaceStatusAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class GetNamespaceTask extends Gs2RestSessionTask {
private GetNamespaceRequest request;
public GetNamespaceTask(
GetNamespaceRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.GET)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* ネームスペースを取得
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void getNamespaceAsync(
GetNamespaceRequest request,
AsyncAction> callback
) {
GetNamespaceTask task = new GetNamespaceTask(request, callback, GetNamespaceResult.class);
session.execute(task);
}
/**
* ネームスペースを取得
*
* @param request リクエストパラメータ
*/
public GetNamespaceResult getNamespace(
GetNamespaceRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
getNamespaceAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class UpdateNamespaceTask extends Gs2RestSessionTask {
private UpdateNamespaceRequest request;
public UpdateNamespaceTask(
UpdateNamespaceRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
ObjectMapper mapper = new ObjectMapper();
JSONObject json = new JSONObject();
if (this.request.getDescription() != null) {
json.put("description", this.request.getDescription());
}
if (this.request.getContextStack() != null) {
json.put("contextStack", this.request.getContextStack());
}
builder.setBody(json.toString().getBytes());
builder
.setMethod(HttpTask.Method.PUT)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* ネームスペースを更新
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void updateNamespaceAsync(
UpdateNamespaceRequest request,
AsyncAction> callback
) {
UpdateNamespaceTask task = new UpdateNamespaceTask(request, callback, UpdateNamespaceResult.class);
session.execute(task);
}
/**
* ネームスペースを更新
*
* @param request リクエストパラメータ
*/
public UpdateNamespaceResult updateNamespace(
UpdateNamespaceRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
updateNamespaceAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class DeleteNamespaceTask extends Gs2RestSessionTask {
private DeleteNamespaceRequest request;
public DeleteNamespaceTask(
DeleteNamespaceRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.DELETE)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* ネームスペースを削除
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void deleteNamespaceAsync(
DeleteNamespaceRequest request,
AsyncAction> callback
) {
DeleteNamespaceTask task = new DeleteNamespaceTask(request, callback, DeleteNamespaceResult.class);
session.execute(task);
}
/**
* ネームスペースを削除
*
* @param request リクエストパラメータ
*/
public DeleteNamespaceResult deleteNamespace(
DeleteNamespaceRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
deleteNamespaceAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class DescribeCountersTask extends Gs2RestSessionTask {
private DescribeCountersRequest request;
public DescribeCountersTask(
DescribeCountersRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/user/me/counter";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
if (this.request.getLimitName() != null) {
queryStrings.add("limitName=" + EncodingUtil.urlEncode((String.valueOf(this.request.getLimitName()))));
}
if (this.request.getPageToken() != null) {
queryStrings.add("pageToken=" + EncodingUtil.urlEncode((String.valueOf(this.request.getPageToken()))));
}
if (this.request.getLimit() != null) {
queryStrings.add("limit=" + String.valueOf(this.request.getLimit()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.GET)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
if (this.request.getAccessToken() != null) {
builder.setHeader("X-GS2-ACCESS-TOKEN", this.request.getAccessToken());
}
if (this.request.getDuplicationAvoider() != null) {
builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider());
}
builder
.build()
.send();
}
}
/**
* カウンターの一覧を取得
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void describeCountersAsync(
DescribeCountersRequest request,
AsyncAction> callback
) {
DescribeCountersTask task = new DescribeCountersTask(request, callback, DescribeCountersResult.class);
session.execute(task);
}
/**
* カウンターの一覧を取得
*
* @param request リクエストパラメータ
*/
public DescribeCountersResult describeCounters(
DescribeCountersRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
describeCountersAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class DescribeCountersByUserIdTask extends Gs2RestSessionTask {
private DescribeCountersByUserIdRequest request;
public DescribeCountersByUserIdTask(
DescribeCountersByUserIdRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/user/{userId}/counter";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{userId}", this.request.getUserId() == null|| this.request.getUserId().length() == 0 ? "null" : String.valueOf(this.request.getUserId()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
if (this.request.getLimitName() != null) {
queryStrings.add("limitName=" + EncodingUtil.urlEncode((String.valueOf(this.request.getLimitName()))));
}
if (this.request.getPageToken() != null) {
queryStrings.add("pageToken=" + EncodingUtil.urlEncode((String.valueOf(this.request.getPageToken()))));
}
if (this.request.getLimit() != null) {
queryStrings.add("limit=" + String.valueOf(this.request.getLimit()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.GET)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
if (this.request.getDuplicationAvoider() != null) {
builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider());
}
builder
.build()
.send();
}
}
/**
* カウンターの一覧を取得
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void describeCountersByUserIdAsync(
DescribeCountersByUserIdRequest request,
AsyncAction> callback
) {
DescribeCountersByUserIdTask task = new DescribeCountersByUserIdTask(request, callback, DescribeCountersByUserIdResult.class);
session.execute(task);
}
/**
* カウンターの一覧を取得
*
* @param request リクエストパラメータ
*/
public DescribeCountersByUserIdResult describeCountersByUserId(
DescribeCountersByUserIdRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
describeCountersByUserIdAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class GetCounterTask extends Gs2RestSessionTask {
private GetCounterRequest request;
public GetCounterTask(
GetCounterRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/user/me/counter/{limitName}/{counterName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName()));
url = url.replace("{counterName}", this.request.getCounterName() == null|| this.request.getCounterName().length() == 0 ? "null" : String.valueOf(this.request.getCounterName()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.GET)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
if (this.request.getAccessToken() != null) {
builder.setHeader("X-GS2-ACCESS-TOKEN", this.request.getAccessToken());
}
if (this.request.getDuplicationAvoider() != null) {
builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider());
}
builder
.build()
.send();
}
}
/**
* カウンターを取得
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void getCounterAsync(
GetCounterRequest request,
AsyncAction> callback
) {
GetCounterTask task = new GetCounterTask(request, callback, GetCounterResult.class);
session.execute(task);
}
/**
* カウンターを取得
*
* @param request リクエストパラメータ
*/
public GetCounterResult getCounter(
GetCounterRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
getCounterAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class GetCounterByUserIdTask extends Gs2RestSessionTask {
private GetCounterByUserIdRequest request;
public GetCounterByUserIdTask(
GetCounterByUserIdRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/user/{userId}/counter/{limitName}/{counterName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName()));
url = url.replace("{userId}", this.request.getUserId() == null|| this.request.getUserId().length() == 0 ? "null" : String.valueOf(this.request.getUserId()));
url = url.replace("{counterName}", this.request.getCounterName() == null|| this.request.getCounterName().length() == 0 ? "null" : String.valueOf(this.request.getCounterName()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.GET)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
if (this.request.getDuplicationAvoider() != null) {
builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider());
}
builder
.build()
.send();
}
}
/**
* ユーザIDを指定してカウンターを取得
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void getCounterByUserIdAsync(
GetCounterByUserIdRequest request,
AsyncAction> callback
) {
GetCounterByUserIdTask task = new GetCounterByUserIdTask(request, callback, GetCounterByUserIdResult.class);
session.execute(task);
}
/**
* ユーザIDを指定してカウンターを取得
*
* @param request リクエストパラメータ
*/
public GetCounterByUserIdResult getCounterByUserId(
GetCounterByUserIdRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
getCounterByUserIdAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class CountUpByUserIdTask extends Gs2RestSessionTask {
private CountUpByUserIdRequest request;
public CountUpByUserIdTask(
CountUpByUserIdRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/user/{userId}/counter/{limitName}/{counterName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName()));
url = url.replace("{counterName}", this.request.getCounterName() == null|| this.request.getCounterName().length() == 0 ? "null" : String.valueOf(this.request.getCounterName()));
url = url.replace("{userId}", this.request.getUserId() == null|| this.request.getUserId().length() == 0 ? "null" : String.valueOf(this.request.getUserId()));
ObjectMapper mapper = new ObjectMapper();
JSONObject json = new JSONObject();
if (this.request.getCountUpValue() != null) {
json.put("countUpValue", this.request.getCountUpValue());
}
if (this.request.getMaxValue() != null) {
json.put("maxValue", this.request.getMaxValue());
}
if (this.request.getContextStack() != null) {
json.put("contextStack", this.request.getContextStack());
}
builder.setBody(json.toString().getBytes());
builder
.setMethod(HttpTask.Method.POST)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
if (this.request.getDuplicationAvoider() != null) {
builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider());
}
builder
.build()
.send();
}
}
/**
* ユーザIDを指定してカウントアップ
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void countUpByUserIdAsync(
CountUpByUserIdRequest request,
AsyncAction> callback
) {
CountUpByUserIdTask task = new CountUpByUserIdTask(request, callback, CountUpByUserIdResult.class);
session.execute(task);
}
/**
* ユーザIDを指定してカウントアップ
*
* @param request リクエストパラメータ
*/
public CountUpByUserIdResult countUpByUserId(
CountUpByUserIdRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
countUpByUserIdAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class DeleteCounterByUserIdTask extends Gs2RestSessionTask {
private DeleteCounterByUserIdRequest request;
public DeleteCounterByUserIdTask(
DeleteCounterByUserIdRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/user/{userId}/counter/{limitName}/{counterName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName()));
url = url.replace("{userId}", this.request.getUserId() == null|| this.request.getUserId().length() == 0 ? "null" : String.valueOf(this.request.getUserId()));
url = url.replace("{counterName}", this.request.getCounterName() == null|| this.request.getCounterName().length() == 0 ? "null" : String.valueOf(this.request.getCounterName()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.DELETE)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
if (this.request.getDuplicationAvoider() != null) {
builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider());
}
builder
.build()
.send();
}
}
/**
* ユーザIDを指定してカウンターを削除
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void deleteCounterByUserIdAsync(
DeleteCounterByUserIdRequest request,
AsyncAction> callback
) {
DeleteCounterByUserIdTask task = new DeleteCounterByUserIdTask(request, callback, DeleteCounterByUserIdResult.class);
session.execute(task);
}
/**
* ユーザIDを指定してカウンターを削除
*
* @param request リクエストパラメータ
*/
public DeleteCounterByUserIdResult deleteCounterByUserId(
DeleteCounterByUserIdRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
deleteCounterByUserIdAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class CountUpByStampTaskTask extends Gs2RestSessionTask {
private CountUpByStampTaskRequest request;
public CountUpByStampTaskTask(
CountUpByStampTaskRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/stamp/counter/increase";
ObjectMapper mapper = new ObjectMapper();
JSONObject json = new JSONObject();
if (this.request.getStampTask() != null) {
json.put("stampTask", this.request.getStampTask());
}
if (this.request.getKeyId() != null) {
json.put("keyId", this.request.getKeyId());
}
if (this.request.getContextStack() != null) {
json.put("contextStack", this.request.getContextStack());
}
builder.setBody(json.toString().getBytes());
builder
.setMethod(HttpTask.Method.POST)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
if (this.request.getDuplicationAvoider() != null) {
builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider());
}
builder
.build()
.send();
}
}
/**
* スタンプシートでカウントアップ
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void countUpByStampTaskAsync(
CountUpByStampTaskRequest request,
AsyncAction> callback
) {
CountUpByStampTaskTask task = new CountUpByStampTaskTask(request, callback, CountUpByStampTaskResult.class);
session.execute(task);
}
/**
* スタンプシートでカウントアップ
*
* @param request リクエストパラメータ
*/
public CountUpByStampTaskResult countUpByStampTask(
CountUpByStampTaskRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
countUpByStampTaskAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class DeleteByStampSheetTask extends Gs2RestSessionTask {
private DeleteByStampSheetRequest request;
public DeleteByStampSheetTask(
DeleteByStampSheetRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/stamp/counter/delete";
url = url.replace("{stampSheet}", this.request.getStampSheet() == null|| this.request.getStampSheet().length() == 0 ? "null" : String.valueOf(this.request.getStampSheet()));
ObjectMapper mapper = new ObjectMapper();
JSONObject json = new JSONObject();
if (this.request.getKeyId() != null) {
json.put("keyId", this.request.getKeyId());
}
if (this.request.getContextStack() != null) {
json.put("contextStack", this.request.getContextStack());
}
builder.setBody(json.toString().getBytes());
builder
.setMethod(HttpTask.Method.POST)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
if (this.request.getDuplicationAvoider() != null) {
builder.setHeader("X-GS2-DUPLICATION-AVOIDER", this.request.getDuplicationAvoider());
}
builder
.build()
.send();
}
}
/**
* スタンプシートでカウンターを削除
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void deleteByStampSheetAsync(
DeleteByStampSheetRequest request,
AsyncAction> callback
) {
DeleteByStampSheetTask task = new DeleteByStampSheetTask(request, callback, DeleteByStampSheetResult.class);
session.execute(task);
}
/**
* スタンプシートでカウンターを削除
*
* @param request リクエストパラメータ
*/
public DeleteByStampSheetResult deleteByStampSheet(
DeleteByStampSheetRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
deleteByStampSheetAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class DescribeLimitModelMastersTask extends Gs2RestSessionTask {
private DescribeLimitModelMastersRequest request;
public DescribeLimitModelMastersTask(
DescribeLimitModelMastersRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/master/limit";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
if (this.request.getPageToken() != null) {
queryStrings.add("pageToken=" + EncodingUtil.urlEncode((String.valueOf(this.request.getPageToken()))));
}
if (this.request.getLimit() != null) {
queryStrings.add("limit=" + String.valueOf(this.request.getLimit()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.GET)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* 回数制限の種類マスターの一覧を取得
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void describeLimitModelMastersAsync(
DescribeLimitModelMastersRequest request,
AsyncAction> callback
) {
DescribeLimitModelMastersTask task = new DescribeLimitModelMastersTask(request, callback, DescribeLimitModelMastersResult.class);
session.execute(task);
}
/**
* 回数制限の種類マスターの一覧を取得
*
* @param request リクエストパラメータ
*/
public DescribeLimitModelMastersResult describeLimitModelMasters(
DescribeLimitModelMastersRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
describeLimitModelMastersAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class CreateLimitModelMasterTask extends Gs2RestSessionTask {
private CreateLimitModelMasterRequest request;
public CreateLimitModelMasterTask(
CreateLimitModelMasterRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/master/limit";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
ObjectMapper mapper = new ObjectMapper();
JSONObject json = new JSONObject();
if (this.request.getName() != null) {
json.put("name", this.request.getName());
}
if (this.request.getDescription() != null) {
json.put("description", this.request.getDescription());
}
if (this.request.getMetadata() != null) {
json.put("metadata", this.request.getMetadata());
}
if (this.request.getResetType() != null) {
json.put("resetType", this.request.getResetType());
}
if (this.request.getResetDayOfMonth() != null) {
json.put("resetDayOfMonth", this.request.getResetDayOfMonth());
}
if (this.request.getResetDayOfWeek() != null) {
json.put("resetDayOfWeek", this.request.getResetDayOfWeek());
}
if (this.request.getResetHour() != null) {
json.put("resetHour", this.request.getResetHour());
}
if (this.request.getContextStack() != null) {
json.put("contextStack", this.request.getContextStack());
}
builder.setBody(json.toString().getBytes());
builder
.setMethod(HttpTask.Method.POST)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* 回数制限の種類マスターを新規作成
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void createLimitModelMasterAsync(
CreateLimitModelMasterRequest request,
AsyncAction> callback
) {
CreateLimitModelMasterTask task = new CreateLimitModelMasterTask(request, callback, CreateLimitModelMasterResult.class);
session.execute(task);
}
/**
* 回数制限の種類マスターを新規作成
*
* @param request リクエストパラメータ
*/
public CreateLimitModelMasterResult createLimitModelMaster(
CreateLimitModelMasterRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
createLimitModelMasterAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class GetLimitModelMasterTask extends Gs2RestSessionTask {
private GetLimitModelMasterRequest request;
public GetLimitModelMasterTask(
GetLimitModelMasterRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/master/limit/{limitName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.GET)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* 回数制限の種類マスターを取得
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void getLimitModelMasterAsync(
GetLimitModelMasterRequest request,
AsyncAction> callback
) {
GetLimitModelMasterTask task = new GetLimitModelMasterTask(request, callback, GetLimitModelMasterResult.class);
session.execute(task);
}
/**
* 回数制限の種類マスターを取得
*
* @param request リクエストパラメータ
*/
public GetLimitModelMasterResult getLimitModelMaster(
GetLimitModelMasterRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
getLimitModelMasterAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class UpdateLimitModelMasterTask extends Gs2RestSessionTask {
private UpdateLimitModelMasterRequest request;
public UpdateLimitModelMasterTask(
UpdateLimitModelMasterRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/master/limit/{limitName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName()));
ObjectMapper mapper = new ObjectMapper();
JSONObject json = new JSONObject();
if (this.request.getDescription() != null) {
json.put("description", this.request.getDescription());
}
if (this.request.getMetadata() != null) {
json.put("metadata", this.request.getMetadata());
}
if (this.request.getResetType() != null) {
json.put("resetType", this.request.getResetType());
}
if (this.request.getResetDayOfMonth() != null) {
json.put("resetDayOfMonth", this.request.getResetDayOfMonth());
}
if (this.request.getResetDayOfWeek() != null) {
json.put("resetDayOfWeek", this.request.getResetDayOfWeek());
}
if (this.request.getResetHour() != null) {
json.put("resetHour", this.request.getResetHour());
}
if (this.request.getContextStack() != null) {
json.put("contextStack", this.request.getContextStack());
}
builder.setBody(json.toString().getBytes());
builder
.setMethod(HttpTask.Method.PUT)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* 回数制限の種類マスターを更新
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void updateLimitModelMasterAsync(
UpdateLimitModelMasterRequest request,
AsyncAction> callback
) {
UpdateLimitModelMasterTask task = new UpdateLimitModelMasterTask(request, callback, UpdateLimitModelMasterResult.class);
session.execute(task);
}
/**
* 回数制限の種類マスターを更新
*
* @param request リクエストパラメータ
*/
public UpdateLimitModelMasterResult updateLimitModelMaster(
UpdateLimitModelMasterRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
updateLimitModelMasterAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class DeleteLimitModelMasterTask extends Gs2RestSessionTask {
private DeleteLimitModelMasterRequest request;
public DeleteLimitModelMasterTask(
DeleteLimitModelMasterRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/master/limit/{limitName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.DELETE)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* 回数制限の種類マスターを削除
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void deleteLimitModelMasterAsync(
DeleteLimitModelMasterRequest request,
AsyncAction> callback
) {
DeleteLimitModelMasterTask task = new DeleteLimitModelMasterTask(request, callback, DeleteLimitModelMasterResult.class);
session.execute(task);
}
/**
* 回数制限の種類マスターを削除
*
* @param request リクエストパラメータ
*/
public DeleteLimitModelMasterResult deleteLimitModelMaster(
DeleteLimitModelMasterRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
deleteLimitModelMasterAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class ExportMasterTask extends Gs2RestSessionTask {
private ExportMasterRequest request;
public ExportMasterTask(
ExportMasterRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/master/export";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.GET)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* 現在有効な回数制限設定のマスターデータをエクスポートします
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void exportMasterAsync(
ExportMasterRequest request,
AsyncAction> callback
) {
ExportMasterTask task = new ExportMasterTask(request, callback, ExportMasterResult.class);
session.execute(task);
}
/**
* 現在有効な回数制限設定のマスターデータをエクスポートします
*
* @param request リクエストパラメータ
*/
public ExportMasterResult exportMaster(
ExportMasterRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
exportMasterAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class GetCurrentLimitMasterTask extends Gs2RestSessionTask {
private GetCurrentLimitMasterRequest request;
public GetCurrentLimitMasterTask(
GetCurrentLimitMasterRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/master";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.GET)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* 現在有効な現在有効な回数制限設定を取得します
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void getCurrentLimitMasterAsync(
GetCurrentLimitMasterRequest request,
AsyncAction> callback
) {
GetCurrentLimitMasterTask task = new GetCurrentLimitMasterTask(request, callback, GetCurrentLimitMasterResult.class);
session.execute(task);
}
/**
* 現在有効な現在有効な回数制限設定を取得します
*
* @param request リクエストパラメータ
*/
public GetCurrentLimitMasterResult getCurrentLimitMaster(
GetCurrentLimitMasterRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
getCurrentLimitMasterAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class UpdateCurrentLimitMasterTask extends Gs2RestSessionTask {
private UpdateCurrentLimitMasterRequest request;
public UpdateCurrentLimitMasterTask(
UpdateCurrentLimitMasterRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/master";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
ObjectMapper mapper = new ObjectMapper();
JSONObject json = new JSONObject();
if (this.request.getSettings() != null) {
json.put("settings", this.request.getSettings());
}
if (this.request.getContextStack() != null) {
json.put("contextStack", this.request.getContextStack());
}
builder.setBody(json.toString().getBytes());
builder
.setMethod(HttpTask.Method.PUT)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* 現在有効な現在有効な回数制限設定を更新します
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void updateCurrentLimitMasterAsync(
UpdateCurrentLimitMasterRequest request,
AsyncAction> callback
) {
UpdateCurrentLimitMasterTask task = new UpdateCurrentLimitMasterTask(request, callback, UpdateCurrentLimitMasterResult.class);
session.execute(task);
}
/**
* 現在有効な現在有効な回数制限設定を更新します
*
* @param request リクエストパラメータ
*/
public UpdateCurrentLimitMasterResult updateCurrentLimitMaster(
UpdateCurrentLimitMasterRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
updateCurrentLimitMasterAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class DescribeLimitModelsTask extends Gs2RestSessionTask {
private DescribeLimitModelsRequest request;
public DescribeLimitModelsTask(
DescribeLimitModelsRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/limit";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.GET)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* 回数制限の種類の一覧を取得
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void describeLimitModelsAsync(
DescribeLimitModelsRequest request,
AsyncAction> callback
) {
DescribeLimitModelsTask task = new DescribeLimitModelsTask(request, callback, DescribeLimitModelsResult.class);
session.execute(task);
}
/**
* 回数制限の種類の一覧を取得
*
* @param request リクエストパラメータ
*/
public DescribeLimitModelsResult describeLimitModels(
DescribeLimitModelsRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
describeLimitModelsAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
class GetLimitModelTask extends Gs2RestSessionTask {
private GetLimitModelRequest request;
public GetLimitModelTask(
GetLimitModelRequest request,
AsyncAction> userCallback,
Class clazz
) {
super(
(Gs2RestSession) session,
userCallback,
clazz
);
this.request = request;
}
@Override
protected void executeImpl() {
String url = Gs2RestSession.EndpointHost
.replace("{service}", "limit")
.replace("{region}", session.getRegion().getName())
+ "/{namespaceName}/limit/{limitName}";
url = url.replace("{namespaceName}", this.request.getNamespaceName() == null|| this.request.getNamespaceName().length() == 0 ? "null" : String.valueOf(this.request.getNamespaceName()));
url = url.replace("{limitName}", this.request.getLimitName() == null|| this.request.getLimitName().length() == 0 ? "null" : String.valueOf(this.request.getLimitName()));
List queryStrings = new ArrayList<> ();
if (this.request.getContextStack() != null) {
queryStrings.add("contextStack=" + EncodingUtil.urlEncode(this.request.getContextStack()));
}
url += "?" + String.join("&", queryStrings);
builder
.setMethod(HttpTask.Method.GET)
.setUrl(url)
.setHeader("Content-Type", "application/json")
.setHttpResponseHandler(this);
if (this.request.getRequestId() != null) {
builder.setHeader("X-GS2-REQUEST-ID", this.request.getRequestId());
}
builder
.build()
.send();
}
}
/**
* 回数制限の種類を取得
*
* @param callback コールバック
* @param request リクエストパラメータ
*/
public void getLimitModelAsync(
GetLimitModelRequest request,
AsyncAction> callback
) {
GetLimitModelTask task = new GetLimitModelTask(request, callback, GetLimitModelResult.class);
session.execute(task);
}
/**
* 回数制限の種類を取得
*
* @param request リクエストパラメータ
*/
public GetLimitModelResult getLimitModel(
GetLimitModelRequest request
) {
final AsyncResult[] resultAsyncResult = new AsyncResult[]{null};
getLimitModelAsync(
request,
result -> resultAsyncResult[0] = result
);
while (resultAsyncResult[0] == null) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {}
}
if(resultAsyncResult[0].getError() != null) {
throw resultAsyncResult[0].getError();
}
return resultAsyncResult[0].getResult();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy