// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.sdk.internal.wip.protocol.input;
import java.util.List;
import org.chromium.sdk.internal.protocolparser.JsonField;
import org.chromium.sdk.internal.protocolparser.JsonObjectBased;
import org.chromium.sdk.internal.protocolparser.JsonOptionalField;
import org.chromium.sdk.internal.protocolparser.JsonOverrideField;
import org.chromium.sdk.internal.protocolparser.JsonSubtype;
import org.chromium.sdk.internal.protocolparser.JsonSubtypeCasting;
import org.chromium.sdk.internal.protocolparser.JsonSubtypeCondition;
import org.chromium.sdk.internal.protocolparser.JsonType;
import org.chromium.sdk.internal.wip.protocol.BasicConstants;
@JsonType
public interface WipCommandResponse extends JsonObjectBased {
@JsonField(jsonLiteralName = BasicConstants.Property.ID)
Long id();
@JsonSubtypeCasting Success asSuccess();
@JsonSubtypeCasting Error asError();
@JsonType
interface Success extends JsonSubtype<WipCommandResponse> {
@JsonSubtypeCondition(fieldIsAbsent=true)
@JsonOptionalField
Void error();
@JsonField(jsonLiteralName="result")
@JsonSubtypeCondition
Data data();
}
@JsonType
interface Error extends JsonSubtype<WipCommandResponse> {
@JsonOverrideField
@JsonSubtypeCondition()
ErrorInfo error();
@JsonSubtypeCondition(fieldIsAbsent=true)
@JsonField(jsonLiteralName="result")
@JsonOptionalField
Data data();
@JsonType
interface ErrorInfo {
String message();
@JsonOptionalField
List<String> data();
long code();
}
}
@JsonType(subtypesChosenManually=true, allowsOtherProperties=true)
interface Data extends JsonObjectBased {
}
}