class AbstractResourceDescriptor extends BaseObjectModel implements ResourceDescriptor {

    private <T extends Annotation> T getAnnotation(Class<?> clazz, Class<T>[] annotationClasses) {
        T annotation = null;
        for (int i = 0; annotation == null && i < annotationClasses.length; i++) {
            annotation = clazz.getAnnotation(annotationClasses[i]);
        }
        return annotation;
    }

    public  AbstractResourceDescriptor(Class<?> resourceClass);
    public  AbstractResourceDescriptor(String path, Class<?> resourceClass);
    public  AbstractResourceDescriptor(Object resource);
    public  AbstractResourceDescriptor(String path, Object resource);

}