All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sun.faces.mgbean.ManagedBeanInfo Maven / Gradle / Ivy

Go to download

Jakarta Faces defines an MVC framework for building user interfaces for web applications, including UI components, state management, event handing, input validation, page navigation, and support for internationalization and accessibility.

There is a newer version: 4.1.0
Show newest version
/*
 * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0, which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception, which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 */

package com.sun.faces.mgbean;

import java.util.List;
import java.util.Map;

import com.sun.faces.el.ELUtils;

/**
 * This class represents the parsed metadata for a managed-bean
 * entry within a faces-config.xml.
 */
public class ManagedBeanInfo {

    public static final String NULL_VALUE = "null_value";
    
    private String name;
    private String className;
    private String beanScope;
    boolean eager;
    private ManagedBeanInfo.MapEntry mapEntry;
    private ManagedBeanInfo.ListEntry listEntry;
    private List managedProperties;
    private Map descriptions;


    // ------------------------------------------------------------ Constructors


    public ManagedBeanInfo(String name,
                           String className,
                           String beanScope,
                           ManagedBeanInfo.MapEntry mapEntry,
                           ManagedBeanInfo.ListEntry listEntry,
                           List managedProperties,
                           Map descriptions) {

        this(name,
             className,
             beanScope,
             false,
             mapEntry,
             listEntry,
             managedProperties,
             descriptions);

    }


    public ManagedBeanInfo(String name,
                           String className,
                           String beanScope,
                           boolean eager,
                           ManagedBeanInfo.MapEntry mapEntry,
                           ManagedBeanInfo.ListEntry listEntry,
                           List managedProperties,
                           Map descriptions) {

        this.name = name;
        this.className = className;
        this.beanScope = beanScope;
        this.eager = eager;
        this.mapEntry = mapEntry;
        this.listEntry = listEntry;
        this.managedProperties = managedProperties;
        this.descriptions = descriptions;

        if (eager && !ELUtils.Scope.APPLICATION.toString().equals(beanScope)) {
            this.eager = false;
        }
        
    }


    // ---------------------------------------------------------- Public Methods


    public String getName() {
        return name;
    }

    public String getClassName() {
        return className;
    }

    public String getScope() {
        return beanScope;
    }

    public boolean isEager() {
        return eager;
    }

    public boolean hasMapEntry() {
        return (mapEntry != null);
    }

    public MapEntry getMapEntry() {
        return mapEntry;
    }

    public boolean hasListEntry() {
        return (listEntry != null);
    }

    public ListEntry getListEntry() {
        return listEntry;
    }

    public boolean hasManagedProperties() {
        return (managedProperties != null);
    }

    public List getManagedProperties() {
        return managedProperties;    
    }

    public Map getDescriptions() {
        return descriptions;
    }

    public ManagedBeanInfo clone(String name,
                                 String scope,
                                 boolean eager,
                                 ManagedBeanInfo source) {

        return new ManagedBeanInfo(name,
                                   source.className,
                                   scope,
                                   eager,
                                   source.mapEntry,
                                   source.listEntry,
                                   source.managedProperties,
                                   source.descriptions);

    }

    
    // ----------------------------------------------------------- Inner Classes


    public static class MapEntry {

        private String keyClass;
        private String valueClass;
        private Map entries;

        public MapEntry(String keyClass,
                        String valueClass,
                        Map entries) {

            this.keyClass = keyClass;
            this.valueClass = valueClass;
            this.entries = entries;

        }

        public String getKeyClass() {
            return keyClass;
        }

        public String getValueClass() {
            return valueClass;
        }

        public Map getEntries() {
            return entries;
        }

    }


    public static class ListEntry {

        private String valueClass;
        private List values;

        public ListEntry(String valueClass,
                         List values) {

            this.valueClass = valueClass;
            this.values = values;

        }

        public String getValueClass() {
            return valueClass;
        }

        public List getValues() {
            return values;
        }

    }


    public static class ManagedProperty {

        private String propertyAlias;
        private String propertyName;
        private String propertyClass;
        private String propertyValue;
        private ManagedBeanInfo.MapEntry mapEntry;
        private ManagedBeanInfo.ListEntry listEntry;

        public ManagedProperty(String propertyName,
                               String propertyClass,
                               String propertyValue,
                               ManagedBeanInfo.MapEntry mapEntry,
                               ManagedBeanInfo.ListEntry listEntry) {

            this.propertyName = propertyName;
            this.propertyClass = propertyClass;
            this.propertyValue = propertyValue;
            this.mapEntry = mapEntry;
            this.listEntry = listEntry;

        }

        public ManagedProperty(String propertyAlias,
                               String propertyName,
                               String propertyClass,
                               String propertyValue,
                               ManagedBeanInfo.MapEntry mapEntry,
                               ManagedBeanInfo.ListEntry listEntry) {

            this(propertyName, propertyClass, propertyValue, mapEntry, listEntry);
            this.propertyAlias = propertyAlias;

        }

        public String getPropertyAlias() {
            return propertyAlias;
        }

        public String getPropertyName() {
            return propertyName;
        }

        public String getPropertyClass() {
            return propertyClass;
        }

        public boolean hasPropertyValue() {
            return (propertyValue != null);
        }

        public String getPropertyValue() {
            return propertyValue;
        }                

        public boolean hasMapEntry() {
            return (mapEntry != null);
        }

        public ManagedBeanInfo.MapEntry getMapEntry() {
            return mapEntry;
        }

        public boolean hasListEntry() {
            return (listEntry != null);
        }

        public ManagedBeanInfo.ListEntry getListEntry() {
            return listEntry;
        }

    }
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy