/** * Copyright (C) 2014-2016 LinkedIn Corp. (pinot-core@linkedin.com) * * 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.linkedin.pinot.common.config; import java.lang.reflect.Field; import java.util.Map; import org.codehaus.jackson.annotate.JsonIgnoreProperties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @JsonIgnoreProperties(ignoreUnknown = true) public class TableCustomConfig { private static final Logger LOGGER = LoggerFactory.getLogger(SegmentsValidationAndRetentionConfig.class); public static final String MESSAGE_BASED_REFRESH_KEY = "messageBasedRefresh"; private Map<String, String> _customConfigs; public Map<String, String> getCustomConfigs() { return _customConfigs; } public void setCustomConfigs(Map<String, String> customConfigs) { _customConfigs = customConfigs; } @Override public String toString() { final StringBuilder result = new StringBuilder(); final String newLine = System.getProperty("line.separator"); result.append(this.getClass().getName()); result.append(" Object {"); result.append(newLine); //determine fields declared in this class only (no fields of superclass) final Field[] fields = this.getClass().getDeclaredFields(); //print field names paired with their values for (final Field field : fields) { result.append(" "); try { result.append(field.getName()); result.append(": "); //requires access to private field: result.append(field.get(this)); } catch (final IllegalAccessException ex) { if (LOGGER.isWarnEnabled()) { LOGGER.warn("Caught exception while processing field " + field, ex); } } result.append(newLine); } result.append("}"); return result.toString(); } }