• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java PrimaryKey类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.github.gfx.android.orma.annotation.PrimaryKey的典型用法代码示例。如果您正苦于以下问题:Java PrimaryKey类的具体用法?Java PrimaryKey怎么用?Java PrimaryKey使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



PrimaryKey类属于com.github.gfx.android.orma.annotation包,在下文中一共展示了PrimaryKey类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: ColumnDefinition

import com.github.gfx.android.orma.annotation.PrimaryKey; //导入依赖的package包/类
public ColumnDefinition(SchemaDefinition schema, VariableElement element) {
    this.schema = schema;
    this.element = element;
    context = schema.context;

    // See https://www.sqlite.org/lang_createtable.html for full specification
    Column column = element.getAnnotation(Column.class);
    PrimaryKey primaryKeyAnnotation = element.getAnnotation(PrimaryKey.class);

    name = element.getSimpleName().toString();
    columnName = columnName(column, element);

    type = ClassName.get(element.asType());
    typeAdapter = schema.context.findTypeAdapter(element.asType());

    storageType = (column != null && !Strings.isEmpty(column.storageType())) ? column.storageType() : null;

    if (primaryKeyAnnotation != null) {
        primaryKeyOnConflict = primaryKeyAnnotation.onConflict();
        primaryKey = true;
        autoincrement = primaryKeyAnnotation.autoincrement();
        autoId = primaryKeyAnnotation.auto() && Types.looksLikeIntegerType(type);
    } else {
        primaryKeyOnConflict = OnConflict.NONE;
        primaryKey = false;
        autoincrement = false;
        autoId = false;
    }

    if (column != null) {
        indexed = column.indexed();
        uniqueOnConflict = column.uniqueOnConflict();
        unique = uniqueOnConflict != OnConflict.NONE || column.unique();
        collate = column.collate();
        onDeleteAction = column.onDelete();
        onUpdateAction = column.onUpdate();
        defaultExpr = column.defaultExpr();
        helperFlags = normalizeHelperFlags(primaryKey, indexed, autoincrement, autoId, column.helpers());
    } else {
        indexed = false;
        uniqueOnConflict = OnConflict.NONE;
        unique = false;
        defaultExpr = null;
        collate = Column.Collate.BINARY;
        onDeleteAction = Column.ForeignKeyAction.NO_ACTION;
        onUpdateAction = Column.ForeignKeyAction.NO_ACTION;
        helperFlags = normalizeHelperFlags(primaryKey, indexed, autoincrement, autoId, Column.Helpers.AUTO);
    }

    nullable = hasNullableAnnotation(element);
    explicitNonNull = hasNonNullAnnotation(element);
}
 
开发者ID:maskarade,项目名称:Android-Orma,代码行数:53,代码来源:ColumnDefinition.java


示例2: collectColumns

import com.github.gfx.android.orma.annotation.PrimaryKey; //导入依赖的package包/类
List<ColumnDefinition> collectColumns(@NonNull TypeElement typeElement) {
    List<ColumnDefinition> columns = new ArrayList<>();
    TypeMirror superclass = typeElement.getSuperclass();
    if (!superclass.toString().equals(Object.class.getCanonicalName())) {
        // superclass might represent  com.example.C<java.lang.String>
        TypeElement superclassElement = context.getTypeElement(superclass);
        columns.addAll(collectColumns(superclassElement));
    }

    Map<String, List<ExecutableElement>> getters = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
    Map<String, List<ExecutableElement>> setters = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);

    List<VariableElement> columnElements = new ArrayList<>();

    typeElement.getEnclosedElements()
            .forEach(element -> {
                if (element instanceof VariableElement) {
                    if (element.getAnnotation(PrimaryKey.class) != null) {
                        columnElements.add((VariableElement) element);
                    } else if (element.getAnnotation(Column.class) != null) {
                        columnElements.add((VariableElement) element);
                    }
                    return;
                }

                if (!(element instanceof ExecutableElement)) {
                    return;
                }
                if (isConstructor(element)) {
                    return;
                }

                ExecutableElement methodElement = (ExecutableElement) element;

                Getter getter = methodElement.getAnnotation(Getter.class);
                Setter setter = methodElement.getAnnotation(Setter.class);

                extractNameFromGetter(getters, getter, methodElement);
                extractNameFromSetter(setters, setter, methodElement);
            });

    columns.addAll(columnElements.stream()
            .map((element) -> {
                ColumnDefinition column = new ColumnDefinition(this, element);
                column.initGetterAndSetter(
                        getBestMatched(getters, column.columnName, column.name),
                        getBestMatched(setters, column.columnName, column.name));
                return column;
            })
            .collect(Collectors.toList()));
    return columns;
}
 
开发者ID:maskarade,项目名称:Android-Orma,代码行数:53,代码来源:SchemaDefinition.java



注:本文中的com.github.gfx.android.orma.annotation.PrimaryKey类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java SPacketCustomSound类代码示例发布时间:2022-05-22
下一篇:
Java ApplicationService类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap