Versions Compared

Key

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

...

Code Block
languagejava
public class TypeConfiguration implements Serializable {
    /** Serial version UID. */
    private static final long serialVersionUID = 0L;
 
    /** 
     * Type name. Can be one of three things:
     * - Simple type name. Use it when type is not in classpath;
     * - Fully qualified type name. Prefer it when type is in classpath to avoid conflicts. 
     *   E.g. "my.package.employee.Address", "my.package.organization.Address";
     * - Package wildcard. Must ends with ".*" in this case. E.g. "my.package.*".
     */
    private String typeName;
 
    /** Used to configure single type when it is not in classpath. */
    public void setTypeName(String);
 
    /** Used to configure specific class. Both typeName and packageName fields will be set. */
    public void setClass(Class);
 
    /** Affinity key field name. */
    private String affKeyFieldName;

    /** Type info extensions. */
    private Map<Class<? extends TypeInfo>, ? extends TypeInfo> typeInfos;
 
    public voidTypeInfo[] setTypeInfo(TypeInfo... typeInfosgetTypeInfo() {...}
 
    public void TypeInfo[] getTypeInfo(setTypeInfo(TypeInfo... typeInfos) {...}  
 
    public <T extends TypeInfo> T getTypeInfo(Class<T> infoCls) {...}
}

...

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

    /** Schema name in database. */
    private String dbSchema;

    /** Table name in database. */
    private String dbTbl;

    /** Persisted fields. */
    private Collection<PersistenceFieldInfo>Collection<PersistenceField> fields;
}
Code Block
languagejava
public class PersistenceFieldInfoPersistenceField implements Serializable {
    /** Serial version UID. */
    private static final long serialVersionUID = 0L;

    /** Column name in database. */
    private String dbFieldName;

    /** Column JDBC type in database. */
    private int dbFieldType;

    /** Field name in java object. */
    private String javaFieldName;

    /** Corresponding java type. */
    private Class<?> javaFieldType;
}

...

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

    /** Fields. */
    private QueryField[] flds;
 
    /** Field name-to-type map to be queried, in addition to indexed fieldsGroup indexes. */
    private QueryCompoundIndex[] grpIdxs;
 
    /** Fields to index as text. */
    private String[] txtIdxs;    
}
Code Block
languagejava
public class QueryField implements Serializable {
    /** Serial version UID. */@GridToStringInclude
    private Map<String, Class<?>> qryFlds static final long serialVersionUID = 0L;

    /** Field name-to-type map to index in ascending order. */
    private String name;
 
    /** Field class. */
    private  @GridToStringIncludeClass cls;
 
    /** Whether to index the field. Disabled by default. */
    private Map<String, Class<?>> ascFlds;
QueryFieldIndexType idxTyp = QueryFieldIndexType.NONE;
}
Code Block
languagejava
public enum QueryFieldIndexType {
    /** Do not index the field. */
 Field name-to-type map to index in descending   NONE,
 
    /** Ascending order. */ 
    @GridToStringInclude
 ASC,
 
    /** Descending order. */ 
    DESC
}
Code Block
languagejava
public class QueryCompoundIndex implements Serializable {   private Map<String, Class<?>> descFlds;

    /** FieldsSerial to index as textversion UID. */
    private static final  @GridToStringInclude
    private Collection<String> txtFlds;
long serialVersionUID = 0L;

    /** Index name. */
    String name;
 
    /** Fields to create group indexes for. */
    @GridToStringInclude Participating fields. */
    private QueryFieldInfo[] flds;
}

Notes

  • QueryFieldInfo.cls is a problem for non-Java users, because they have to write ugly things like "java.lang.Integer" which is very hard to understand for non-Java users. Lets switch to enum here?

IgniteConfiguration

Code Block
languagejava
public class IgniteConfiguration {
    /** Type configurations. */
    private TypeConfiguration[] typeCfg;
 
    public TypeConfiguration[] getTypeConfiguration();
    public void setTypeConfiguration(TypeConfiguration... typeCfg);
}

CacheConfiguration

Code Block
languagejava
public class CacheConfiguration {
    /** Type configurations. */
    private Map<String, LinkedHashMap<String, IgniteBiTuple<Class<?>, Boolean>>> grps TypeConfiguration[] typeCfg;
 
    public TypeConfiguration[] getTypeConfiguration();
    public void setTypeConfiguration(TypeConfiguration... typeCfg);
}