// Path: src/main/java/de/galan/verjson/util/MetaWrapper.java
// public class MetaWrapper {
// 
// 	public static final String ID_VERSION = "$v";
// 	public static final String ID_NAMESPACE = "$ns";
// 	public static final String ID_DATA = "$d";
// 	public static final String ID_TIMESTAMP = "$ts";
// 
// 	/** Incremental version */
// 	@JsonProperty(ID_VERSION)
// 	private long version;
// 
// 	/** Namespace for the data object */
// 	@JsonProperty(ID_NAMESPACE)
// 	private String namespace;
// 
// 	/** Timestamp when the object was serialized */
// 	@JsonProperty(ID_TIMESTAMP)
// 	private Date timestamp;
// 
// 	/** Actual payload */
// 	@JsonProperty(ID_DATA)
// 	private Object data;
// 
// 
// 	public MetaWrapper(long version, String namespace, Object data, Date timestamp) {
// 		this.version = version;
// 		this.namespace = namespace;
// 		this.data = data;
// 		this.timestamp = timestamp;
// 	}
// 
// 
// 	/** Returns the data node from a wrapped JsonNode */
// 	public static JsonNode getData(JsonNode node) {
// 		return getObj(obj(node), MetaWrapper.ID_DATA);
// 	}
// 
// 
// 	/** Returns the namespace from a wrapped JsonNode */
// 	public static String getNamespace(JsonNode node) {
// 		JsonNode nodeNs = obj(node).get(ID_NAMESPACE);
// 		return (nodeNs != null) ? nodeNs.asText() : null;
// 	}
// 
// 
// 	/** Returns the source version from a wrapped JsonNode */
// 	public static Long getVersion(JsonNode node) {
// 		return obj(node).get(ID_VERSION).asLong();
// 	}
// 
// 
// 	/** Sets the version on a wrapped JsonNode */
// 	public static void setVersion(JsonNode node, Long version) {
// 		obj(node).put(ID_VERSION, version);
// 	}
// 
// 
// 	/** Returns the timestamp from a wrapped JsonNode */
// 	public static Date getTimestamp(JsonNode node) {
// 		String text = obj(node).get(ID_TIMESTAMP).asText();
// 		return isNotBlank(text) ? from(instantUtc(text)).toDate() : null;
// 	}
// 
// }


import com.fasterxml.jackson.databind.JsonNode;
import de.galan.verjson.util.MetaWrapper;
package de.galan.verjson.step;




/**
 * Increments the version field by one.
 * 
 * @author daniel
 */
public class IncrementVersionStep implements Step {

	@Override
	public void process(JsonNode node) {
// Path: src/main/java/de/galan/verjson/util/MetaWrapper.java
// public class MetaWrapper {
// 
// 	public static final String ID_VERSION = "$v";
// 	public static final String ID_NAMESPACE = "$ns";
// 	public static final String ID_DATA = "$d";
// 	public static final String ID_TIMESTAMP = "$ts";
// 
// 	/** Incremental version */
// 	@JsonProperty(ID_VERSION)
// 	private long version;
// 
// 	/** Namespace for the data object */
// 	@JsonProperty(ID_NAMESPACE)
// 	private String namespace;
// 
// 	/** Timestamp when the object was serialized */
// 	@JsonProperty(ID_TIMESTAMP)
// 	private Date timestamp;
// 
// 	/** Actual payload */
// 	@JsonProperty(ID_DATA)
// 	private Object data;
// 
// 
// 	public MetaWrapper(long version, String namespace, Object data, Date timestamp) {
// 		this.version = version;
// 		this.namespace = namespace;
// 		this.data = data;
// 		this.timestamp = timestamp;
// 	}
// 
// 
// 	/** Returns the data node from a wrapped JsonNode */
// 	public static JsonNode getData(JsonNode node) {
// 		return getObj(obj(node), MetaWrapper.ID_DATA);
// 	}
// 
// 
// 	/** Returns the namespace from a wrapped JsonNode */
// 	public static String getNamespace(JsonNode node) {
// 		JsonNode nodeNs = obj(node).get(ID_NAMESPACE);
// 		return (nodeNs != null) ? nodeNs.asText() : null;
// 	}
// 
// 
// 	/** Returns the source version from a wrapped JsonNode */
// 	public static Long getVersion(JsonNode node) {
// 		return obj(node).get(ID_VERSION).asLong();
// 	}
// 
// 
// 	/** Sets the version on a wrapped JsonNode */
// 	public static void setVersion(JsonNode node, Long version) {
// 		obj(node).put(ID_VERSION, version);
// 	}
// 
// 
// 	/** Returns the timestamp from a wrapped JsonNode */
// 	public static Date getTimestamp(JsonNode node) {
// 		String text = obj(node).get(ID_TIMESTAMP).asText();
// 		return isNotBlank(text) ? from(instantUtc(text)).toDate() : null;
// 	}
// 
// }


// Path: src/main/java/de/galan/verjson/step/IncrementVersionStep.java
import com.fasterxml.jackson.databind.JsonNode;
import de.galan.verjson.util.MetaWrapper;

package de.galan.verjson.step;




/**
 * Increments the version field by one.
 * 
 * @author daniel
 */
public class IncrementVersionStep implements Step {

	@Override
	public void process(JsonNode node) {
		Long version = MetaWrapper.getVersion(node);