/*
 * Copyright (c) 2014 Red Hat, Inc. and others
 *
 * Red Hat 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 io.vertx.config;

import io.vertx.codegen.annotations.DataObject;
import io.vertx.core.json.JsonObject;

import java.util.Objects;

A structure representing a configuration change.
Author:Clement Escoffier
/** * A structure representing a configuration change. * * @author <a href="http://escoffier.me">Clement Escoffier</a> */
@DataObject public class ConfigChange { private JsonObject previousConfiguration; private JsonObject newConfiguration;
Creates a new ConfigChange instance.
Params:
  • prevConf – the previous configuration, may be null. In this case, an empty JSON object is used.
  • newConf – the new configuration, may be null. In this case, an empty JSON object is used.
/** * Creates a new {@link ConfigChange} instance. * * @param prevConf the previous configuration, may be {@code null}. In this case, an empty JSON object is used. * @param newConf the new configuration, may be {@code null}. In this case, an empty JSON object is used. */
public ConfigChange(JsonObject prevConf, JsonObject newConf) { setPreviousConfiguration(prevConf); setNewConfiguration(newConf); }
Returns:the previous configuration, never null, but potentially empty
/** * @return the previous configuration, never {@code null}, but potentially empty */
public JsonObject getPreviousConfiguration() { return previousConfiguration; }
Sets the previous configuration.
Params:
  • conf – the configuration, may be null. In this case an empty JSON object is used.
Returns:the current instance of ConfigChange
/** * Sets the previous configuration. * * @param conf the configuration, may be {@code null}. In this case an empty JSON object is used. * @return the current instance of {@link ConfigChange} */
public ConfigChange setPreviousConfiguration(JsonObject conf) { if (conf == null) { this.previousConfiguration = new JsonObject(); } else { this.previousConfiguration = conf; } return this; }
Returns:the new configuration, never null, but potentially empty.
/** * @return the new configuration, never {@code null}, but potentially empty. */
public JsonObject getNewConfiguration() { return newConfiguration; }
Sets the new configuration.
Params:
  • conf – the new configuration, may be null. In this case, an empty JSON object is used.
Returns:the current instance of ConfigChange
/** * Sets the new configuration. * * @param conf the new configuration, may be {@code null}. In this case, an empty JSON object is used. * @return the current instance of {@link ConfigChange} */
public ConfigChange setNewConfiguration(JsonObject conf) { if (conf == null) { this.newConfiguration = new JsonObject(); } else { this.newConfiguration = conf; } return this; }
Creates a new instance from ConfigChange using empty JSON Object for both the old and new configuration.
/** * Creates a new instance from {@link ConfigChange} using empty JSON Object for both the old and new configuration. */
public ConfigChange() { newConfiguration = new JsonObject(); previousConfiguration = new JsonObject(); }
Creates a new instance of ConfigChange copying the values stored in the given object.
Params:
  • other – the instance to copy
/** * Creates a new instance of {@link ConfigChange} copying the values stored in the given object. * * @param other the instance to copy */
public ConfigChange(ConfigChange other) { this.previousConfiguration = other.previousConfiguration.copy(); this.newConfiguration = other.newConfiguration.copy(); }
Creates a new ConfigChange instance from the given JSON object.
Params:
  • json – the json object, must not be null
/** * Creates a new {@link ConfigChange} instance from the given JSON object. * * @param json the json object, must not be {@code null} */
public ConfigChange(JsonObject json) { Objects.requireNonNull(json); this.setNewConfiguration(json.getJsonObject("newConfiguration", new JsonObject())); this.setPreviousConfiguration(json.getJsonObject("previousConfiguration", new JsonObject())); }
Returns:the JSON representation of the current ConfigChange instance.
/** * @return the JSON representation of the current {@link ConfigChange} instance. */
public JsonObject toJson() { JsonObject json = new JsonObject(); json.put("newConfiguration", newConfiguration); json.put("previousConfiguration", previousConfiguration); return json; } }