All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
io.honeybadger.com.fasterxml.jackson.databind.introspect.ObjectIdInfo Maven / Gradle / Ivy
package com.fasterxml.jackson.databind.introspect;
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerator;
import com.fasterxml.jackson.annotation.ObjectIdResolver;
import com.fasterxml.jackson.annotation.SimpleObjectIdResolver;
import com.fasterxml.jackson.databind.PropertyName;
/**
* Container object that encapsulates information usually
* derived from {@link JsonIdentityInfo} annotation or its
* custom alternatives
*/
public class ObjectIdInfo
{
protected final PropertyName _propertyName;
protected final Class extends ObjectIdGenerator>> _generator;
protected final Class extends ObjectIdResolver> _resolver;
protected final Class> _scope;
protected final boolean _alwaysAsId;
/**
* @since 2.8.9
*/
private final static ObjectIdInfo EMPTY = new ObjectIdInfo(PropertyName.NO_NAME, Object.class, null, false, null);
public ObjectIdInfo(PropertyName name, Class> scope, Class extends ObjectIdGenerator>> gen,
Class extends ObjectIdResolver> resolver)
{
this(name, scope, gen, false, resolver);
}
@Deprecated // since 2.4
public ObjectIdInfo(PropertyName name, Class> scope, Class extends ObjectIdGenerator>> gen)
{
this(name, scope, gen, false);
}
@Deprecated // since 2.3
public ObjectIdInfo(String name, Class> scope, Class extends ObjectIdGenerator>> gen) {
this(new PropertyName(name), scope, gen, false);
}
protected ObjectIdInfo(PropertyName prop, Class> scope, Class extends ObjectIdGenerator>> gen,
boolean alwaysAsId)
{
this(prop, scope, gen, alwaysAsId, SimpleObjectIdResolver.class);
}
protected ObjectIdInfo(PropertyName prop, Class> scope, Class extends ObjectIdGenerator>> gen,
boolean alwaysAsId, Class extends ObjectIdResolver> resolver)
{
_propertyName = prop;
_scope = scope;
_generator = gen;
_alwaysAsId = alwaysAsId;
if (resolver == null) {
resolver = SimpleObjectIdResolver.class;
}
_resolver = resolver;
}
public static ObjectIdInfo empty() {
return EMPTY;
}
public ObjectIdInfo withAlwaysAsId(boolean state) {
if (_alwaysAsId == state) {
return this;
}
return new ObjectIdInfo(_propertyName, _scope, _generator, state, _resolver);
}
public PropertyName getPropertyName() { return _propertyName; }
public Class> getScope() { return _scope; }
public Class extends ObjectIdGenerator>> getGeneratorType() { return _generator; }
public Class extends ObjectIdResolver> getResolverType() { return _resolver; }
public boolean getAlwaysAsId() { return _alwaysAsId; }
@Override
public String toString() {
return "ObjectIdInfo: propName="+_propertyName
+", scope="+(_scope == null ? "null" : _scope.getName())
+", generatorType="+(_generator == null ? "null" : _generator.getName())
+", alwaysAsId="+_alwaysAsId;
}
}