diff --git a/src/main/java/com/omertron/themoviedbapi/model/AbstractJsonMapping.java b/src/main/java/com/omertron/themoviedbapi/model/AbstractJsonMapping.java index acc51064e..34ca6ab6d 100644 --- a/src/main/java/com/omertron/themoviedbapi/model/AbstractJsonMapping.java +++ b/src/main/java/com/omertron/themoviedbapi/model/AbstractJsonMapping.java @@ -28,12 +28,24 @@ import org.slf4j.LoggerFactory; import java.io.Serializable; /** - * @author Holger Brandl + * Abstract class to handle any unknown properties by outputting a log message + * + * @author stuart.boston */ public abstract class AbstractJsonMapping implements Serializable { - private static Logger getLogger(Class aClass) { - return LoggerFactory.getLogger(aClass); + private Logger log = null; + + /** + * Return the current logger. + * + * @return + */ + private Logger getLogger() { + if (log == null) { + log = LoggerFactory.getLogger(this.getClass()); + } + return log; } /** @@ -43,12 +55,12 @@ public abstract class AbstractJsonMapping implements Serializable { * @param value */ @JsonAnySetter - public void handleUnknown(String key, Object value) { - StringBuilder unknown = new StringBuilder(); - unknown.append("Unknown property: '").append(key); - unknown.append("' value: '").append(value).append("'"); + protected void handleUnknown(String key, Object value) { + StringBuilder unknown = new StringBuilder(this.getClass().getSimpleName()); + unknown.append(": Unknown property='").append(key); + unknown.append("' value='").append(value).append("'"); - getLogger(this.getClass()).trace(unknown.toString()); + getLogger().trace(unknown.toString()); } @Override diff --git a/src/main/java/com/omertron/themoviedbapi/wrapper/AbstractWrapper.java b/src/main/java/com/omertron/themoviedbapi/wrapper/AbstractWrapper.java index 24c5e65c7..9cf92dad6 100644 --- a/src/main/java/com/omertron/themoviedbapi/wrapper/AbstractWrapper.java +++ b/src/main/java/com/omertron/themoviedbapi/wrapper/AbstractWrapper.java @@ -19,17 +19,15 @@ */ package com.omertron.themoviedbapi.wrapper; -import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.omertron.themoviedbapi.model.AbstractJsonMapping; import java.util.ArrayList; import java.util.Arrays; import java.util.EnumSet; import java.util.List; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public abstract class AbstractWrapper { +public abstract class AbstractWrapper extends AbstractJsonMapping { private static final long serialVersionUID = 1L; @@ -52,23 +50,4 @@ public abstract class AbstractWrapper { return new ArrayList(EnumSet.allOf(clz)); } } - - /** - * Handle unknown properties and print a message - * - * @param key - * @param value - */ - @JsonAnySetter - public void handleUnknown(String key, Object value) { - StringBuilder sb = new StringBuilder(); - sb.append("Unknown property: '").append(key); - sb.append("' value: '").append(value).append("'"); - getLogger(this.getClass()).trace(sb.toString()); - } - - @Override - public String toString() { - return ToStringBuilder.reflectionToString(this, ToStringStyle.DEFAULT_STYLE); - } }