// Path: lib-core/src/main/java/xdroid/core/ObjectUtils.java
// public static <T> boolean isEmpty(T[] array) {
//     return array == null || array.length == 0;
// }
// 
// Path: lib-core/src/main/java/xdroid/core/ObjectUtils.java
// public static <T> T notNull(T object) {
//     if (object == null) {
//         throw new NullPointerException();
//     }
// 
//     return object;
// }


import android.content.Context;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.util.AttributeSet;
import android.view.InflateException;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import static xdroid.core.ObjectUtils.isEmpty;
import static xdroid.core.ObjectUtils.notNull;
import static xdroid.inflater.BuildConfig.SNAPSHOT;
package xdroid.inflater;





/**
 * @author Oleksii Kropachov (o.kropachov@shamanland.com)
 */
public abstract class AbstractInflater<T, C extends T> {
    private final Class<C> mCompositeClazz;

    protected abstract T createFromTag(Context context, XmlPullParser parser, C parent, AttributeSet attrs) throws XmlPullParserException;

    protected AbstractInflater(Class<C> compositeClazz) {
// Path: lib-core/src/main/java/xdroid/core/ObjectUtils.java
// public static <T> boolean isEmpty(T[] array) {
//     return array == null || array.length == 0;
// }
// 
// Path: lib-core/src/main/java/xdroid/core/ObjectUtils.java
// public static <T> T notNull(T object) {
//     if (object == null) {
//         throw new NullPointerException();
//     }
// 
//     return object;
// }


// Path: lib-inflater/src/main/java/xdroid/inflater/AbstractInflater.java
import android.content.Context;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.util.AttributeSet;
import android.view.InflateException;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException;
import static xdroid.core.ObjectUtils.isEmpty;
import static xdroid.core.ObjectUtils.notNull;
import static xdroid.inflater.BuildConfig.SNAPSHOT;

package xdroid.inflater;





/**
 * @author Oleksii Kropachov (o.kropachov@shamanland.com)
 */
public abstract class AbstractInflater<T, C extends T> {
    private final Class<C> mCompositeClazz;

    protected abstract T createFromTag(Context context, XmlPullParser parser, C parent, AttributeSet attrs) throws XmlPullParserException;

    protected AbstractInflater(Class<C> compositeClazz) {
        mCompositeClazz = notNull(compositeClazz);