Package org.zkoss.zk.ui.metainfo
Class Property
- java.lang.Object
-
- org.zkoss.zk.ui.metainfo.Property
-
- All Implemented Interfaces:
java.io.Serializable,Condition
public class Property extends java.lang.ObjectInformation about how to initialize a property (a.k.a., a field of a component). There are two kind of properties: one is a String instance (either a string value or an expression), and the other is aNativeInfoinstance. The later is also called the native content.- Author:
- tomyeh
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description Property(EvaluatorRef evalr, java.lang.String name, java.lang.String value, ConditionImpl cond)Constructs a property with a class that is known in advance.Property(EvaluatorRef evalr, java.lang.String name, NativeInfo value, ConditionImpl cond)Constructs a property with the native content.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidassign(Component comp)Assigns the value of this member to the specified component.static voidassign(Component comp, java.lang.String name, java.lang.String value)Assigns a property.ConditionImplgetCondition()Returns the effectiveness condition.EvaluatorRefgetEvaluatorRef()Returns the evaluator reference.java.lang.StringgetName()Returns the name of the property.java.lang.StringgetRawValue()Returns the raw value of the property.java.lang.ObjectgetValue(Component comp)Evaluates the value to an Object.java.lang.ObjectgetValue(Page page)Evaluates the value to an Object.booleanisEffective(Component comp)Used to evaluate whether it is effective.booleanisEffective(Page page)Used to evaluate whether it is effective.booleanisNativeInfo()Returns whether the property is held byNativeInfo.static java.lang.reflect.MethodresolveMethod(java.lang.Class cls, java.lang.String name)Resolves the method for the specified property, or null ifDynamicPropertied.setDynamicProperty(java.lang.String, java.lang.Object)shall be used instead.voidsetCondition(ConditionImpl cond)Sets the effectiveness condition.voidsetRawValue(java.lang.String value)Sets the raw value of the property.java.lang.StringtoString()booleanwithCondition()Tests if the condition is set
-
-
-
Constructor Detail
-
Property
public Property(EvaluatorRef evalr, java.lang.String name, java.lang.String value, ConditionImpl cond)
Constructs a property with a class that is known in advance.- Throws:
java.lang.IllegalArgumentException- if name is null
-
Property
public Property(EvaluatorRef evalr, java.lang.String name, NativeInfo value, ConditionImpl cond)
Constructs a property with the native content. The native content is represented byNativeInfo, i.e., a XML fragment (a.k.a., a tree ofComponentInfo.- Since:
- 3.5.0
-
-
Method Detail
-
getName
public java.lang.String getName()
Returns the name of the property.
-
getRawValue
public java.lang.String getRawValue()
Returns the raw value of the property. Note: it is the original value without evaluation. In other words, it may contain EL expressions.- Throws:
java.lang.UnsupportedOperationException- if value is the native content, i.e., it is constructed by use ofProperty(EvaluatorRef, String, NativeInfo, ConditionImpl).- Since:
- 3.0.0
-
isNativeInfo
public boolean isNativeInfo()
Returns whether the property is held byNativeInfo.- Returns:
- Since:
- 10.0.0
-
setRawValue
public void setRawValue(java.lang.String value)
Sets the raw value of the property.- Throws:
java.lang.UnsupportedOperationException- if value is the native content, i.e., it is constructed by use ofProperty(EvaluatorRef, String, NativeInfo, ConditionImpl).- Since:
- 3.0.0
-
getValue
public java.lang.Object getValue(Component comp)
Evaluates the value to an Object. Note: it does NOT callCondition.isEffective(org.zkoss.zk.ui.Component)and it doesn't coerce the result (i.e., Object.class is assumed).
-
getValue
public java.lang.Object getValue(Page page)
Evaluates the value to an Object. Note: it does NOT callCondition.isEffective(org.zkoss.zk.ui.Component)and it doesn't coerce the result (i.e., Object.class is assumed).- Throws:
java.lang.UnsupportedOperationException- if value is the native content, i.e., it is constructed by use ofProperty(EvaluatorRef, String, NativeInfo, ConditionImpl).
-
assign
public void assign(Component comp)
Assigns the value of this member to the specified component.Note: this method does nothing if
Condition.isEffective(org.zkoss.zk.ui.Component)returns false.
-
assign
public static final void assign(Component comp, java.lang.String name, java.lang.String value)
Assigns a property.Don't use the reflection directly since this method searches more signatures.
- Throws:
PropertyNotFoundException- if the property is not found, i.e., no corresponding method andDynamicPropertiednot implemented.UiException- if fail to assign- Since:
- 3.5.0
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
resolveMethod
public static final java.lang.reflect.Method resolveMethod(java.lang.Class cls, java.lang.String name) throws PropertyNotFoundExceptionResolves the method for the specified property, or null ifDynamicPropertied.setDynamicProperty(java.lang.String, java.lang.Object)shall be used instead.Use this method to retrieve the method when you want to assign a value to a component's property.
Don't use the reflection directly since this method searches more signatures.
- Parameters:
name- the property name, such as "title".- Throws:
PropertyNotFoundException- if the property is not found, i.e., no corresponding method andDynamicPropertiednot implemented.- Since:
- 3.5.0
-
getEvaluatorRef
public EvaluatorRef getEvaluatorRef()
Returns the evaluator reference.
-
getCondition
public ConditionImpl getCondition()
Returns the effectiveness condition.
-
setCondition
public void setCondition(ConditionImpl cond)
Sets the effectiveness condition.
-
withCondition
public boolean withCondition()
Tests if the condition is set
-
isEffective
public boolean isEffective(Component comp)
Description copied from interface:ConditionUsed to evaluate whether it is effective.- Specified by:
isEffectivein interfaceCondition- Parameters:
comp- used as the self variable. Ignored if null.
-
isEffective
public boolean isEffective(Page page)
Description copied from interface:ConditionUsed to evaluate whether it is effective.- Specified by:
isEffectivein interfaceCondition- Parameters:
page- used as the self variable. Ignored if null.
-
-