com.activeandroid.annotation.Column Java Examples

The following examples show how to use com.activeandroid.annotation.Column. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ReflectionUtils.java    From clear-todolist with GNU General Public License v3.0 5 votes vote down vote up
public static Set<Field> getDeclaredColumnFields(Class<?> type) {
	Set<Field> declaredColumnFields = Collections.emptySet();
	
	if (ReflectionUtils.isSubclassOf(type, Model.class) || Model.class.equals(type)) {
		declaredColumnFields = new LinkedHashSet<Field>();
		
		Field[] fields = type.getDeclaredFields();
		Arrays.sort(fields, new Comparator<Field>() {
			@Override
			public int compare(Field field1, Field field2) {
				return field2.getName().compareTo(field1.getName());
			}
		});
		for (Field field : fields) {
			if (field.isAnnotationPresent(Column.class)) {
				declaredColumnFields.add(field);
			}
		}

		Class<?> parentType = type.getSuperclass();
		if (parentType != null) {
			declaredColumnFields.addAll(getDeclaredColumnFields(parentType));
		}
	}
	
	return declaredColumnFields;		
}
 
Example #2
Source File: SQLiteUtils.java    From clear-todolist with GNU General Public License v3.0 5 votes vote down vote up
public static void createUniqueColumnDefinition(TableInfo tableInfo, Field field) {
	final String name = tableInfo.getColumnName(field);
	final Column column = field.getAnnotation(Column.class);

       if (field.getName().equals("mId")) {
           return;
       }

	String[] groups = column.uniqueGroups();
	ConflictAction[] conflictActions = column.onUniqueConflicts();
	if (groups.length != conflictActions.length)
		return;

	for (int i = 0; i < groups.length; i++) {
		String group = groups[i];
		ConflictAction conflictAction = conflictActions[i];

		if (TextUtils.isEmpty(group))
			continue;

		List<String> list = sUniqueGroupMap.get(group);
		if (list == null) {
			list = new ArrayList<String>();
		}
		list.add(name);

		sUniqueGroupMap.put(group, list);
		sOnUniqueConflictsMap.put(group, conflictAction);
	}
}
 
Example #3
Source File: TableInfo.java    From clear-todolist with GNU General Public License v3.0 5 votes vote down vote up
public TableInfo(Class<? extends Model> type) {
	mType = type;

	final Table tableAnnotation = type.getAnnotation(Table.class);

       if (tableAnnotation != null) {
		mTableName = tableAnnotation.name();
		mIdName = tableAnnotation.id();
	}
	else {
		mTableName = type.getSimpleName();
       }

       // Manually add the id column since it is not declared like the other columns.
       Field idField = getIdField(type);
       mColumnNames.put(idField, mIdName);

       List<Field> fields = new LinkedList<Field>(ReflectionUtils.getDeclaredColumnFields(type));
       Collections.reverse(fields);

       for (Field field : fields) {
           if (field.isAnnotationPresent(Column.class)) {
               final Column columnAnnotation = field.getAnnotation(Column.class);
               String columnName = columnAnnotation.name();
               if (TextUtils.isEmpty(columnName)) {
                   columnName = field.getName();
               }

               mColumnNames.put(field, columnName);
           }
       }

}
 
Example #4
Source File: ReflectionUtils.java    From mobile-android-survey-app with MIT License 5 votes vote down vote up
public static Set<Field> getDeclaredColumnFields(Class<?> type) {
	Set<Field> declaredColumnFields = Collections.emptySet();
	
	if (ReflectionUtils.isSubclassOf(type, Model.class) || Model.class.equals(type)) {
		declaredColumnFields = new LinkedHashSet<Field>();
		
		Field[] fields = type.getDeclaredFields();
		Arrays.sort(fields, new Comparator<Field>() {
			@Override
			public int compare(Field field1, Field field2) {
				return field2.getName().compareTo(field1.getName());
			}
		});
		for (Field field : fields) {
			if (field.isAnnotationPresent(Column.class)) {
				declaredColumnFields.add(field);
			}
		}

		Class<?> parentType = type.getSuperclass();
		if (parentType != null) {
			declaredColumnFields.addAll(getDeclaredColumnFields(parentType));
		}
	}
	
	return declaredColumnFields;		
}
 
Example #5
Source File: SQLiteUtils.java    From mobile-android-survey-app with MIT License 5 votes vote down vote up
public static void createUniqueColumnDefinition(TableInfo tableInfo, Field field) {
	final String name = tableInfo.getColumnName(field);
	final Column column = field.getAnnotation(Column.class);

       if (field.getName().equals("mId")) {
           return;
       }

	String[] groups = column.uniqueGroups();
	ConflictAction[] conflictActions = column.onUniqueConflicts();
	if (groups.length != conflictActions.length)
		return;

	for (int i = 0; i < groups.length; i++) {
		String group = groups[i];
		ConflictAction conflictAction = conflictActions[i];

		if (TextUtils.isEmpty(group))
			continue;

		List<String> list = sUniqueGroupMap.get(group);
		if (list == null) {
			list = new ArrayList<String>();
		}
		list.add(name);

		sUniqueGroupMap.put(group, list);
		sOnUniqueConflictsMap.put(group, conflictAction);
	}
}
 
