com.github.os72.protobuf.dynamic.EnumDefinition Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of protobuf-dynamic Show documentation
Show all versions of protobuf-dynamic Show documentation
Protocol Buffers Dynamic Schema
/*
* Copyright 2015 protobuf-dynamic developers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License 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 com.github.os72.protobuf.dynamic;
import com.google.protobuf.DescriptorProtos.EnumDescriptorProto;
import com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto;
/**
* EnumDefinition
*/
public class EnumDefinition {
// --- public static ---
public static Builder newBuilder(String enumName) {
return new Builder(enumName);
}
// --- public ---
public String toString() {
return mEnumType.toString();
}
// --- package ---
EnumDescriptorProto getEnumType() {
return mEnumType;
}
// --- private ---
private EnumDefinition(EnumDescriptorProto enumType) {
mEnumType = enumType;
}
private EnumDescriptorProto mEnumType;
/**
* EnumDefinition.Builder
*/
public static class Builder {
// --- public ---
public Builder addValue(String name, int num) {
EnumValueDescriptorProto.Builder enumValBuilder = EnumValueDescriptorProto.newBuilder();
enumValBuilder.setName(name).setNumber(num);
mEnumTypeBuilder.addValue(enumValBuilder.build());
return this;
}
public EnumDefinition build() {
return new EnumDefinition(mEnumTypeBuilder.build());
}
// --- private ---
private Builder(String enumName) {
mEnumTypeBuilder = EnumDescriptorProto.newBuilder();
mEnumTypeBuilder.setName(enumName);
}
private EnumDescriptorProto.Builder mEnumTypeBuilder;
}
}