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; 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 { public abstract class AbstractJsonMapping implements Serializable {
private static Logger getLogger(Class<?> aClass) { private Logger log = null;
return LoggerFactory.getLogger(aClass);
/**
* 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 * @param value
*/ */
@JsonAnySetter @JsonAnySetter
public void handleUnknown(String key, Object value) { protected void handleUnknown(String key, Object value) {
StringBuilder unknown = new StringBuilder(); StringBuilder unknown = new StringBuilder(this.getClass().getSimpleName());
unknown.append("Unknown property: '").append(key); unknown.append(": Unknown property='").append(key);
unknown.append("' value: '").append(value).append("'"); unknown.append("' value='").append(value).append("'");
getLogger(this.getClass()).trace(unknown.toString()); getLogger().trace(unknown.toString());
} }
@Override @Override

@ -19,17 +19,15 @@
*/ */
package com.omertron.themoviedbapi.wrapper; package com.omertron.themoviedbapi.wrapper;
import com.fasterxml.jackson.annotation.JsonAnySetter; import com.omertron.themoviedbapi.model.AbstractJsonMapping;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.List; 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
public abstract class AbstractWrapper { public abstract class AbstractWrapper extends AbstractJsonMapping {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -52,23 +50,4 @@ public abstract class AbstractWrapper {
return new ArrayList<E>(EnumSet.allOf(clz)); 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