/******************************************************************************* * Copyright (c) 2008 Oracle Corporation. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Cameron Bateman - initial API and implementation *******************************************************************************/ package org.eclipse.jst.jsf.designtime.internal.view.mapping.mappers; import org.eclipse.jst.jsf.common.runtime.internal.model.component.ComponentFactory; import org.eclipse.jst.jsf.common.runtime.internal.model.component.ComponentInfo; import org.eclipse.jst.jsf.common.runtime.internal.model.decorator.ConverterDecorator; import org.eclipse.jst.jsf.common.runtime.internal.model.decorator.ConverterTypeInfo; import org.eclipse.jst.jsf.designtime.internal.view.mapping.CustomViewMappingAdapter; import org.w3c.dom.Attr; import org.w3c.dom.Element; /** * Default mapper for value holders. * * @author cbateman * */ public class ValueHolderAttributeMapper extends CustomViewMappingAdapter { @Override public void doAttributeActions(ComponentInfo bestComponent, Element srcElement, Attr attr) { final String name = attr.getNodeName(); if ("converter".equals(name) //$NON-NLS-1$ && bestComponent.getComponentTypeInfo().isInstanceOf( ComponentFactory.INTERFACE_VALUEHOLDER)) { final String value = attr.getValue(); if (value != null) { ConverterTypeInfo typeInfo = null; if (!value.startsWith("#{")) //$NON-NLS-1$ { typeInfo = new ConverterTypeInfo(null, value); } else { typeInfo = ConverterTypeInfo.UNKNOWN; } ConverterDecorator decorator = new ConverterDecorator( bestComponent, typeInfo); bestComponent.addDecorator(decorator, ComponentFactory.CONVERTER); } } } }