Class PatternSpec
- All Implemented Interfaces:
Proxy
GPatternSpec
struct is the ‘compiled’ form of a glob-style pattern.
The GLib.patternMatchSimple(java.lang.String, java.lang.String)
and match(long, java.lang.String, java.lang.String)
functions
match a string against a pattern containing *
and ?
wildcards with similar
semantics as the standard glob()
function: *
matches an arbitrary,
possibly empty, string, ?
matches an arbitrary character.
Note that in contrast to glob()
), the /
character can be
matched by the wildcards, there are no […]
character ranges and *
and ?
can not be escaped to include them literally in a pattern.
When multiple strings must be matched against the same pattern, it is better
to compile the pattern to a GLib.PatternSpec
using
PatternSpec(java.lang.String)
and use matchString(java.lang.String)
instead of GLib.patternMatchSimple(java.lang.String, java.lang.String)
. This avoids the overhead of repeated
pattern compilation.
-
Constructor Summary
ConstructorDescriptionPatternSpec
(MemorySegment address) Create a PatternSpec proxy instance for the provided memory address.PatternSpec
(String pattern) Compiles a pattern to aGLib.PatternSpec
. -
Method Summary
Modifier and TypeMethodDescriptioncopy()
Copies this PatternSpec in a newGLib.PatternSpec
.boolean
equal
(PatternSpec pspec2) Compares two compiled pattern specs and returns whether they will match the same set of strings.void
free()
Frees the memory allocated for theGLib.PatternSpec
.static Type
getType()
Get the GType of the PatternSpec classboolean
Matches a string against a compiled pattern.boolean
matchString
(String string) Matches a string against a compiled pattern.Methods inherited from class io.github.jwharm.javagi.base.ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
PatternSpec
Create a PatternSpec proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
PatternSpec
Compiles a pattern to aGLib.PatternSpec
.- Parameters:
pattern
- a zero-terminated UTF-8 encoded string
-
-
Method Details
-
getType
-
copy
Copies this PatternSpec in a newGLib.PatternSpec
.- Returns:
- a copy of this PatternSpec.
-
equal
Compares two compiled pattern specs and returns whether they will match the same set of strings.- Parameters:
pspec2
- anotherGPatternSpec
- Returns:
- Whether the compiled patterns are equal
-
free
public void free()Frees the memory allocated for theGLib.PatternSpec
. -
match
Matches a string against a compiled pattern.Passing the correct length of the string given is mandatory. The reversed string can be omitted by passing
NULL
, this is more efficient if the reversed version of the string to be matched is not at hand, asmatch(long, java.lang.String, java.lang.String)
will only construct it if the compiled pattern requires reverse matches.Note that, if the user code will (possibly) match a string against a multitude of patterns containing wildcards, chances are high that some patterns will require a reversed string. In this case, it’s more efficient to provide the reversed string to avoid multiple constructions thereof in the various calls to
match(long, java.lang.String, java.lang.String)
.Note also that the reverse of a UTF-8 encoded string can in general not be obtained by
GLib.strreverse(java.lang.String)
. This works only if the string does not contain any multibyte characters. GLib offers theGLib.utf8Strreverse(java.lang.String, long)
function to reverse UTF-8 encoded strings.- Parameters:
stringLength
- the length ofstring
(in bytes, i.e.strlen()
, notGLib.utf8Strlen(java.lang.String, long)
)string
- the UTF-8 encoded string to matchstringReversed
- the reverse ofstring
- Returns:
true
ifstring
matches this PatternSpec
-
matchString
Matches a string against a compiled pattern.If the string is to be matched against more than one pattern, consider using
match(long, java.lang.String, java.lang.String)
instead while supplying the reversed string.- Parameters:
string
- the UTF-8 encoded string to match- Returns:
true
ifstring
matches this PatternSpec
-