com.fasterxml.jackson.databind.introspect.PotentialCreators Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of redisson-all Show documentation
Show all versions of redisson-all Show documentation
Easy Redis Java client and Real-Time Data Platform. Valkey compatible. Sync/Async/RxJava3/Reactive API. Client side caching. Over 50 Redis based Java objects and services: JCache API, Apache Tomcat, Hibernate, Spring, Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Bloom filter, Scheduler, RPC
package com.fasterxml.jackson.databind.introspect;
import java.util.*;
import com.fasterxml.jackson.databind.cfg.MapperConfig;
public class PotentialCreators
{
/**
* Property-based Creator found, if any
*/
public PotentialCreator propertiesBased;
private List explicitDelegating;
private List implicitDelegatingConstructors;
private List implicitDelegatingFactories;
public PotentialCreators() { }
/*
/**********************************************************************
/* Accumulating candidates
/**********************************************************************
*/
// desc -> "explicit", "implicit" etc
public void setPropertiesBased(MapperConfig> config, PotentialCreator ctor, String mode)
{
if (propertiesBased != null) {
throw new IllegalArgumentException(String.format(
"Conflicting property-based creators: already had %s creator %s, encountered another: %s",
mode, propertiesBased.creator(), ctor.creator()));
}
propertiesBased = ctor.introspectParamNames(config);
}
public void addExplicitDelegating(PotentialCreator ctor)
{
if (explicitDelegating == null) {
explicitDelegating = new ArrayList<>();
}
explicitDelegating.add(ctor);
}
public void setImplicitDelegating(List implicitConstructors,
List implicitFactories)
{
implicitDelegatingConstructors = implicitConstructors;
implicitDelegatingFactories = implicitFactories;
}
/*
/**********************************************************************
/* Accessors
/**********************************************************************
*/
public boolean hasPropertiesBased() {
return (propertiesBased != null);
}
public boolean hasPropertiesBasedOrDelegating() {
return (propertiesBased != null) || (explicitDelegating != null && !explicitDelegating.isEmpty());
}
public List getExplicitDelegating() {
return (explicitDelegating == null) ? Collections.emptyList() : explicitDelegating;
}
public List getImplicitDelegatingFactories() {
return (implicitDelegatingFactories == null) ? Collections.emptyList() : implicitDelegatingFactories;
}
public List getImplicitDelegatingConstructors() {
return (implicitDelegatingConstructors == null) ? Collections.emptyList() : implicitDelegatingConstructors;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy