blob: 954167e59773518d65893b4d1b6345fc75f8bcbf [file] [log] [blame]
/*******************************************************************************
* 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;
import org.eclipse.jst.jsf.common.runtime.internal.model.component.ComponentInfo;
import org.w3c.dom.Attr;
import org.w3c.dom.Element;
/**
* A custom view mapper to map from elements and attributes to view objects and
* properties.
*
* @author cbateman
*
*/
public interface ICustomViewMapper
{
/**
* @param uri
* @param srcElement
* @param attr
* @return the name/value of the component property or null if no mapping.
*/
PropertyMapping mapToComponentProperty(final String uri,
final Element srcElement, final Attr attr);
/**
* Allows a mapper to make updates to a component based on its attribute.
* May choose to do nothing.
*
* @param bestComponent
* @param srcElement
* @param attr
*/
void doAttributeActions(ComponentInfo bestComponent, Element srcElement,
Attr attr);
/**
* The name/value pair of a component property mapping.
*
* @author cbateman
*
*/
public static class PropertyMapping
{
private final String _name;
private final Object _property;
/**
* @param name
* @param property
*/
public PropertyMapping(final String name, final Object property)
{
_name = name;
_property = property;
}
/**
* @return the property name
*/
public final String getName()
{
return _name;
}
/**
* @return the property value
*/
public final Object getProperty()
{
return _property;
}
}
}