// Path: ormlite-content-provider-library/src/com/tojc/ormlite/android/annotation/info/ContentUriInfo.java
// public class ContentUriInfo extends AnnotationInfoBase {
//     // ----------------------------------
//     // ATTRIBUTES
//     // ----------------------------------
//     private String authority;
//     private String path;
// 
//     // ----------------------------------
//     // CONSTRUCTORS
//     // ----------------------------------
//     public ContentUriInfo(AnnotatedElement element) {
//         DefaultContentUri contentUri = element.getAnnotation(DefaultContentUri.class);
//         String authority = null;
//         String path = null;
//         if (contentUri != null) {
//             authority = contentUri.authority();
//             path = contentUri.path();
//         }
// 
//         if (element instanceof Class<?>) {
//             Class<?> clazz = (Class<?>) element;
//             if (TextUtils.isEmpty(authority)) {
//                 authority = clazz.getPackage().getName();
//             }
//             if (TextUtils.isEmpty(path)) {
//                 // TODO use DataBase annotation
//                 path = clazz.getSimpleName().toLowerCase();
//             }
//         }
// 
//         initialize(authority, path);
//     }
// 
//     public ContentUriInfo(String authority, String path) {
//         initialize(authority, path);
//     }
// 
//     // ----------------------------------
//     // PUBLIC METHODS
//     // ----------------------------------
//     public String getAuthority() {
//         return this.authority;
//     }
// 
//     public String getPath() {
//         return this.path;
//     }
// 
//     public Uri getContentUri() {
//         return new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT).authority(this.authority).appendPath(this.path).build();
//     }
// 
//     @Override
//     protected boolean isValidValue() {
//         return !TextUtils.isEmpty(this.authority) && !TextUtils.isEmpty(this.path);
//     }
// 
//     // ----------------------------------
//     // PRIVATE METHODS
//     // ----------------------------------
//     private void initialize(String authority, String path) {
//         this.authority = authority;
//         this.path = path;
//         validFlagOn();
//     }
// 
//     @Override
//     public String toString() {
//         return "ContentUriInfo{"
//                 + "authority='" + authority + '\''
//                 + ", path='" + path + '\''
//                 + "} " + super.toString();
//     }
// }


import com.tojc.ormlite.android.framework.MimeTypeVnd.SubType;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.UriMatcher;
import com.tojc.ormlite.android.annotation.info.ContentMimeTypeVndInfo;
import com.tojc.ormlite.android.annotation.info.ContentUriInfo;
     *            register MatcherPattern.
     * @return Instance of the MatcherController class.
     */
    public MatcherController add(MatcherPattern matcherPattern) {
        int patternCode = matcherPattern.getPatternCode();

        if (this.lastAddTableInfo == null) {
            throw new IllegalStateException("There is a problem with the order of function call.");
        }

        if (findMatcherPattern(patternCode) != null) {
            throw new IllegalArgumentException("patternCode has been specified already exists.");
        }

        this.matcherPatterns.add(matcherPattern);
        return this;
    }

    /**
     * Set the DefaultContentUri. If you did not use the DefaultContentUri annotation, you must call
     * this method.
     * @see com.tojc.ormlite.android.annotation.AdditionalAnnotation.DefaultContentUri
     * @param authority
     * @param path
     * @return Instance of the MatcherController class.
     */
    public MatcherController setDefaultContentUri(String authority, String path) {
        if (this.lastAddTableInfo == null) {
            throw new IllegalStateException("There is a problem with the order of function call.");
        }
// Path: ormlite-content-provider-library/src/com/tojc/ormlite/android/annotation/info/ContentUriInfo.java
// public class ContentUriInfo extends AnnotationInfoBase {
//     // ----------------------------------
//     // ATTRIBUTES
//     // ----------------------------------
//     private String authority;
//     private String path;
// 
//     // ----------------------------------
//     // CONSTRUCTORS
//     // ----------------------------------
//     public ContentUriInfo(AnnotatedElement element) {
//         DefaultContentUri contentUri = element.getAnnotation(DefaultContentUri.class);
//         String authority = null;
//         String path = null;
//         if (contentUri != null) {
//             authority = contentUri.authority();
//             path = contentUri.path();
//         }
// 
//         if (element instanceof Class<?>) {
//             Class<?> clazz = (Class<?>) element;
//             if (TextUtils.isEmpty(authority)) {
//                 authority = clazz.getPackage().getName();
//             }
//             if (TextUtils.isEmpty(path)) {
//                 // TODO use DataBase annotation
//                 path = clazz.getSimpleName().toLowerCase();
//             }
//         }
// 
//         initialize(authority, path);
//     }
// 
//     public ContentUriInfo(String authority, String path) {
//         initialize(authority, path);
//     }
// 
//     // ----------------------------------
//     // PUBLIC METHODS
//     // ----------------------------------
//     public String getAuthority() {
//         return this.authority;
//     }
// 
//     public String getPath() {
//         return this.path;
//     }
// 
//     public Uri getContentUri() {
//         return new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT).authority(this.authority).appendPath(this.path).build();
//     }
// 
//     @Override
//     protected boolean isValidValue() {
//         return !TextUtils.isEmpty(this.authority) && !TextUtils.isEmpty(this.path);
//     }
// 
//     // ----------------------------------
//     // PRIVATE METHODS
//     // ----------------------------------
//     private void initialize(String authority, String path) {
//         this.authority = authority;
//         this.path = path;
//         validFlagOn();
//     }
// 
//     @Override
//     public String toString() {
//         return "ContentUriInfo{"
//                 + "authority='" + authority + '\''
//                 + ", path='" + path + '\''
//                 + "} " + super.toString();
//     }
// }


// Path: ormlite-content-provider-library/src/com/tojc/ormlite/android/framework/MatcherController.java
import com.tojc.ormlite.android.framework.MimeTypeVnd.SubType;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.UriMatcher;
import com.tojc.ormlite.android.annotation.info.ContentMimeTypeVndInfo;
import com.tojc.ormlite.android.annotation.info.ContentUriInfo;

     *            register MatcherPattern.
     * @return Instance of the MatcherController class.
     */
    public MatcherController add(MatcherPattern matcherPattern) {
        int patternCode = matcherPattern.getPatternCode();

        if (this.lastAddTableInfo == null) {
            throw new IllegalStateException("There is a problem with the order of function call.");
        }

        if (findMatcherPattern(patternCode) != null) {
            throw new IllegalArgumentException("patternCode has been specified already exists.");
        }

        this.matcherPatterns.add(matcherPattern);
        return this;
    }

    /**
     * Set the DefaultContentUri. If you did not use the DefaultContentUri annotation, you must call
     * this method.
     * @see com.tojc.ormlite.android.annotation.AdditionalAnnotation.DefaultContentUri
     * @param authority
     * @param path
     * @return Instance of the MatcherController class.
     */
    public MatcherController setDefaultContentUri(String authority, String path) {
        if (this.lastAddTableInfo == null) {
            throw new IllegalStateException("There is a problem with the order of function call.");
        }
        this.lastAddTableInfo.setDefaultContentUriInfo(new ContentUriInfo(authority, path));