Package helma.framework.core
Class Skin
- java.lang.Object
-
- helma.framework.core.Skin
-
public final class Skin extends java.lang.Object
This represents a Helma skin, i.e. a template created from containing Macro tags that will be dynamically evaluated.. It uses the request path array from the RequestEvaluator object to resolve Macro handlers by type name.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
Skin.Macro
-
Constructor Summary
Constructors Constructor Description Skin(char[] content, int length, Application app)
Create a skin without any restrictions on the macros from a char array.Skin(java.lang.String content, Application app)
Create a skin without any restrictions on which macros are allowed to be called from itSkin(java.lang.String content, Application app, java.util.HashSet sandbox)
Create a skin with a sandbox which contains the names of macros allowed to be called
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
allowMacro(java.lang.String macroname)
Adds a macro to the list of allowed macros.boolean
containsMacro(java.lang.String macroname)
Check if a certain macro is present in this skin.java.lang.String
getExtends()
Skin.Macro[]
getMacros()
Return the list of macros found by the parserstatic Skin
getSkin(Resource res, Application app)
java.lang.String
getSource()
Get the raw source text this skin was parsed fromSkin
getSubskin(java.lang.String name)
Get a subskin by namejava.lang.String[]
getSubskinNames()
Return an array of subskin names defined in this skinboolean
hasMainskin()
Check if this skin has a main skin, as opposed to consisting just of subskinsboolean
hasSubskin(java.lang.String name)
Check if this skin contains a subskin with the given namevoid
render(RequestEvaluator reval, java.lang.Object thisObject, java.lang.Object paramObject)
Render this skinjava.lang.String
renderAsString(RequestEvaluator reval, java.lang.Object thisObject, java.lang.Object paramObject)
Render this skin and return it as string
-
-
-
Constructor Detail
-
Skin
public Skin(java.lang.String content, Application app)
Create a skin without any restrictions on which macros are allowed to be called from it
-
Skin
public Skin(java.lang.String content, Application app, java.util.HashSet sandbox)
Create a skin with a sandbox which contains the names of macros allowed to be called
-
Skin
public Skin(char[] content, int length, Application app)
Create a skin without any restrictions on the macros from a char array.
-
-
Method Detail
-
getSkin
public static Skin getSkin(Resource res, Application app) throws java.io.IOException
- Throws:
java.io.IOException
-
getMacros
public Skin.Macro[] getMacros()
Return the list of macros found by the parser- Returns:
- the list of macros
-
hasMainskin
public boolean hasMainskin()
Check if this skin has a main skin, as opposed to consisting just of subskins- Returns:
- true if this skin contains a main skin
-
hasSubskin
public boolean hasSubskin(java.lang.String name)
Check if this skin contains a subskin with the given name- Parameters:
name
- a subskin name- Returns:
- true if the given subskin exists
-
getSubskin
public Skin getSubskin(java.lang.String name)
Get a subskin by name- Parameters:
name
- the subskin name- Returns:
- the subskin
-
getSubskinNames
public java.lang.String[] getSubskinNames()
Return an array of subskin names defined in this skin- Returns:
- a string array containing this skin's substrings
-
getExtends
public java.lang.String getExtends()
-
getSource
public java.lang.String getSource()
Get the raw source text this skin was parsed from
-
renderAsString
public java.lang.String renderAsString(RequestEvaluator reval, java.lang.Object thisObject, java.lang.Object paramObject) throws RedirectException, java.io.UnsupportedEncodingException
Render this skin and return it as string- Throws:
RedirectException
java.io.UnsupportedEncodingException
-
render
public void render(RequestEvaluator reval, java.lang.Object thisObject, java.lang.Object paramObject) throws RedirectException, java.io.UnsupportedEncodingException
Render this skin- Throws:
RedirectException
java.io.UnsupportedEncodingException
-
containsMacro
public boolean containsMacro(java.lang.String macroname)
Check if a certain macro is present in this skin. The macro name is in handler.name notation
-
allowMacro
public void allowMacro(java.lang.String macroname)
Adds a macro to the list of allowed macros. The macro is in handler.name notation.
-
-