package org.zend.php.zendserver.deployment.core.descriptor; import org.zend.php.zendserver.deployment.core.internal.descriptor.Feature; /** * Basic model element. * */ public interface IModelObject { /** * Get notified on this object changes * * @param listener to be notified about changes */ void addListener(IDescriptorChangeListener listener); /** * Remove listener * * @param listener to remove */ void removeListener(IDescriptorChangeListener listener); /** * Sets model property to new value. * * @param key property name * @param value new value */ void set(Feature key, String value); /** * Sets model property to new boolean value. * * @param key property name * @param value new value */ void set(Feature key, boolean value); /** * Retrieves model's property value. * * @param key property name * @return value, or null if value is not set */ String get(Feature key); /** * Retrieves model's boolean property value. * * @param key property name * @return value, or false if value is not set */ boolean getBoolean(Feature key); Feature[] getPropertyNames(); public void setParent(IModelContainer parent); int getOffset(Feature f); void setOffset(Feature f, int intValue); /** * @return <code>true</code> if children nodes should be added before any * property, otherwise returns <code>false</code> */ boolean isChildrenFirst(); }