Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Our goal is to define a single place where all type information will reside. We define TypeConfiguration class which will have multiple type extensions for different features. This configuration will be set for the whole Ignite instance with ability to override it on per-cache level.

TypeConfiguration

Code Block
languagejava
/**
 *
 */
public class TypeConfiguration implements Serializable {
    /** Serial version UID. */
    private static final long serialVersionUID = 0L;
 
    /** Type name. Supports wildcards. */
    private String typeName;

    /** Affinity key field name. */
    private String affKeyFieldName;

    /** Type info extensions. */
    private Map<Class<? extends TypeInfo>, ? extends TypeInfo> typeInfos;
 
    public void setTypeInfos(Collection<? extends TypeInfo> typeInfos) {...}
 
    public Collection<? extends TypeInfo> getTypeInfos() {...}
 
    public <T extends TypeInfo> T getTypeInfo(Class<T> infoCls) {...}
}

...

Code Block
languagejava
/**
 *
 */
public class PortableTypeInfo implements TypeInfo {
    /** Serial version UID. */
    private static final long serialVersionUID = 0L;

    /** ID mapper. */
    private PortableIdMapper idMapper;

    /** Serializer. */
    private PortableSerializer serializer;

    /** UsePortable metadata timestampenabled flag. */
When disabled query will privatenot Boolean useTs;

    /** Meta data enabled flag. work for type.  */
    private Boolean metaDataEnabled = true;
}
Code Block
languagejava
/**
 *
 */
public class QueryTypeInfo implements TypeInfo {
    /** Serial version UID. */
    private static final long serialVersionUID = 0L;

    /** Field name-to-type map to be queried, in addition to indexed fields. */
    @GridToStringInclude
    private Map<String, Class<?>> qryFlds;

    /** Field name-to-type map to index in ascending order. */
    @GridToStringInclude
    private Map<String, Class<?>> ascFlds;

    /** Field name-to-type map to index in descending order. */
    @GridToStringInclude
    private Map<String, Class<?>> descFlds;

    /** Fields to index as text. */
    @GridToStringInclude
    private Collection<String> txtFlds;

    /** Fields to create group indexes for. */
    @GridToStringInclude
    private Map<String, LinkedHashMap<String, IgniteBiTuple<Class<?>, Boolean>>> grps;
}