All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gemstone.gemfire.pdx.PdxSerializable Maven / Gradle / Ivy

Go to download

Apache Geode (incubating) provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing

The newest version!
/*
 * 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.
 */
package com.gemstone.gemfire.pdx;

/**
 * When a domain class implements PdxSerializable it marks 
 * itself as a PDX. 
 * The implementation of {@link #toData toData} provides the serialization 
 * code and {@link #fromData fromData} provides the deserialization code. 
 * These methods also define each field name and field type 
 * of the PDX. Domain classes should serialize and deserialize 
 * all its member fields in the same order in toData and fromData 
 * method. Also fromData and toData must read and write the same fields
 * each time they are called.
 * A domain class that implements this interface must also have 
 * a public zero-arg constructor which is used during deserialization.
 * 
 *
 *

Simple example: *

public class User implements PdxSerializable {
  private String name;
  private int userId;

  public User() {
  }

  public void toData(PdxWriter out) {
    out.writeString("name", this.name);
    out.writeInt("userId", this.userId);
  }

  public void fromData(PdxReader in) {
    this.name = in.readString("name");
    this.userId = in.readInt("userId");
  }
}
 * 
* * @author darrel * @since 6.6 */ public interface PdxSerializable { /** * Serializes the PDX fields using the given writer. * @param writer the {@link PdxWriter} to use to write the PDX fields. */ public void toData(PdxWriter writer); /** * Deserializes the PDX fields using the given reader. * @param reader the {@link PdxReader} to use to read the PDX fields. */ public void fromData(PdxReader reader); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy