/*
 * ICESOFT COMMERCIAL SOURCE CODE LICENSE V 1.1
 *
 * The contents of this file are subject to the ICEsoft Commercial Source
 * Code License Agreement V1.1 (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.icesoft.com/license/commercial-source-v1.1.html
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 * License for the specific language governing rights and limitations under
 * the License.
 *
 * Copyright 2009-2015 ICEsoft Technologies Canada, Corp. All Rights Reserved.
 */

package com.icesoft.faces.impl.renderkit.xhtml;

import javax.faces.component.StateHelper;
import javax.faces.component.UIOutput;
import javax.el.ValueExpression;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

public class XhtmlComponent extends UIOutput {
    private static final String setVEKey = XhtmlComponent.class.getName()+".setVE";

    public void setValueExpression(String name, ValueExpression expression) {
        StateHelper sh = getStateHelper();
        Set<String> setVE = (Set<String>) sh.get(setVEKey);
        if (setVE == null) {
            setVE = new HashSet<String>();
        }
        setVE.add(name);
        sh.put(setVEKey, setVE);
        super.setValueExpression(name, expression);
    }

    public Set<String> getValueExpressions() {
        StateHelper sh = getStateHelper();
        Set<String> setVE = (Set<String>) sh.get(setVEKey);
        return (setVE != null) ? setVE : Collections.<String>emptySet();
    }
}
