= Bookmark _(record)_
:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

String representation of any persistable or re-creatable object managed by the framework.

== API

[source,java]
.Bookmark.java
----
record Bookmark {
  Bookmark empty(LogicalType logicalType)
  Bookmark emptyForLogicalTypeName(String logicalTypeName)
  Bookmark forLogicalTypeNameAndIdentifier(String logicalTypeName, String urlSafeIdentifier)
  Bookmark forLogicalTypeAndIdentifier(LogicalType logicalType, String urlSafeIdentifier)
  Bookmark forOidDto(OidDto oidDto)
  Bookmark withHintId(String hintId)
  Optional<Bookmark> parse(String str)     // <.>
  Bookmark parseElseFail(String input)
  Optional<Bookmark> parseUrlEncoded(String urlEncodedStr)     // <.>
  OidDto toOidDto()
  String stringify()
  boolean equals(Object other)
  boolean equals(Bookmark other)
  int hashCode()
  String toString()
  String stringifyHonoringHintIfAny()     // <.>
  boolean isEmpty()     // <.>
}
----

<.> xref:#parse_String[parse(String)]
+
--
Round-trip with _#stringify()_ representation.
--
<.> xref:#parseUrlEncoded_String[parseUrlEncoded(String)]
+
--
there is only one use-case, that is, if a bookmark itself needs to be encoded (eg. page params)
--
<.> xref:#stringifyHonoringHintIfAny_[stringifyHonoringHintIfAny()]
+
--
Analogous to _#stringify()_ , but replaces the _identifier_ string with the _hintId_ if present and not empty.
--
<.> xref:#isEmpty_[isEmpty()]
+
--
Whether represents _null_ .
--

== Members

[#parse_String]
=== parse(String)

Round-trip with _#stringify()_ representation.

[#parseUrlEncoded_String]
=== parseUrlEncoded(String)

there is only one use-case, that is, if a bookmark itself needs to be encoded (eg. page params)

[#stringifyHonoringHintIfAny_]
=== stringifyHonoringHintIfAny()

Analogous to _#stringify()_ , but replaces the _identifier_ string with the _hintId_ if present and not empty.

[#isEmpty_]
=== isEmpty()

Whether represents _null_ .
