IKVM11  11
Java SE 11 Virtual Machine for .NET
Loading...
Searching...
No Matches
IKVM.Runtime.Syntax.JavaPackageName Struct Reference

Provides methods to parse a Java package name. More...

Public Member Functions

 JavaPackageName (string qualifiedName)
 Initializes a new instance.
 
 JavaPackageName (ReadOnlyMemory< char > qualifiedName)
 Initializes a new instance.
 
 JavaPackageName (JavaPackageName parent, ReadOnlyMemory< char > name)
 Initializes a new instance.
 
 JavaPackageName (JavaPackageName parent, string name)
 Initializes a new instance.
 
JavaSimplePackageName GetSimpleName ()
 Gets the simple name.
 
JavaPackageName GetParent ()
 Gets the package name.
 
bool IsMemberOf (JavaPackageName packageName)
 Returns true if this package name is a member of the given package name.
 
bool IsChildOf (JavaPackageName other)
 Returns true if the given package name is a child of the other package name.
 
bool Equals (JavaPackageName other)
 Returns true if the two objects are equal.
 
override bool Equals (object obj)
 Returns true if the two objects are equal.
 
override int GetHashCode ()
 Gets the hash code of this package name.
 
override string ToString ()
 Returns a string instance of the package name.
 

Static Public Member Functions

static implicit operator string (JavaPackageName packageName)
 
static implicit operator JavaPackageName (string packageName)
 
static implicit operator ReadOnlyMemory< char > (JavaPackageName packageName)
 
static implicit operator JavaPackageName (ReadOnlyMemory< char > packageName)
 
static bool operator== (JavaPackageName a, JavaPackageName b)
 
static bool operator!= (JavaPackageName a, JavaPackageName b)
 

Public Attributes

readonly ReadOnlyMemory< char > value
 

Properties

static JavaPackageName Empty [get]
 
ReadOnlyMemory< char > Value [get]
 Gets the underlying value of this package name.
 
bool IsEmpty [get]
 Returns true if this package name is empty.
 
JavaSimplePackageName SimpleName [get]
 Gets the simple name.
 
JavaPackageName Parent [get]
 Gets the name of the parent package, or empty.
 

Detailed Description

Provides methods to parse a Java package name.

Definition at line 11 of file JavaPackageName.cs.

Constructor & Destructor Documentation

◆ JavaPackageName() [1/4]

IKVM.Runtime.Syntax.JavaPackageName.JavaPackageName ( string qualifiedName)

Initializes a new instance.

Parameters
qualifiedName

Definition at line 31 of file JavaPackageName.cs.

31 :
32 this(qualifiedName.AsMemory())
33 {
34 if (qualifiedName is null)
35 throw new ArgumentNullException(nameof(qualifiedName));
36 }

◆ JavaPackageName() [2/4]

IKVM.Runtime.Syntax.JavaPackageName.JavaPackageName ( ReadOnlyMemory< char > qualifiedName)

Initializes a new instance.

Parameters
qualifiedName

Definition at line 42 of file JavaPackageName.cs.

43 {
44 this.value = qualifiedName;
45 }

◆ JavaPackageName() [3/4]

IKVM.Runtime.Syntax.JavaPackageName.JavaPackageName ( JavaPackageName parent,
ReadOnlyMemory< char > name )

Initializes a new instance.

Parameters
parent
name

Definition at line 52 of file JavaPackageName.cs.

52 :
53 this(parent.IsEmpty ? name : $"{parent}.{name}".AsMemory())
54 {
55
56 }

◆ JavaPackageName() [4/4]

IKVM.Runtime.Syntax.JavaPackageName.JavaPackageName ( JavaPackageName parent,
string name )

Initializes a new instance.

Parameters
parent
name

Definition at line 63 of file JavaPackageName.cs.

63 :
64 this(parent, name.AsMemory())
65 {
66 if (name is null)
67 throw new ArgumentNullException(nameof(name));
68 }

Member Function Documentation

◆ Equals() [1/2]

bool IKVM.Runtime.Syntax.JavaPackageName.Equals ( JavaPackageName other)

Returns true if the two objects are equal.

Parameters
other
Returns

◆ Equals() [2/2]

override bool IKVM.Runtime.Syntax.JavaPackageName.Equals ( object obj)

Returns true if the two objects are equal.

Parameters
obj
Returns

◆ GetHashCode()

override int IKVM.Runtime.Syntax.JavaPackageName.GetHashCode ( )

Gets the hash code of this package name.

Returns

◆ GetParent()

JavaPackageName IKVM.Runtime.Syntax.JavaPackageName.GetParent ( )

