package net.ranides.assira.reflection.impl;

import net.ranides.assira.reflection.*;

/**
 * This is representation of NULL IClass. It is sentinel object.
 *
 * @param <T> T
 */
@SuppressWarnings("rawtypes")
public class NClass<T> extends AClass<T> {

    private static final long serialVersionUID = 1L;

    private static final NClass THIS = new NClass();

    private NClass() {
        super(IContext.getDefault());
    }

    protected Object readResolve() {
        return THIS;
    }

    /**
     * Internal method used to initialize by IClass.NULL
     * @return IClass
     */
    public static IClass getInstance() {
        return THIS;
    }
}
