| /** |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you 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 org.apache.tajo.util; |
| |
| import com.google.common.collect.Lists; |
| import org.apache.tajo.common.ProtoObject; |
| |
| import java.util.Collection; |
| import java.util.List; |
| import java.util.Map; |
| |
| import static org.apache.tajo.rpc.protocolrecords.PrimitiveProtos.*; |
| |
| public class ProtoUtil { |
| public static final BoolProto TRUE = BoolProto.newBuilder().setValue(true).build(); |
| public static final BoolProto FALSE = BoolProto.newBuilder().setValue(false).build(); |
| |
| public static final NullProto NULL_PROTO = NullProto.newBuilder().build(); |
| |
| public static StringProto convertString(String value) { |
| return StringProto.newBuilder().setValue(value).build(); |
| } |
| |
| public static StringListProto convertStrings(Collection<String> strings) { |
| return StringListProto.newBuilder().addAllValues(strings).build(); |
| } |
| |
| public static Collection<String> convertStrings(StringListProto strings) { |
| return strings.getValuesList(); |
| } |
| |
| public static Map<String, String> convertToMap(KeyValueSetProto proto) { |
| Map<String, String> keyVals = TUtil.newHashMap(); |
| for(KeyValueProto keyval : proto.getKeyvalList()) { |
| keyVals.put(keyval.getKey(), keyval.getValue()); |
| } |
| return keyVals; |
| } |
| |
| public static KeyValueSetProto convertFromMap(Map<String, String> map) { |
| return new KeyValueSet(map).getProto(); |
| } |
| |
| /** |
| * It converts an array of ProtoObjects into Iteratable one. |
| * |
| * @param protoObjects |
| * @param <T> |
| * @return |
| */ |
| public static <T> Iterable<T> toProtoObjects(ProtoObject[] protoObjects) { |
| List<T> converted = Lists.newArrayList(); |
| for (int i = 0; i < protoObjects.length; i++) { |
| converted.add((T) protoObjects[i].getProto()); |
| } |
| return converted; |
| } |
| } |