/* * Ext GWT - Ext for GWT * Copyright(c) 2007-2009, Ext JS, LLC. * licensing@extjs.com * * http://extjs.com/license */ package com.extjs.gxt.ui.client.data; import java.util.Collection; import java.util.Map; /** * Primary interface for GXT model objects without support events. Models * support a form of "introspection" as property names and values can be * retrieved at runtime. * * <p/> * For models with event support see {@link Model}. * * <p/> * For a default implementation see {@link BaseModelData}. */ public interface ModelData { /** * Returns the named property from this model instance. * * @param property the property name * @return the value */ public <X> X get(String property); /** * Returns the model's properties and values as a map. * * <p/> * Changes to the returned collection should not mutate this model instance. * * @return the properties and values */ public Map<String, Object> getProperties(); /** * Returns an collection of the model's property names. * * <p/> * The collection should be a snapshot of the property names that the model * represents. * * <p/> * Changes to the returned collection should not mutate this model instance. */ public Collection<String> getPropertyNames(); /** * Removes the named property from this model instance. * * @param property the property name * @return the old value for the property */ public <X> X remove(String property); /** * Sets a property. * * @param property the property name * @param value property value * @return the old value for the property */ public <X> X set(String property, X value); }