##
# ==================================================================================================
#                             Copyright (C) 2017 Universum Studios
# ==================================================================================================
#         Licensed under the Apache License, Version 2.0 or later (further "License" only).
# --------------------------------------------------------------------------------------------------
# You may use this file only in compliance with the License. More details and copy of this License
# you may obtain at
#
# 		http://www.apache.org/licenses/LICENSE-2.0
#
# You can redistribute, modify or publish any part of the code written within this file but as it
# is described in the License, the software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES or CONDITIONS OF ANY KIND.
#
# See the License for the specific language governing permissions and limitations under the License.
# ==================================================================================================
##
# Keep all database annotations.
-keep public @interface universum.studios.android.database.annotation.** { *; }
-keep @interface universum.studios.android.database.**$** { *; }
# Keep entities implementation details:
# - public empty constructor [always]
-keepclassmembers class * implements universum.studios.android.database.DatabaseEntity {
    public <init>();
}
# Keep entity models implementation details:
# - parcelable CREATOR [always],
# - model FACTORY [avoids instantiation via reflection],
# - public empty constructor [always],
# - columns [always],
-keepclassmembers class * implements universum.studios.android.database.model.EntityModel {
    public static final android.os.Parcelable$Creator CREATOR;
    public static final universum.studios.android.database.model.EntityModel$*Factory FACTORY;
    public <init>();
    @universum.studios.android.database.annotation.Column <fields>;
}
# Keep cursor wrappers implementation details:
# - public constructor taking Cursor parameter [if using wrappers within LoaderAdapter]
-keepclassmembers class * extends universum.studios.android.database.cursor.BaseCursorWrapper {
    public <init>(android.database.Cursor);
}
# Keep annotation handlers implementation details:
# - constructor taking Class parameter [always]
-keepclassmembers class * extends universum.studios.android.database.annotation.handler.BaseAnnotationHandler {
    public <init>(java.lang.Class);
}