/*
* Hibernate OGM, Domain model persistence for NoSQL datastores
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.ogm.datastore.infinispanremote.impl.protobuf;
import java.net.URL;
import org.hibernate.type.descriptor.java.UrlTypeDescriptor;
import org.infinispan.protostream.MessageMarshaller.ProtoStreamReader;
import org.infinispan.protostream.MessageMarshaller.ProtoStreamWriter;
public final class UrlProtofieldAccessor extends BaseProtofieldAccessor<URL> implements ProtofieldAccessor<URL> {
public UrlProtofieldAccessor(final int tag, String name, boolean nullable, final String columnName) {
super( tag, name, nullable, columnName,
(ProtoStreamWriter outProtobuf, URL value) -> outProtobuf.writeString( name, UrlTypeDescriptor.INSTANCE.toString( value ) ),
(ProtoStreamReader reader) -> {
String readString = reader.readString( name );
if ( readString != null ) {
return UrlTypeDescriptor.INSTANCE.fromString( readString );
}
return null;
}
);
}
@Override
protected String getProtobufTypeName() {
return "string";
}
}