Class ComponentDefinitionImpl
- java.lang.Object
-
- org.zkoss.zk.ui.metainfo.impl.ComponentDefinitionImpl
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,ComponentDefinition
- Direct Known Subclasses:
MacroDefinition
,ShadowDefinitionImpl
public class ComponentDefinitionImpl extends java.lang.Object implements ComponentDefinition, java.io.Serializable
An implementation ofComponentDefinition
.Note: it is not thread safe. Thus, it is better to
clone()
and then modifying the cloned instance if you want to change it concurrently.- Author:
- tomyeh
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ComponentDefinitionImpl(LanguageDefinition langdef, PageDefinition pgdef, java.lang.String name, java.lang.Class<? extends Component> cls)
Constructs a native component, i.e., a component implemented by a Java class.ComponentDefinitionImpl(LanguageDefinition langdef, PageDefinition pgdef, java.lang.String name, java.lang.String clsnm)
Constructs a native component, i.e., a component implemented by a Java class.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAnnotation(java.lang.String propName, java.lang.String annotName, java.util.Map<java.lang.String,java.lang.String[]> annotAttrs, Location loc)
Adds an annotation to the specified property of this component definition.void
addCustomAttribute(java.lang.String name, java.lang.String value)
Adds a custom attribute.void
addMold(java.lang.String name, java.lang.String widgetClass)
Adds a mold.void
addProperty(java.lang.String name, java.lang.String value)
Adds a property initializer.void
applyAttributes(Component comp)
Applies the custom attributes defined in this definition to the specified component.void
applyProperties(Component comp)
Applies the properties defined in this definition to the specified component.java.lang.Object
clone()
Clones this component definition.ComponentDefinition
clone(LanguageDefinition langdef, java.lang.String name)
Clones this definition and assigns with the specified language definition and name.java.util.Map<java.lang.String,java.lang.Object>
evalProperties(java.util.Map<java.lang.String,java.lang.Object> propmap, Page owner, Component parent)
Evaluates and retrieves properties to the specified map.AnnotationMap
getAnnotationMap()
Returns the annotation map defined in this definition, or null if no annotation is ever defined.java.lang.String
getApply()
Returns the apply attribute that is a list ofComposer
class names or EL expressions returning classes, class names or composer instances, or null if no apply attribute.java.lang.String
getCurrentDirectory()
Returns the current directory which is used to convert a relative URI to absolute, or null if not available.java.net.URL
getDeclarationURL()
Returns the URL where this component definition is declared, or null if not available.java.lang.String
getDefaultWidgetClass(Component comp)
Returns the default widget class, or null if not available.java.lang.Object
getImplementationClass()
Returns the class (Class) or the class name (String) that implements the component.LanguageDefinition
getLanguageDefinition()
Returns the language definition, or null if it is a temporary definition belonging to a page.java.lang.String
getMacroURI()
Returns the macro URI, or null if not a macro.java.util.Collection<java.lang.String>
getMoldNames()
Returns a readonly collection of the names of the mold.java.lang.String
getName()
Returns name of this component definition (never null).ExValue[]
getParsedApply()
Return the parsed expressions of the apply attribute.java.lang.String
getTextAs()
Returns the property name to which the text enclosed within the element (associated with this component definition) is assigned to.java.lang.String
getWidgetClass(Component comp, java.lang.String moldName)
Returns the widget class associated with specified mold, or the default widget class (ComponentDefinition.getWidgetClass(org.zkoss.zk.ui.Component, java.lang.String)
) if not available.boolean
hasMold(java.lang.String name)
Returns whether the specified mold exists.boolean
isBlankPreserved()
Returns whether to preserve the blank text.boolean
isChildAllowedInTextAs()
Returns if a child is allowed in the text-as area.boolean
isInlineMacro()
Returns whether this is an inline macro.boolean
isInstance(Component comp)
Returns whether a component belongs to this definition.boolean
isMacro()
Returns whether this is a macro component.boolean
isNative()
Returns whether this is used for the native namespace.boolean
isShadowElement()
Returns whether this is a shadow element.Component
newInstance(java.lang.Class<? extends Component> cls)
Creates an component of this definition.Component
newInstance(Page page, java.lang.String clsnm)
Creates an component of this definition.static ComponentDefinition
newMacroDefinition(LanguageDefinition langdef, PageDefinition pgdef, java.lang.String name, java.lang.Class<? extends Component> cls, java.lang.String macroURI, boolean inline)
Constructs a macro component definition.static ComponentDefinition
newNativeDefinition(LanguageDefinition langdef, java.lang.String name, java.lang.Class<? extends Component> cls)
Constructs a native component definition.static ComponentDefinition
newShadowDefinition(LanguageDefinition langdef, PageDefinition pgdef, java.lang.String name, java.lang.Class<? extends Component> cls, java.lang.String templateURI)
Constructs a shadow component definition.java.lang.Class<?>
resolveImplementationClass(Page page, java.lang.String clsnm)
Resolves and returns the class that implements the component.void
setApply(java.lang.String apply)
Sets the apply attribute that is is a list ofComposer
class or EL expressions returning classes, class names or composer instances.void
setBlankPreserved(boolean preserve)
Sets whether to preserve the blank text.void
setChildAllowedInTextAs(boolean allowed)
Sets whether the child component is allowed within the element.void
setCurrentDirectory(java.lang.String curdir)
Sets the current directory which is used to convert a relative URI to absolute.void
setDeclarationURL(java.net.URL url)
Sets the URI where this definition is declared.void
setDefaultWidgetClass(java.lang.String widgetClass)
Sets the default widget class.void
setImplementationClass(java.lang.Class<? extends Component> cls)
Sets the class to implements the component.void
setImplementationClass(java.lang.String clsnm)
Sets the class name to implements the component.void
setTextAs(java.lang.String propnm)
Sets the property name to which the text enclosed within the element (associated with this component definition) is assigned to.java.lang.String
toString()
-
-
-
Constructor Detail
-
ComponentDefinitionImpl
public ComponentDefinitionImpl(LanguageDefinition langdef, PageDefinition pgdef, java.lang.String name, java.lang.Class<? extends Component> cls)
Constructs a native component, i.e., a component implemented by a Java class.Note; if both langdef and pgdef are null, it must be a reserved component.
- Parameters:
langdef
- the language definition. It is null if it is defined as part of a page definitionpgdef
- the page definition. It is null if it is defined as part of a language definition. doesn't belong to any language.cls
- the implementation class.- Since:
- 3.0.0
-
ComponentDefinitionImpl
public ComponentDefinitionImpl(LanguageDefinition langdef, PageDefinition pgdef, java.lang.String name, java.lang.String clsnm)
Constructs a native component, i.e., a component implemented by a Java class.Note; if both langdef and pgdef are null, it must be a reserved component.
- Parameters:
langdef
- the language definition. It is null if it is defined as part of a page definitionpgdef
- the page definition. It is null if it is defined as part of a language definition. doesn't belong to any language.clsnm
- the implementation class.- Since:
- 3.0.8
-
-
Method Detail
-
newShadowDefinition
public static final ComponentDefinition newShadowDefinition(LanguageDefinition langdef, PageDefinition pgdef, java.lang.String name, java.lang.Class<? extends Component> cls, java.lang.String templateURI)
Constructs a shadow component definition. It is the component definition used to implement the shadow element.- Parameters:
langdef
- the language definition. It is null if it is defined as part of a page definitionpgdef
- the page definition. It is null if it is defined as part of a language definition.templateURI
- the URI of the ZUML page to representing this shadow, like macroURI.- Since:
- 8.0.0
-
newMacroDefinition
public static final ComponentDefinition newMacroDefinition(LanguageDefinition langdef, PageDefinition pgdef, java.lang.String name, java.lang.Class<? extends Component> cls, java.lang.String macroURI, boolean inline)
Constructs a macro component definition. It is the component definition used to implement the macros.- Parameters:
langdef
- the language definition. It is null if it is defined as part of a page definitionpgdef
- the page definition. It is null if it is defined as part of a language definition.macroURI
- the URI of the ZUML page to representing this macro.- Since:
- 3.0.0
-
newNativeDefinition
public static final ComponentDefinition newNativeDefinition(LanguageDefinition langdef, java.lang.String name, java.lang.Class<? extends Component> cls)
Constructs a native component definition. It is the component definition used to implement the native namespace.- Parameters:
langdef
- the language definition. It cannot be null.- Since:
- 3.0.0
-
addCustomAttribute
public void addCustomAttribute(java.lang.String name, java.lang.String value)
Adds a custom attribute.
-
addAnnotation
public void addAnnotation(java.lang.String propName, java.lang.String annotName, java.util.Map<java.lang.String,java.lang.String[]> annotAttrs, Location loc)
Adds an annotation to the specified property of this component definition.- Parameters:
propName
- the property name. If null, the annotation is associated with the whole component rather than a particular property.annotName
- the annotation name (never null, nor empty).annotAttrs
- a map of attributes, or null if no attribute at all. The attribute must be in a pair of strings (String name, String value).loc
- the location information of the annotation in the document, or null if not available.- Since:
- 6.0.0
-
getCurrentDirectory
public java.lang.String getCurrentDirectory()
Returns the current directory which is used to convert a relative URI to absolute, or null if not available.
-
setCurrentDirectory
public void setCurrentDirectory(java.lang.String curdir)
Sets the current directory which is used to convert a relative URI to absolute.- Parameters:
curdir
- the current directory; null to ignore.
-
setTextAs
public void setTextAs(java.lang.String propnm)
Sets the property name to which the text enclosed within the element (associated with this component definition) is assigned to.Default: null (means to create a Label component)
- Parameters:
propnm
- the property name. If empty (""), null is assumed.- Since:
- 3.0.0
- See Also:
getTextAs()
-
setBlankPreserved
public void setBlankPreserved(boolean preserve)
Sets whether to preserve the blank text. If false, the blank text (a non-empty string consisting of whitespaces) are ignored. If true, they are converted to a label child.Default: false.
- Since:
- 3.5.0
- See Also:
isBlankPreserved()
-
setChildAllowedInTextAs
public void setChildAllowedInTextAs(boolean allowed)
Sets whether the child component is allowed within the element. For more information, please refer toComponentDefinition.getTextAs()
.- Since:
- 6.0.0
-
setDeclarationURL
public void setDeclarationURL(java.net.URL url)
Sets the URI where this definition is declared.- Parameters:
url
- the URL. If null, it means not available.- Since:
- 3.0.3
-
getLanguageDefinition
public LanguageDefinition getLanguageDefinition()
Description copied from interface:ComponentDefinition
Returns the language definition, or null if it is a temporary definition belonging to a page.- Specified by:
getLanguageDefinition
in interfaceComponentDefinition
-
getName
public java.lang.String getName()
Description copied from interface:ComponentDefinition
Returns name of this component definition (never null). It is unique in the same language,LanguageDefinition
, if it belongs to a language, i.e.,ComponentDefinition.getLanguageDefinition()
is not null.- Specified by:
getName
in interfaceComponentDefinition
-
getTextAs
public java.lang.String getTextAs()
Description copied from interface:ComponentDefinition
Returns the property name to which the text enclosed within the element (associated with this component definition) is assigned to.Default: null (means to create a Label component as the child)
For example, if
ComponentDefinition.getTextAs()
returns null, then a Label component is created as a child ofcomp
with the "Hi Text" value in the following example:<comp> Hi Text </comp>
In other words, it is equivalent to
<comp> <label value="Hi Text"/> </comp>
On the other hand, if
ComponentDefinition.getTextAs()
returns a non-empty string, say, "content", then "Hi Text" is assigned to the content property ofcomp. In other words, it is equivalent to
<comp content="Hi Text"/> </comp>
It is also the same as
<comp> <attribute name="content"/> Hi Text </attribute> </comp>
To enable it, you can declare
text-as
in the component definition in lang.xml or lang-addon.xml:<component> <component-name>html</component-name> <text-as>content</text-as> ...
Notice that it is valid to have XML fragment, including XML elements, within the element. For example,
<html> <ul> <li forEach="apple, orange">${each}</li> </ul> </html>
If the component allows child components, it is better not to try XML fragment as the plain text. And then, it shall return true in
ComponentDefinition.isChildAllowedInTextAs()
. Example,A
.- Specified by:
getTextAs
in interfaceComponentDefinition
- See Also:
ComponentDefinition.isChildAllowedInTextAs()
-
isChildAllowedInTextAs
public boolean isChildAllowedInTextAs()
Description copied from interface:ComponentDefinition
Returns if a child is allowed in the text-as area. It is meaningful only ifComponentDefinition.getTextAs()
is not null. If true, the text enclosed within the element is considered as text only if there is no other XML element.For example, <div> in the following example won't be considered as text. Rather, a div component will be created.
<a> <div>...</div> </a>
Default: false.
- Specified by:
isChildAllowedInTextAs
in interfaceComponentDefinition
- See Also:
ComponentDefinition.getTextAs()
-
isBlankPreserved
public boolean isBlankPreserved()
Description copied from interface:ComponentDefinition
Returns whether to preserve the blank text. If false, the blank text (a non-empty string consisting of whitespaces) are ignored. If true, they are converted to a label child.Default: false.
- Specified by:
isBlankPreserved
in interfaceComponentDefinition
-
isMacro
public boolean isMacro()
Description copied from interface:ComponentDefinition
Returns whether this is a macro component.- Specified by:
isMacro
in interfaceComponentDefinition
- See Also:
ComponentDefinition.getMacroURI()
-
getMacroURI
public java.lang.String getMacroURI()
Description copied from interface:ComponentDefinition
Returns the macro URI, or null if not a macro.- Specified by:
getMacroURI
in interfaceComponentDefinition
-
isInlineMacro
public boolean isInlineMacro()
Description copied from interface:ComponentDefinition
Returns whether this is an inline macro. If false, you have to examineComponentDefinition.isMacro()
to see whether it is a regular macro.- Specified by:
isInlineMacro
in interfaceComponentDefinition
-
isNative
public boolean isNative()
Description copied from interface:ComponentDefinition
Returns whether this is used for the native namespace.- Specified by:
isNative
in interfaceComponentDefinition
- See Also:
LanguageDefinition.getNativeDefinition()
-
getImplementationClass
public java.lang.Object getImplementationClass()
Description copied from interface:ComponentDefinition
Returns the class (Class) or the class name (String) that implements the component.If a string is returned, the real class may depend on which page a component will be created to. Reason: the zscript interpreter is associated with a page and it may define classes upon evaluating a page.
- Specified by:
getImplementationClass
in interfaceComponentDefinition
-
setImplementationClass
public void setImplementationClass(java.lang.Class<? extends Component> cls)
Description copied from interface:ComponentDefinition
Sets the class to implements the component.Note: currently, classes specified in lang.xml or lang-addon.xml must be resolved when loading the files. However, classes specified in a page (by use of class or use attributes) might be resolved later because it might be defined by zscript.
- Specified by:
setImplementationClass
in interfaceComponentDefinition
-
setImplementationClass
public void setImplementationClass(java.lang.String clsnm)
Description copied from interface:ComponentDefinition
Sets the class name to implements the component. UnlikeComponentDefinition.setImplementationClass(Class)
, the class won't be resolved untilComponentInfo.newInstance(org.zkoss.zk.ui.Page, org.zkoss.zk.ui.Component)
orComponentDefinition.getImplementationClass()
is used. In other words, the class can be provided later (thru, usually, zscript).- Specified by:
setImplementationClass
in interfaceComponentDefinition
-
newInstance
public Component newInstance(Page page, java.lang.String clsnm)
Description copied from interface:ComponentDefinition
Creates an component of this definition.Note: this method doesn't invoke
ComponentDefinition.applyProperties(org.zkoss.zk.ui.Component)
. It is caller's job to apply these properties if necessary. Since the value of a property might depend on the component tree, it is better to assign the component with a proper parent before callingComponentDefinition.applyProperties(org.zkoss.zk.ui.Component)
.Similarly, this method doesn't attach the component to the specified page. Developers may or may not add it to a page or a parent.
An application developer can invoke
UiFactory.newComponent(org.zkoss.zk.ui.Page, org.zkoss.zk.ui.Component, org.zkoss.zk.ui.metainfo.ComponentInfo, org.zkoss.zk.ui.Component)
instead ofComponentDefinition.newInstance(org.zkoss.zk.ui.Page, java.lang.String)
, since a deployer might customize the way to create components by providing an implementation ofUiFactory
. In additions, it also invokesComponentDefinition.applyProperties(org.zkoss.zk.ui.Component)
assigning page/parent.On the other hand, this method is 'low-level'. It simply resolves the implementation class by use of
ComponentDefinition.resolveImplementationClass(org.zkoss.zk.ui.Page, java.lang.String)
, and then uses it to create an instance.- Specified by:
newInstance
in interfaceComponentDefinition
- Parameters:
page
- the page that is used to resolve the implementation class. It is used only this definition is associated with a class name byComponentDefinition.setImplementationClass(String)
, or clsnm is not null. Note: this method won't attach the component to the specified page. It can be null ifComponentDefinition.getImplementationClass()
returns a Class instance, and clsnm is null.clsnm
- [optional] If specified, clsnm is used instead ofComponentDefinition.getImplementationClass()
. In other words, it overrides the default class.- Returns:
- the new component (never null)
-
newInstance
public Component newInstance(java.lang.Class<? extends Component> cls)
Description copied from interface:ComponentDefinition
Creates an component of this definition. Refer toComponentDefinition.newInstance(Page, String)
. They are the same except this method accepts the class directly, whileComponentDefinition.newInstance(Page, String)
invokesComponentDefinition.resolveImplementationClass(org.zkoss.zk.ui.Page, java.lang.String)
to resolve the class first.- Specified by:
newInstance
in interfaceComponentDefinition
- Returns:
- the new component (never null)
-
isInstance
public boolean isInstance(Component comp)
Description copied from interface:ComponentDefinition
Returns whether a component belongs to this definition.If
ComponentDefinition.resolveImplementationClass(org.zkoss.zk.ui.Page, java.lang.String)
failed to resolve, true is returned!- Specified by:
isInstance
in interfaceComponentDefinition
-
resolveImplementationClass
public java.lang.Class<?> resolveImplementationClass(Page page, java.lang.String clsnm) throws java.lang.ClassNotFoundException
Description copied from interface:ComponentDefinition
Resolves and returns the class that implements the component.Unlike
ComponentDefinition.getImplementationClass()
, this method will resolve a class name (String) to a class (Class), if necessary. In addition, if the clsnm argument is specified, it is used instead ofComponentDefinition.getImplementationClass()
. In other words, it overrides the default class.- Specified by:
resolveImplementationClass
in interfaceComponentDefinition
- Parameters:
page
- the page to check whether the class is defined in its interpreters. Ignored if null. This method will search the class loader of the current thread. If not found, it will search the interpreters of the specified page (Page.getLoadedInterpreters()
). Note: this method won't attach the component to the specified page.clsnm
- [optional] If specified, clsnm is used instead ofComponentDefinition.getImplementationClass()
. In other words, it overrides the default class.- Throws:
java.lang.ClassNotFoundException
- if the class not found
-
getAnnotationMap
public AnnotationMap getAnnotationMap()
Description copied from interface:ComponentDefinition
Returns the annotation map defined in this definition, or null if no annotation is ever defined.- Specified by:
getAnnotationMap
in interfaceComponentDefinition
-
getApply
public java.lang.String getApply()
Description copied from interface:ComponentDefinition
Returns the apply attribute that is a list ofComposer
class names or EL expressions returning classes, class names or composer instances, or null if no apply attribute.- Specified by:
getApply
in interfaceComponentDefinition
- See Also:
ComponentDefinition.getParsedApply()
-
setApply
public void setApply(java.lang.String apply)
Description copied from interface:ComponentDefinition
Sets the apply attribute that is is a list ofComposer
class or EL expressions returning classes, class names or composer instances.- Specified by:
setApply
in interfaceComponentDefinition
- Parameters:
apply
- the attribute this is a list ofComposer
class or EL expressions El expressions are allowed, but self means the parent, if available; or page, if no parent at all. (Note: the component is not created yet when the apply attribute is evaluated).
-
getParsedApply
public ExValue[] getParsedApply()
Description copied from interface:ComponentDefinition
Return the parsed expressions of the apply attribute.- Specified by:
getParsedApply
in interfaceComponentDefinition
- See Also:
ComponentDefinition.getApply()
-
getDeclarationURL
public java.net.URL getDeclarationURL()
Description copied from interface:ComponentDefinition
Returns the URL where this component definition is declared, or null if not available.- Specified by:
getDeclarationURL
in interfaceComponentDefinition
-
addProperty
public void addProperty(java.lang.String name, java.lang.String value)
Description copied from interface:ComponentDefinition
Adds a property initializer. It will initialize a component when created with is definition.- Specified by:
addProperty
in interfaceComponentDefinition
- Parameters:
name
- the member name. The component must have a valid setter for it.value
- the value. It might contain expressions (${}).
-
applyProperties
public void applyProperties(Component comp)
Description copied from interface:ComponentDefinition
Applies the properties defined in this definition to the specified component.Note: annotations are applied to the component when a component is created. So, this method doesn't and need not to copy them.
Also notice that, since 5.0.7, custom-attributes are applied automatically in the constructor of
AbstractComponent(boolean)
(by invokingComponentDefinition.applyAttributes(org.zkoss.zk.ui.Component)
, so they are always available no matter this method is called or not.- Specified by:
applyProperties
in interfaceComponentDefinition
-
applyAttributes
public void applyAttributes(Component comp)
Description copied from interface:ComponentDefinition
Applies the custom attributes defined in this definition to the specified component.It is called automatically in
AbstractComponent(boolean)
, so you rarely need to invoke this method.- Specified by:
applyAttributes
in interfaceComponentDefinition
-
evalProperties
public java.util.Map<java.lang.String,java.lang.Object> evalProperties(java.util.Map<java.lang.String,java.lang.Object> propmap, Page owner, Component parent)
Description copied from interface:ComponentDefinition
Evaluates and retrieves properties to the specified map.- Specified by:
evalProperties
in interfaceComponentDefinition
- Parameters:
propmap
- the map to store the retrieved properties. If null, a HashMap instance is created. (String name, Object value).owner
- the owner page; used if parent is nullparent
- the parent
-
addMold
public void addMold(java.lang.String name, java.lang.String widgetClass)
Description copied from interface:ComponentDefinition
Adds a mold.- Specified by:
addMold
in interfaceComponentDefinition
- Parameters:
name
- the mold name.widgetClass
- the widget class (a.k.a., name). Ignored if null.
-
hasMold
public boolean hasMold(java.lang.String name)
Description copied from interface:ComponentDefinition
Returns whether the specified mold exists.- Specified by:
hasMold
in interfaceComponentDefinition
-
getMoldNames
public java.util.Collection<java.lang.String> getMoldNames()
Description copied from interface:ComponentDefinition
Returns a readonly collection of the names of the mold.- Specified by:
getMoldNames
in interfaceComponentDefinition
-
getWidgetClass
public java.lang.String getWidgetClass(Component comp, java.lang.String moldName)
Description copied from interface:ComponentDefinition
Returns the widget class associated with specified mold, or the default widget class (ComponentDefinition.getWidgetClass(org.zkoss.zk.ui.Component, java.lang.String)
) if not available. The returned widget class includes the package name (JavaScript class).- Specified by:
getWidgetClass
in interfaceComponentDefinition
- Parameters:
comp
- the component used to evaluate EL expression, if any, when retrieving the widget class. Ignored if null.moldName
- the mold name
-
getDefaultWidgetClass
public java.lang.String getDefaultWidgetClass(Component comp)
Description copied from interface:ComponentDefinition
Returns the default widget class, or null if not available.- Specified by:
getDefaultWidgetClass
in interfaceComponentDefinition
- Parameters:
comp
- the component used to evaluate EL expression, if any, when retrieving the widget class. Ignored if null.
-
setDefaultWidgetClass
public void setDefaultWidgetClass(java.lang.String widgetClass)
Description copied from interface:ComponentDefinition
Sets the default widget class.- Specified by:
setDefaultWidgetClass
in interfaceComponentDefinition
- Parameters:
widgetClass
- the name of the widget class (JavaScript class), including the package name.
-
isShadowElement
public boolean isShadowElement()
Description copied from interface:ComponentDefinition
Returns whether this is a shadow element.- Specified by:
isShadowElement
in interfaceComponentDefinition
- See Also:
LanguageDefinition.getShadowDefinition(java.lang.String)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
clone
public java.lang.Object clone()
Description copied from interface:ComponentDefinition
Clones this component definition. You rarely invoke this method directly. Rather, useComponentDefinition.clone(LanguageDefinition, String)
.Note: the caller usually has to change the component name, and then assign to a language definition (
LanguageDefinition
) or a page definition (PageDefinition
).- Specified by:
clone
in interfaceComponentDefinition
- Overrides:
clone
in classjava.lang.Object
- Returns:
- the new component definition by cloning from this definition.
-
clone
public ComponentDefinition clone(LanguageDefinition langdef, java.lang.String name)
Description copied from interface:ComponentDefinition
Clones this definition and assigns with the specified language definition and name.- Specified by:
clone
in interfaceComponentDefinition
-
-