本文整理汇总了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;未经允许,请勿转载。 |
请发表评论