Class Convertible
java.lang.Object
groovy.lang.GroovyObjectSupport
org.freeplane.plugin.script.proxy.Convertible
- All Implemented Interfaces:
groovy.lang.GroovyObject
,Convertible
Utility wrapper class around a String that is used to convert node texts to different types.
It's especially important for Formulas.
-
Constructor Summary
ConstructorDescriptionConvertible
(Object object) UsetoString(Object)
to convert to String, i.e.Convertible
(String text) Use thetext
unchanged, i. -
Method Summary
Modifier and TypeMethodDescriptionboolean
For implicit conversion to boolean: true if the text is not empty.int
int
compareTo
(Convertible convertible) boolean
boolean
getBool()
parses the text (case insensitive) as boolean viaBoolean.parseBoolean(String)
.Converts to Calendar if possible.getDate()
Converts to Date if possible.getNum()
Convert to Number.getNum0()
Safe variant ofgetNum()
, throws nothing - on any error (long) 0 is returned.Uses the following priority ranking to determine the type of the text: null Long Double Date StringgetPlain()
Removes HTML markup if necessary.getProperty
(String property) pretend we are a String if we don't provide a property for ourselves.getRaw()
Returns original objectNo conversion.getText()
No conversion.getTo()
Allow statements like this:node['attr_name'].to.num
.getUri()
Converts to URI if possible.int
hashCode()
since equals handles Strings special we have to stick to that here too since equal objects have to have the same hasCode.invokeMethod
(String name, Object args) pretend we are a String if we don't provide a method for ourselves.boolean
isDate()
Type check.boolean
isNum()
Type check.void
setProperty
(String property, Object newValue) toString()
static String
has special conversions for Date and Calendar are converted by org.apache.commons.lang.time.DateFormatUtils.format(date, "yyyy-MM-dd'T'HH:mm:ss.SSSZ"), i.e.Methods inherited from class groovy.lang.GroovyObjectSupport
getMetaClass, setMetaClass
-
Constructor Details
-
Convertible
Use thetext
unchanged, i. e. oesn't evaluate formulas since this would require a calculation rule or NodeModel.- Parameters:
text
- the String to convert.
-
Convertible
UsetoString(Object)
to convert to String, i.e. conversion is done properly.- Parameters:
object
- the Object to convert
-
-
Method Details
-
getNum
Convert to Number. All Java number literals are allowed as described byLong.decode(String)
- Specified by:
getNum
in interfaceConvertible
- Returns:
- a Long or a Double, whatever fits best.
- Throws:
org.freeplane.plugin.script.proxy.ConversionException
- if text is not a number.
-
getNum0
Safe variant ofgetNum()
, throws nothing - on any error (long) 0 is returned.- Specified by:
getNum0
in interfaceConvertible
- Returns:
- a Long or a Double if text is convertible to it or 0 otherwise (even if text is null).
-
getString
No conversion.- Specified by:
getString
in interfaceConvertible
- Returns:
- The original string.
-
getText
No conversion.- Specified by:
getText
in interfaceConvertible
- Returns:
- The original string.
-
getPlain
Removes HTML markup if necessary.- Specified by:
getPlain
in interfaceConvertible
- Returns:
- The result of
HtmlUtils.htmlToPlain(String)
-
getDate
Converts to Date if possible. The valid date patterns are "yyyy-MM-dd HH:dd:ss.SSSZ" with optional '-', ':'. ' ' may be replaced by 'T'.- Specified by:
getDate
in interfaceConvertible
- Returns:
- a Date for the parsed text
- Throws:
org.freeplane.plugin.script.proxy.ConversionException
- if the text is not convertible to a Date.
-
getCalendar
Converts to Calendar if possible. SeegetDate()
for recognized patterns.- Specified by:
getCalendar
in interfaceConvertible
- Returns:
- a Calendar for the parsed text.
- Throws:
org.freeplane.plugin.script.proxy.ConversionException
- if the text is not convertible to a Date.
-
getUri
Converts to URI if possible.- Specified by:
getUri
in interfaceConvertible
- Returns:
- a URI
- Throws:
org.freeplane.plugin.script.proxy.ConversionException
- if the text is not convertible to a URI.
-
getObject
Uses the following priority ranking to determine the type of the text:- null
- Long
- Double
- Date
- String
- Specified by:
getObject
in interfaceConvertible
- Returns:
- Object - the type that fits best.
-
getTo
Allow statements like this:node['attr_name'].to.num
.- Returns:
- this
-
isNum
public boolean isNum()Type check.- Specified by:
isNum
in interfaceConvertible
- Returns:
- true if the text is convertible to number.
-
isDate
public boolean isDate()Type check.- Specified by:
isDate
in interfaceConvertible
- Returns:
- true if the text is convertible to date.
-
getProperty
pretend we are a String if we don't provide a property for ourselves.- Specified by:
getProperty
in interfacegroovy.lang.GroovyObject
- Parameters:
property
- a property ofString
, e. g. "bytes".- Returns:
- the property of the original string.
-
invokeMethod
pretend we are a String if we don't provide a method for ourselves.- Specified by:
invokeMethod
in interfacegroovy.lang.GroovyObject
- Parameters:
name
- method nameargs
- method args- Returns:
- the result of the method invocation on the original string.
-
toString
has special conversions for- Date and Calendar are converted by org.apache.commons.lang.time.DateFormatUtils.format(date, "yyyy-MM-dd'T'HH:mm:ss.SSSZ"), i.e. to GMT timestamps, e.g.: "2010-08-16T22:31:55.123+0000".
- null is "converted" to null
- Parameters:
value
- the object to convert- Returns:
- the converted string
-
compareTo
- Specified by:
compareTo
in interfaceConvertible
-
compareTo
- Specified by:
compareTo
in interfaceConvertible
-
hashCode
public int hashCode()since equals handles Strings special we have to stick to that here too since equal objects have to have the same hasCode. -
equals
-
toString
-
setProperty
- Specified by:
setProperty
in interfacegroovy.lang.GroovyObject
-
getBool
public boolean getBool()parses the text (case insensitive) as boolean viaBoolean.parseBoolean(String)
.- Specified by:
getBool
in interfaceConvertible
- Returns:
- boolean
-
asBoolean
public boolean asBoolean()For implicit conversion to boolean: true if the text is not empty.- Specified by:
asBoolean
in interfaceConvertible
- Returns:
- boolean
-
getRaw
Description copied from interface:Convertible
Returns original object- Specified by:
getRaw
in interfaceConvertible
- Returns:
- the original object
-