/* * 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 gobblin.compression; import java.util.Map; import com.google.common.collect.ImmutableMap; import gobblin.configuration.ConfigurationKeys; import gobblin.configuration.State; import gobblin.util.ForkOperatorUtils; /** * Functions for parsing compression configuration */ public class CompressionConfigParser { private static final String COMPRESSION_TYPE_KEY = "type"; /** * Retrieve configuration settings for a given branch. * @param taskState Task state * @param numBranches # of branches in the state * @param branch Branch to retrieve * @return Map of properties for compression */ public static Map<String, Object> getConfigForBranch(State taskState, int numBranches, int branch) { String typePropertyName = ForkOperatorUtils.getPropertyNameForBranch(ConfigurationKeys.WRITER_CODEC_TYPE, numBranches, branch); String compressionType = taskState.getProp(typePropertyName); if (compressionType == null) { return null; } return ImmutableMap.<String, Object>of(COMPRESSION_TYPE_KEY, compressionType); } /** * Return compression type * @param properties Compression config settings * @return String representing compression type, null if none exists */ public static String getCompressionType(Map<String, Object> properties) { return (String) properties.get(COMPRESSION_TYPE_KEY); } private CompressionConfigParser() { } }