monad.face.model.ResourceDefinition.scala Maven / Gradle / Ivy
// Copyright 2012,2013,2015,2016 the original author or authors. All rights reserved.
// site: http://www.ganshane.com
package monad.face.model
import java.util
import javax.xml.bind.annotation._
import monad.face.model.ResourceDefinition._
/**
* resource definition model
* @author jcai
*/
object ResourceDefinition {
/**
* JDBC连接属性
*/
@XmlAccessorType(XmlAccessType.FIELD)
class Jdbc {
/**
* 驱动类
*/
var driver: String = _
/**
* 连接的URL
*/
var url: String = _
/**
* 数据库用户名
*/
var user: String = _
/**
* 连接密码
*/
var password: String = _
/**
* 批的大小
*/
@XmlElement(name = "batch_size")
var batchSize: Int = 5000
/**
* 连接的SQL
*/
var sql: String = _
}
/**
* 索引的定义
*/
@XmlAccessorType(XmlAccessType.FIELD)
class Index {
/**
* 所采用的分词类
*/
@XmlElement(name = "analyzer")
var analyzer: AnalyzerType = _
}
/**
* 搜索的定义
*/
@XmlAccessorType(XmlAccessType.FIELD)
class Search {
/**
* 搜索时候用的分词器
*/
@XmlElement(name = "analyzer")
var analyzer: AnalyzerType = _
}
/**
* 同步的定义
*/
@XmlAccessorType(XmlAccessType.FIELD)
class Sync {
/**
* 同步的定时器
*/
@XmlElement(name = "cron")
var cron: String = "0 0 1 * * ? *"
/**
* 同步时候抓取间隔,单位为 分钟
*/
@XmlElement(name = "interval")
var interval: Float = 60
/**
* 同步策略
*/
@XmlElement(name = "policy")
var policy: SyncPolicy = SyncPolicy.Incremental
/**
* 数据预处理器
*/
@XmlElement(name = "preprocessor")
var preprocessor: String = _
/**
* 是否显示异常数据信息
*/
@XmlElement(name = "show_bad_record_exception")
var showBadRecordException: Boolean = true
/**
* 指定编码
*/
@XmlElement(name = "encoding")
var encoding: String = _
/**
* jdbc连接信息
*/
@XmlElement(name = "jdbc")
var jdbc: Jdbc = _
}
/**
* 资源属性
*/
@XmlAccessorType(XmlAccessType.FIELD)
class ResourceProperty {
/**
* 属性名称
*/
@XmlAttribute(name = "name")
var name: String = _
/**
* 属性中文名称
*/
@XmlAttribute(name = "cn_name")
var cnName: String = _
/**
* 属性在列表展示的名称
*/
@XmlAttribute(name = "list_name")
var listName: String = _
/**
* 关联的规范词名
*/
@XmlAttribute(name = "dic")
var dic: String = _
/**
* 索引的类型,可以选择Text Keyword
*/
@XmlAttribute(name = "index_type")
var indexType: IndexType = IndexType.Text
/** 是否为主键 **/
@XmlAttribute(name = "primary_key")
var primaryKey: Boolean = _
/** 是否为增量列 **/
@XmlAttribute(name = "modify_key")
var modifyKey: Boolean = _
/** 是否为默认查询字段 **/
@XmlAttribute(name = "default_query")
var defaultQuery: Boolean = _
/** 查询类型 **/
@XmlAttribute(name = "query_type")
var queryType: QueryType = QueryType.String
/** 列的属性,可选 Int Long String Date **/
@XmlAttribute(name = "column_type")
var columnType: ColumnType = ColumnType.String
/** 格式,通常用作,字符型的日期类型,此值是将数据库中格式转换 **/
@XmlAttribute(name = "db_format")
var dbFormat: String = _
/** 格式,通常用作,字符型的日期类型,此值将影响API的输出格式 **/
@XmlAttribute(name = "api_format")
var apiFormat: String = _
/**
该属性的一些特性定义,按照从右向左二进制的位数来定义
第1位 是否为主键字段,兼容 3.2 以下版本的定义,将在4.0版本删除 primary_key 属性
第2位 是否为增量字段 在4.0版本将删除 modify_key 属性
第3位 是否为默认查询,用于精确查询的页面 在4.0版本将删除 default_query 属性
第4位 是否为身份证号码,since 3.2.1
譬如:
mark=5,那么二进制是 101 那么代表是主键字段,也是默认查询
mark=12,那么二进制是 1100 那么代表是默认查询字段,也是身份证号码字段
*/
@deprecated(since = "5.1",message = "使用object_category进行代替")
@XmlAttribute(name = "mark")
var mark: Int = 0
@XmlAttribute(name = "boost")
var boost: Float = 1.0f
@XmlAttribute(name = "object_category")
var objectCategory: ObjectCategory = _
@XmlAttribute(name = "analyzer")
var analyzer: AnalyzerType = _
//仅仅方便在数据同步时候得到设置的编码
var resourceDefinition: ResourceDefinition = _
}
/**
* 特征资源属性
*/
@XmlAccessorType(XmlAccessType.FIELD)
class ResourceDynamicType {
/**
* 本资源的属性名称
*/
@XmlAttribute(name = "desc_format")
var descFormat: String = _
@XmlElement(name = "property")
var properties = new util.ArrayList[ResourceTraitProperty]()
}
/**
* 特征资源属性
*/
@XmlAccessorType(XmlAccessType.FIELD)
class ResourceTraitProperty {
/**
* 本资源的属性名称
*/
@XmlAttribute(name = "name")
var name: String = _
/**
* 对应的特征属性
* @see ResourceRelation
*/
@XmlAttribute(name = "trait")
var traitProperty: String = _
}
/**
* 关联的特征
*/
@XmlAccessorType(XmlAccessType.FIELD)
class Rel {
/**
* 特征类型
*/
@XmlAttribute(name = "name")
var name: String = _
/**
* 特征列集合
*/
@XmlElement(name = "property")
var properties = new util.ArrayList[ResourceTraitProperty]()
}
}
/**
* 资源定义
*/
@XmlRootElement(name = "resource")
@XmlAccessorType(XmlAccessType.FIELD)
class ResourceDefinition {
/**
* 资源名称
*/
@XmlAttribute(name = "name")
var name: String = _
/**
* 定义资源的类型
*/
@XmlAttribute(name = "type")
var resourceType: ResourceType = ResourceType.Real
/**
* 目标资源,用来把本资源数据提供给其他资源的配置
*/
@XmlAttribute(name = "target")
var targetResource: String = _
/**
* 资源中文名称
*/
@XmlAttribute(name = "cn_name")
var cnName: String = _
/**
* 是否为动态资源
*/
@XmlAttribute(name = "dynamic")
var dynamic: Boolean = _
/**
* 是否为共享资源
*/
@XmlAttribute(name = "share")
var share: Boolean = _
/**
* 是否要保存本资源数据
*/
@XmlAttribute(name = "save")
var save: Boolean = true
/**
* 索引定义
*/
@XmlElement(name = "index")
var index: Index = _
/**
* 搜索配置
*/
@XmlElement(name = "search")
var search: Search = _
/**
* 同步属性配置
*/
@XmlElement(name = "sync")
var sync: Sync = _
/**
* 资源属性集合
*/
@XmlElementWrapper(name = "properties")
@XmlElement(name = "property")
var properties = new util.ArrayList[ResourceProperty]()
/**
* 资源动态特征属性映射
*/
@XmlElement(name = "dynamic")
var dynamicType: ResourceDynamicType = _
/**
* 支持的关系查询集合
*/
@XmlElementWrapper(name = "relations")
@XmlElement(name = "rel")
var relations = new util.ArrayList[Rel]()
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy