Update handlerUnknown code

Output the class that caused the unknown issue
master
Stuart Boston 12 years ago
parent 82e9c5b06f
commit 8eea8c796a

@ -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

@ -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<E>(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);
}
}

Loading…
Cancel
Save