Example #6
Source File: TableInfo.java    From mobile-android-survey-app with MIT License 5 votes vote down vote up
public TableInfo(Class<? extends Model> type) {
	mType = type;

	final Table tableAnnotation = type.getAnnotation(Table.class);

       if (tableAnnotation != null) {
		mTableName = tableAnnotation.name();
		mIdName = tableAnnotation.id();
	}
	else {
		mTableName = type.getSimpleName();
       }

       // Manually add the id column since it is not declared like the other columns.
       Field idField = getIdField(type);
       mColumnNames.put(idField, mIdName);

       List<Field> fields = new LinkedList<Field>(ReflectionUtils.getDeclaredColumnFields(type));
       Collections.reverse(fields);

       for (Field field : fields) {
           if (field.isAnnotationPresent(Column.class)) {
               final Column columnAnnotation = field.getAnnotation(Column.class);
               String columnName = columnAnnotation.name();
               if (TextUtils.isEmpty(columnName)) {
                   columnName = field.getName();
               }

               mColumnNames.put(field, columnName);
           }
       }

}
 
Example #7
Source File: SQLiteUtils.java    From clear-todolist with GNU General Public License v3.0 4 votes vote down vote up
@SuppressWarnings("unchecked")
public static String createColumnDefinition(TableInfo tableInfo, Field field) {
	StringBuilder definition = new StringBuilder();

	Class<?> type = field.getType();
	final String name = tableInfo.getColumnName(field);
	final TypeSerializer typeSerializer = Cache.getParserForType(field.getType());
	final Column column = field.getAnnotation(Column.class);

	if (typeSerializer != null) {
		type = typeSerializer.getSerializedType();
	}

	if (TYPE_MAP.containsKey(type)) {
		definition.append(name);
		definition.append(" ");
		definition.append(TYPE_MAP.get(type).toString());
	}
	else if (ReflectionUtils.isModel(type)) {
		definition.append(name);
		definition.append(" ");
		definition.append(SQLiteType.INTEGER.toString());
	}
	else if (ReflectionUtils.isSubclassOf(type, Enum.class)) {
		definition.append(name);
		definition.append(" ");
		definition.append(SQLiteType.TEXT.toString());
	}

	if (!TextUtils.isEmpty(definition)) {

		if (name.equals(tableInfo.getIdName())) {
			definition.append(" PRIMARY KEY AUTOINCREMENT");
		}else if(column!=null){
			if (column.length() > -1) {
				definition.append("(");
				definition.append(column.length());
				definition.append(")");
			}

			if (column.notNull()) {
				definition.append(" NOT NULL ON CONFLICT ");
				definition.append(column.onNullConflict().toString());
			}

			if (column.unique()) {
				definition.append(" UNIQUE ON CONFLICT ");
				definition.append(column.onUniqueConflict().toString());
			}
		}

		if (FOREIGN_KEYS_SUPPORTED && ReflectionUtils.isModel(type)) {
			definition.append(" REFERENCES ");
			definition.append(Cache.getTableInfo((Class<? extends Model>) type).getTableName());
			definition.append("("+tableInfo.getIdName()+")");
			definition.append(" ON DELETE ");
			definition.append(column.onDelete().toString().replace("_", " "));
			definition.append(" ON UPDATE ");
			definition.append(column.onUpdate().toString().replace("_", " "));
		}
	}
	else {
		Log.e("No type mapping for: " + type.toString());
	}

	return definition.toString();
}
 
Example #8
Source File: SQLiteUtils.java    From mobile-android-survey-app with MIT License 4 votes vote down vote up
@SuppressWarnings("unchecked")
public static String createColumnDefinition(TableInfo tableInfo, Field field) {
	StringBuilder definition = new StringBuilder();

	Class<?> type = field.getType();
	final String name = tableInfo.getColumnName(field);
	final TypeSerializer typeSerializer = Cache.getParserForType(field.getType());
	final Column column = field.getAnnotation(Column.class);

	if (typeSerializer != null) {
		type = typeSerializer.getSerializedType();
	}

	if (TYPE_MAP.containsKey(type)) {
		definition.append(name);
		definition.append(" ");
		definition.append(TYPE_MAP.get(type).toString());
	}
	else if (ReflectionUtils.isModel(type)) {
		definition.append(name);
		definition.append(" ");
		definition.append(SQLiteType.INTEGER.toString());
	}
	else if (ReflectionUtils.isSubclassOf(type, Enum.class)) {
		definition.append(name);
		definition.append(" ");
		definition.append(SQLiteType.TEXT.toString());
	}

	if (!TextUtils.isEmpty(definition)) {

		if (name.equals(tableInfo.getIdName())) {
			definition.append(" PRIMARY KEY AUTOINCREMENT");
		}else if(column!=null){
			if (column.length() > -1) {
				definition.append("(");
				definition.append(column.length());
				definition.append(")");
			}

			if (column.notNull()) {
				definition.append(" NOT NULL ON CONFLICT ");
				definition.append(column.onNullConflict().toString());
			}

			if (column.unique()) {
				definition.append(" UNIQUE ON CONFLICT ");
				definition.append(column.onUniqueConflict().toString());
			}
		}

		if (FOREIGN_KEYS_SUPPORTED && ReflectionUtils.isModel(type)) {
			definition.append(" REFERENCES ");
			definition.append(Cache.getTableInfo((Class<? extends Model>) type).getTableName());
			definition.append("("+tableInfo.getIdName()+")");
			definition.append(" ON DELETE ");
			definition.append(column.onDelete().toString().replace("_", " "));
			definition.append(" ON UPDATE ");
			definition.append(column.onUpdate().toString().replace("_", " "));
		}
	}
	else {
		Log.e("No type mapping for: " + type.toString());
	}

	return definition.toString();
}