Gets the package name.

Returns

Definition at line 107 of file JavaPackageName.cs.

108 {
109 var i = value.Span.LastIndexOf('.');
110 return i != -1 ? new JavaPackageName(value.Slice(0, i)) : Empty;
111 }
readonly ReadOnlyMemory< char > value
JavaPackageName(string qualifiedName)
Initializes a new instance.

◆ GetSimpleName()

JavaSimplePackageName IKVM.Runtime.Syntax.JavaPackageName.GetSimpleName ( )

Gets the simple name.

Returns

Definition at line 89 of file JavaPackageName.cs.

90 {
91 if (IsEmpty)
92 return JavaSimplePackageName.Empty;
93
94 var index = value.Span.LastIndexOf('.');
95 return index != -1 ? new JavaSimplePackageName(value.Slice(index + 1)) : JavaSimplePackageName.Empty;
96 }
bool IsEmpty
Returns true if this package name is empty.

◆ IsChildOf()

bool IKVM.Runtime.Syntax.JavaPackageName.IsChildOf ( JavaPackageName other)

Returns true if the given package name is a child of the other package name.

Parameters
other
Returns

Definition at line 125 of file JavaPackageName.cs.

126 {
127 // the empty package can never be a child of another package
128 if (value.IsEmpty)
129 return false;
130
131 // but everything is a child of it
132 if (other.IsEmpty)
133 return true;
134
135 // we're going to enumerate each package element in the other package and test we can advance through that in the target
136 var o = new ReadOnlySpanSeparatorEnumerator(other.value.Span, '.');
137 var e = new ReadOnlySpanSeparatorEnumerator(value.Span, '.');
138 while (o.MoveNext())
139 {
140 // for each item in the other, we should be able to advance
141 if (e.MoveNext() == false)
142 return false;
143
144 // each item must match
145 if (e.Current.Equals(o.Current, StringComparison.Ordinal) == false)
146 return false;
147 }
148
149 // there must still be more elements
150 return e.MoveNext();
151 }

◆ IsMemberOf()

bool IKVM.Runtime.Syntax.JavaPackageName.IsMemberOf ( JavaPackageName packageName)

Returns true if this package name is a member of the given package name.

Parameters
packageName
Returns

◆ operator JavaPackageName() [1/2]

static implicit IKVM.Runtime.Syntax.JavaPackageName.operator JavaPackageName ( ReadOnlyMemory< char > packageName)
static

◆ operator JavaPackageName() [2/2]

static implicit IKVM.Runtime.Syntax.JavaPackageName.operator JavaPackageName ( string packageName)
static

◆ operator ReadOnlyMemory< char >()

static implicit IKVM.Runtime.Syntax.JavaPackageName.operator ReadOnlyMemory< char > ( JavaPackageName packageName)
static

◆ operator string()

static implicit IKVM.Runtime.Syntax.JavaPackageName.operator string ( JavaPackageName packageName)
static

◆ operator!=()

static bool IKVM.Runtime.Syntax.JavaPackageName.operator!= ( JavaPackageName a,
JavaPackageName b )
static

◆ operator==()

static bool IKVM.Runtime.Syntax.JavaPackageName.operator== ( JavaPackageName a,
JavaPackageName b )
static

◆ ToString()

override string IKVM.Runtime.Syntax.JavaPackageName.ToString ( )

Returns a string instance of the package name.

Returns

Member Data Documentation

◆ value

readonly ReadOnlyMemory<char> IKVM.Runtime.Syntax.JavaPackageName.value

Definition at line 25 of file JavaPackageName.cs.

Property Documentation

◆ Empty

JavaPackageName IKVM.Runtime.Syntax.JavaPackageName.Empty
staticget

Definition at line 14 of file JavaPackageName.cs.

◆ IsEmpty

bool IKVM.Runtime.Syntax.JavaPackageName.IsEmpty
get

Returns true if this package name is empty.

Definition at line 78 of file JavaPackageName.cs.

◆ Parent

JavaPackageName IKVM.Runtime.Syntax.JavaPackageName.Parent
get

Gets the name of the parent package, or empty.

Definition at line 101 of file JavaPackageName.cs.

◆ SimpleName

JavaSimplePackageName IKVM.Runtime.Syntax.JavaPackageName.SimpleName
get

Gets the simple name.

Definition at line 83 of file JavaPackageName.cs.

◆ Value

ReadOnlyMemory<char> IKVM.Runtime.Syntax.JavaPackageName.Value
get

Gets the underlying value of this package name.

Definition at line 73 of file JavaPackageName.cs.


The documentation for this struct was generated from the following file: