public Object serialized_sample_to_key(
      Object endpoint_data,
      Object sample,
      CdrInputStream src,
      boolean deserialize_encapsulation,
      boolean deserialize_key,
      Object endpoint_plugin_qos) {

    int position = 0;

    if (deserialize_encapsulation) {
      src.deserializeAndSetCdrEncapsulation();

      position = src.resetAlignment();
    }

    if (deserialize_key) {

      SequenceOfGenerationControlSetPoints typedDst = (SequenceOfGenerationControlSetPoints) sample;

      org.openfmb.model.dds.rti.common.SetPointTypeSupport.get_instance()
          .deserialize_sequence(
              endpoint_data,
              typedDst.userData,
              src,
              ((org.openfmb.model.dds.rti.generation.MaxLengthGenerationControlSetPoints.VALUE)),
              endpoint_plugin_qos);
    }

    if (deserialize_encapsulation) {
      src.restoreAlignment(position);
    }

    return sample;
  }
  public long get_serialized_key_max_size(
      Object endpoint_data,
      boolean include_encapsulation,
      short encapsulation_id,
      long currentAlignment) {

    long origAlignment = currentAlignment;
    long encapsulation_size = currentAlignment;

    if (include_encapsulation) {
      if (!CdrEncapsulation.isValidEncapsulationKind(encapsulation_id)) {
        throw new RETCODE_ERROR("Unsupported encapsulation");
      }

      encapsulation_size += CdrPrimitiveType.SHORT.getMaxSizeSerialized(encapsulation_size);
      encapsulation_size += CdrPrimitiveType.SHORT.getMaxSizeSerialized(encapsulation_size);
      encapsulation_size -= currentAlignment;
      currentAlignment = 0;
      origAlignment = 0;
    }

    currentAlignment +=
        org.openfmb.model.dds.rti.common.SetPointTypeSupport.get_instance()
            .get_sequence_max_size_serialized(
                endpoint_data,
                currentAlignment,
                ((org.openfmb.model.dds.rti.generation.MaxLengthGenerationControlSetPoints.VALUE)));

    if (include_encapsulation) {
      currentAlignment += encapsulation_size;
    }

    return currentAlignment - origAlignment;
  }
  public void serialize_key(
      Object endpoint_data,
      Object src,
      CdrOutputStream dst,
      boolean serialize_encapsulation,
      short encapsulation_id,
      boolean serialize_key,
      Object endpoint_plugin_qos) {
    int position = 0;

    if (serialize_encapsulation) {
      dst.serializeAndSetCdrEncapsulation(encapsulation_id);

      position = dst.resetAlignment();
    }

    if (serialize_key) {

      SequenceOfGenerationControlSetPoints typedSrc = (SequenceOfGenerationControlSetPoints) src;
      org.openfmb.model.dds.rti.common.SetPointTypeSupport.get_instance()
          .serialize_sequence(
              endpoint_data,
              dst,
              typedSrc.userData,
              ((org.openfmb.model.dds.rti.generation.MaxLengthGenerationControlSetPoints.VALUE)),
              endpoint_plugin_qos);
    }

    if (serialize_encapsulation) {
      dst.restoreAlignment(position);
    }
  }
  public long get_serialized_sample_size(
      Object endpoint_data,
      boolean include_encapsulation,
      short encapsulation_id,
      long currentAlignment,
      Object sample) {
    SequenceOfGenerationControlSetPoints typedSrc = (SequenceOfGenerationControlSetPoints) sample;
    long origAlignment = currentAlignment;
    long encapsulation_size = currentAlignment;

    if (include_encapsulation) {
      if (!CdrEncapsulation.isValidEncapsulationKind(encapsulation_id)) {
        throw new RETCODE_ERROR("Unsupported encapsulation");
      }

      encapsulation_size += CdrPrimitiveType.SHORT.getMaxSizeSerialized(encapsulation_size);
      encapsulation_size += CdrPrimitiveType.SHORT.getMaxSizeSerialized(encapsulation_size);
      encapsulation_size -= currentAlignment;
      currentAlignment = 0;
      origAlignment = 0;
    }

    currentAlignment +=
        org.openfmb.model.dds.rti.common.SetPointTypeSupport.get_instance()
            .get_sequence_serialized_size(endpoint_data, currentAlignment, typedSrc.userData);

    if (include_encapsulation) {
      currentAlignment += encapsulation_size;
    }
    return currentAlignment - origAlignment;
  }
  public void skip(
      Object endpoint_data,
      CdrInputStream src,
      boolean skip_encapsulation,
      boolean skip_sample,
      Object endpoint_plugin_qos) {
    int position = 0;

    if (skip_encapsulation) {
      src.skipEncapsulation();

      position = src.resetAlignment();
    }

    if (skip_sample) {

      org.openfmb.model.dds.rti.common.SetPointTypeSupport.get_instance()
          .skip_sequence(endpoint_data, src, endpoint_plugin_qos);
    }

    if (skip_encapsulation) {
      src.restoreAlignment(position);
    }
  }