Class Var
- Direct Known Subclasses:
- SimpleVar,- StreamedVar
 Vars are used to convert simple variables of the form VarResolver class.
 
Subclasses must implement one of the following two methods:
- resolve(VarResolverSession,String)- For simple vars.
- resolveTo(VarResolverSession,Writer,String)- For streamed vars.
 Subclasses MUST implement a no-arg constructor so that class names can be passed to the
 VarResolver.Builder.vars(Class...) method.
 
They must also be thread safe!
 
Two direct abstract subclasses are provided to differentiated between simple and streamed vars:
See Also:
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected booleanReturns whether nested variables are supported by this variable.protected booleanReturns whether variables in the resolved contents of this variable should also be resolved.protected booleancanResolve(VarResolverSession session) Returnstrue if this variable can be resolved in the specified session.protected StringdoResolve(VarResolverSession session, String arg) The method called fromVarResolver.protected StringgetName()Return the name of this variable.abstract Stringresolve(VarResolverSession session, String arg) The interface that needs to be implemented for subclasses ofSimpleVar.abstract voidresolveTo(VarResolverSession session, Writer w, String arg) The interface that needs to be implemented for subclasses ofStreamedVar.
- 
Constructor Details- 
VarConstructor.- Parameters:
- name- The name of this variable.
- streamed- Whether this variable is 'streamed', meaning the- resolveTo(VarResolverSession, Writer, String)method is implemented. If- false , then the- resolve(VarResolverSession, String)method is implemented.
 
 
- 
- 
Method Details- 
getNameReturn the name of this variable.For example, the system property variable returns "S" since the format of the variable is"$S{system.property}" .- Returns:
- The name of this variable.
 
- 
allowNestedReturns whether nested variables are supported by this variable.For example, in "$X{$Y{xxx}}" , $Y is a nested variable that will be resolved if this method returnstrue .The default implementation of this method always returns true . Subclasses can override this method to override the default behavior.- Returns:
- true if nested variables are supported by this variable.
 
- 
allowRecurseReturns whether variables in the resolved contents of this variable should also be resolved.For example, if "$X{xxx}" resolves to"$Y{xxx}" , then the $Y variable will be recursively resolved if this method returnstrue .The default implementation of this method always returns true .
 Subclasses can override this method to override the default behavior.As a general rule, variables that resolve user-entered data should not be recursively resolved as this may cause a security hole.- Returns:
- true if resolved variables should be recursively resolved.
 
- 
canResolveReturnstrue if this variable can be resolved in the specified session.For example, some variable cannot resolve unless specific context or session objects are available. - Parameters:
- session- The current session.
- Returns:
- true if this variable can be resolved in the specified session.
 
- 
doResolveThe method called fromVarResolver.Can be overridden to intercept the request and do special handling. 
 Default implementation simply calls resolve(String).- Parameters:
- session- The session object used for a single instance of a string resolution.
- arg- The inside argument of the variable.
- Returns:
- The resolved value.
- Throws:
- Exception- Any exception can be thrown.
 
- 
resolveThe interface that needs to be implemented for subclasses ofSimpleVar.- Parameters:
- session- The session object used for a single instance of a var resolution.
- arg- The inside argument of the variable.
- Returns:
- The resolved value.
- Throws:
- Exception- Any exception can be thrown.
 
- 
resolveToThe interface that needs to be implemented for subclasses ofStreamedVar.- Parameters:
- session- The session object used for a single instance of a var resolution.
- w- The writer to send the resolved value to.
- arg- The inside argument of the variable.
- Throws:
- Exception- Any exception can be thrown.
 
 
-