1 package com
.google
.appengine
.api
.capabilities
;
3 import com
.google
.appengine
.api
.capabilities
.CapabilityServicePb
.IsEnabledRequest
;
4 import com
.google
.appengine
.api
.capabilities
.CapabilityServicePb
.IsEnabledResponse
;
5 import com
.google
.appengine
.api
.capabilities
.CapabilityServicePb
.IsEnabledResponse
.SummaryStatus
;
6 import com
.google
.apphosting
.api
.ApiProxy
;
7 import com
.google
.protobuf
.InvalidProtocolBufferException
;
10 * Implementation for {@link CapabilitiesService}.
14 class CapabilitiesServiceImpl
implements CapabilitiesService
{
16 private final static String PACKAGE_NAME
= "capability_service";
17 private final static String METHOD_NAME
= "IsEnabled";
20 public CapabilityState
getStatus(Capability capability
) {
22 IsEnabledRequest
.Builder builder
= CapabilityServicePb
.IsEnabledRequest
.newBuilder();
23 builder
.setPackage(capability
.getPackageName());
24 builder
.addCapability(capability
.getName());
25 IsEnabledRequest request
= builder
.build();
28 byte[] responseBytes
=
29 ApiProxy
.makeSyncCall(PACKAGE_NAME
, METHOD_NAME
, request
.toByteArray());
30 IsEnabledResponse response
= CapabilityServicePb
.IsEnabledResponse
.parseFrom(responseBytes
);
31 SummaryStatus status
= response
.getSummaryStatus();
32 CapabilityStatus statusValue
;
33 long timeUntilScheduled
= -1;
36 statusValue
= CapabilityStatus
.ENABLED
;
39 timeUntilScheduled
= 0;
40 statusValue
= CapabilityStatus
.SCHEDULED_MAINTENANCE
;
42 case SCHEDULED_FUTURE
:
43 timeUntilScheduled
= response
.getTimeUntilScheduled();
44 statusValue
= CapabilityStatus
.SCHEDULED_MAINTENANCE
;
47 statusValue
= CapabilityStatus
.DISABLED
;
50 statusValue
= CapabilityStatus
.UNKNOWN
;
54 return new CapabilityState(capability
, statusValue
, timeUntilScheduled
);
56 } catch (InvalidProtocolBufferException ex
) {
57 throw new ApiProxy
.ArgumentException(PACKAGE_NAME
, METHOD_NAME
);