# PropertyPath.PathSegment

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in[T Extensions 7](https://developer.android.com/sdkExtensions)

# PathSegment

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/android/app/appsearch/PropertyPath.PathSegment "View this page in Java")  

```
open class PathSegment
```

|---|--------------------------------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)                                                                   ||
| ↳ | [android.app.appsearch.PropertyPath.PathSegment](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#) |

A segment of a PropertyPath, which includes the name of the property and a 0-based index into this property.

If the property index is not set to[NON_REPEATED_CARDINALITY](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#NON_REPEATED_CARDINALITY:kotlin.Int), this represents a schema property with the "repeated" cardinality, or a path like "foo\[1\]". Otherwise, this represents a schema property that could have any cardinality, or a path like "foo".

## Summary

|                                                                                                                                                                       Constants                                                                                                                                                                       ||
|----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| static[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | [NON_REPEATED_CARDINALITY](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#NON_REPEATED_CARDINALITY:kotlin.Int) A marker variable to signify that a PathSegment represents a schema property that isn't indexed into. |

|                                                                                                                                                                                                                                                                                     Public methods                                                                                                                                                                                                                                                                                      ||
|--------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| openstatic[PropertyPath.PathSegment](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#) | [create](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#create(kotlin.String))`(`propertyName:` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`)` Creation method that accepts and validates a property name                                                                                                                                                    |
| openstatic[PropertyPath.PathSegment](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#) | [create](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#create(kotlin.String,%20kotlin.Int))`(`propertyName:` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`, `propertyIndex:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` Creation method that accepts and validates both a property name and the index into the property. |
| open[Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)                                               | [equals](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#equals(kotlin.Any))`(`other:` `[Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)?`)` Indicates whether some other object is "equal to" this one.                                                                                                                                                                  |
| open[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)                                                       | [getPropertyIndex](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#getPropertyIndex())`()` Returns the index into the property, or[NON_REPEATED_CARDINALITY](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#NON_REPEATED_CARDINALITY:kotlin.Int)if this does not represent a PathSegment with an index.                                              |
| open[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)                                                 | [getPropertyName](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#getPropertyName())`()` Returns the name of the property.                                                                                                                                                                                                                                                                          |
| open[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)                                                       | [hashCode](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#hashCode())`()` <br />                                                                                                                                                                                                                                                                                                                   |
| open[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)                                                 | [toString](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#toString())`()` Returns a path representing a PathSegment, either "foo" or "foo\[1\]"                                                                                                                                                                                                                                                    |

## Constants

### NON_REPEATED_CARDINALITY

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in[T Extensions 7](https://developer.android.com/sdkExtensions)  

```
static val NON_REPEATED_CARDINALITY: Int
```

A marker variable to signify that a PathSegment represents a schema property that isn't indexed into. The value is chosen to be invalid if used as an array index.  

    Value: -1

## Public methods

### create

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in[T Extensions 7](https://developer.android.com/sdkExtensions)  

```
open static fun create(propertyName: String): PropertyPath.PathSegment
```

Creation method that accepts and validates a property name

The property index is set to[NON_REPEATED_CARDINALITY](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#NON_REPEATED_CARDINALITY:kotlin.Int)

|                                                                      Parameters                                                                       ||
|----------------|---------------------------------------------------------------------------------------------------------------------------------------|
| `propertyName` | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html):the name of the property This value cannot be`null`. |

|                                                                                  Return                                                                                   ||
|----------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|
| [PropertyPath.PathSegment](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#) | A new PathSegment This value cannot be`null`. |

### create

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in[T Extensions 7](https://developer.android.com/sdkExtensions)  

```
open static fun create(
    propertyName: String, 
    propertyIndex: Int
): PropertyPath.PathSegment
```

Creation method that accepts and validates both a property name and the index into the property.

The property name may not be blank. It also may not contain square brackets or dots, as they are control characters in property paths. The index into the property may not be negative, unless it is[NON_REPEATED_CARDINALITY](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#NON_REPEATED_CARDINALITY:kotlin.Int), as these are invalid array indices.

|                                                                       Parameters                                                                       ||
|-----------------|---------------------------------------------------------------------------------------------------------------------------------------|
| `propertyName`  | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html):the name of the property This value cannot be`null`. |
| `propertyIndex` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):the index into the property                                |

|                                                                                  Return                                                                                   ||
|----------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|
| [PropertyPath.PathSegment](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#) | A new PathSegment This value cannot be`null`. |

|                                   Exceptions                                    ||
|--------------------------------------|-------------------------------------------|
| `java.lang.IllegalArgumentException` | if the property name or index is invalid. |

### equals

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun equals(other: Any?): Boolean
```

Indicates whether some other object is "equal to" this one.

The`equals`method implements an equivalence relation on non-null object references:

- It is*reflexive* : for any non-null reference value`x`,`x.equals(x)`should return`true`.
- It is*symmetric* : for any non-null reference values`x`and`y`,`x.equals(y)`should return`true`if and only if`y.equals(x)`returns`true`.
- It is*transitive* : for any non-null reference values`x`,`y`, and`z`, if`x.equals(y)`returns`true`and`y.equals(z)`returns`true`, then`x.equals(z)`should return`true`.
- It is*consistent* : for any non-null reference values`x`and`y`, multiple invocations of`x.equals(y)`consistently return`true`or consistently return`false`, provided no information used in`equals`comparisons on the objects is modified.
- For any non-null reference value`x`,`x.equals(null)`should return`false`.

An equivalence relation partitions the elements it operates on into*equivalence classes*; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

|                     Parameters                     ||
|-------|---------------------------------------------|
| `obj` | the reference object with which to compare. |
| `o`   | This value may be`null`.                    |

|                                                                           Return                                                                           ||
|------------------------------------------------------------------------------------|------------------------------------------------------------------------|
| [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) | `true`if this object is the same as the obj argument;`false`otherwise. |

### getPropertyIndex

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in[T Extensions 7](https://developer.android.com/sdkExtensions)  

```
open fun getPropertyIndex(): Int
```

Returns the index into the property, or[NON_REPEATED_CARDINALITY](https://developer.android.com/reference/kotlin/android/app/appsearch/PropertyPath.PathSegment#NON_REPEATED_CARDINALITY:kotlin.Int)if this does not represent a PathSegment with an index.  

### getPropertyName

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in[T Extensions 7](https://developer.android.com/sdkExtensions)  

```
open fun getPropertyName(): String
```

Returns the name of the property.

|                                                    Return                                                     ||
|----------------------------------------------------------------------------------|-----------------------------|
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | This value cannot be`null`. |

### hashCode

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun hashCode(): Int
```

|                                                     Return                                                     ||
|----------------------------------------------------------------------------|------------------------------------|
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | a hash code value for this object. |

### toString

Added in[API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun toString(): String
```

Returns a path representing a PathSegment, either "foo" or "foo\[1\]"

|                                                    Return                                                     ||
|----------------------------------------------------------------------------------|-----------------------------|
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | This value cannot be`null`. |