/*
 * Copyright 2004-2011 the Seasar Foundation and the Others.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
 * either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */
package org.seasar.teeda.core.util;

import javax.faces.application.Application;
import javax.faces.el.PropertyResolver;

/**
 * @author shot
 */
public class PropertyResolverUtil {

    private PropertyResolverUtil() {
    }

    public static Object getValue(Application application, Object base,
            Object property, Integer index) {
        PropertyResolver resolver = application.getPropertyResolver();
        return (index == null) ? resolver.getValue(base, property) : resolver
                .getValue(base, index.intValue());
    }

    public static boolean isReadOnly(Application application, Object base,
            Object property, Integer index) {
        PropertyResolver resolver = application.getPropertyResolver();
        return (index == null) ? resolver.isReadOnly(base, property) : resolver
                .isReadOnly(base, index.intValue());
    }

    public static Class getType(Application application, Object base,
            Object property, Integer index) {
        PropertyResolver resolver = application.getPropertyResolver();
        return (index == null) ? resolver.getType(base, property) : resolver
                .getType(base, index.intValue());
    }

}
