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

portableDataExchange.pdxserializable.PositionPdx Maven / Gradle / Ivy

/*
 * Copyright (c) 2010-2015 Pivotal Software, Inc. All rights reserved.
 *
 * Licensed 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. See accompanying
 * LICENSE file.
 */
package portableDataExchange.pdxserializable;

import com.gemstone.gemfire.pdx.PdxReader;
import com.gemstone.gemfire.pdx.PdxSerializable;
import com.gemstone.gemfire.pdx.PdxWriter;

/**
 * An example of a position object for a trading application. This class
 * demonstrates serializing an object using the PdxSerializable interface.
 * 

* * @author GemStone Systems, Inc. * @since 6.6 */ public class PositionPdx implements PdxSerializable { private static int count = 0; private long avg20DaysVol; private String bondRating; private double convRatio; private String country; private double delta; private long industry; private long issuer; private double mktValue; private double qty; private String secId; private String secLinks; private String secType; private int sharesOutstanding; private String underlyer; private long volatility; private int pid; /** * This contructor is used by the pdx serialization framework to create the * object before calling the fromData method. */ public PositionPdx() { // do nothing } /** * This constructor creates a new object with some data. */ public PositionPdx(String id, int shares) { secId = id; qty = shares * (count % 2 == 0 ? 10.0 : 100.0); mktValue = qty * 1.2345998; sharesOutstanding = shares; secType = "a"; pid = count++; } /** * The fromData method deserializes this object * using the given PDXReader. */ @Override public void fromData(PdxReader reader) { avg20DaysVol = reader.readLong("avg20DaysVol"); bondRating = reader.readString("bondRating"); convRatio = reader.readDouble("convRatio"); country = reader.readString("country"); delta = reader.readDouble("delta"); industry = reader.readLong("industry"); issuer = reader.readLong("issuer"); mktValue = reader.readDouble("mktValue"); qty = reader.readDouble("qty"); secId = reader.readString("secId"); secLinks = reader.readString("secLinks"); secType = reader.readString("secType"); sharesOutstanding = reader.readInt("sharesOutstanding"); underlyer = reader.readString("underlyer"); volatility = reader.readLong("volatility"); pid = reader.readInt("pid"); } /** * The toData method serializes the object using a given pdx writer. */ @Override public void toData(PdxWriter writer) { writer.writeLong("avg20DaysVol", avg20DaysVol); writer.writeString("bondRating", bondRating); writer.writeDouble("convRatio", convRatio); writer.writeString("country", country); writer.writeDouble("delta", delta); writer.writeLong("industry", industry); writer.writeLong("issuer", issuer); writer.writeDouble("mktValue", mktValue); writer.writeDouble("qty", qty); writer.writeString("secId", secId); writer.writeString("secLinks", secLinks); writer.writeString("secType", secType); writer.writeInt("sharesOutstanding", sharesOutstanding); writer.writeString("underlyer", underlyer); writer.writeLong("volatility", volatility); writer.writeInt("pid", pid); //Mark pid as an identity field. //objects serialized in pdx format can be read and modified while //remaining in serialized form. See the PdxInstance class. //PdxInstance objects use the identity fields in their equals and //hashCode implementations. writer.markIdentityField("pid"); } public long getAvg20DaysVol() { return avg20DaysVol; } public String getBondRating() { return bondRating; } public double getConvRatio() { return convRatio; } public String getCountry() { return country; } public double getDelta() { return delta; } public long getIndustry() { return industry; } public long getIssuer() { return issuer; } public double getMktValue() { return mktValue; } public double getQty() { return qty; } public String getSecId() { return secId; } public String getSecLinks() { return secLinks; } public String getSecType() { return secType; } public int getSharesOutstanding() { return sharesOutstanding; } public String getUnderlyer() { return underlyer; } public long getVolatility() { return volatility; } public int getPid() { return pid; } public static int getCount() { return count; } @Override public String toString() { return new StringBuilder() .append("Position [secId=").append(secId) .append(" sharesOutstanding=").append(sharesOutstanding) .append(" type=").append(secType) .append(" id=").append(pid).append("]") .toString(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy