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

org.ccsds.moims.mo.com.structures.ObjectId Maven / Gradle / Ivy

There is a newer version: 8.2
Show newest version
package org.ccsds.moims.mo.com.structures;

/**
 * The ObjectId structure combines an object type and an object key such that it identifies the instance and type of an object for a specific domain.
 */
public final class ObjectId implements org.ccsds.moims.mo.mal.structures.Composite
{
  /**
   * Short form for type.
   */
  public static final Integer TYPE_SHORT_FORM = Integer.valueOf(3);
  /**
   * Short form for area.
   */
  public static final org.ccsds.moims.mo.mal.structures.UShort AREA_SHORT_FORM = new org.ccsds.moims.mo.mal.structures.UShort(2);
  /**
   * Version for area.
   */
  public static final org.ccsds.moims.mo.mal.structures.UOctet AREA_VERSION = new org.ccsds.moims.mo.mal.structures.UOctet((short)1);
  /**
   * Short form for service.
   */
  public static final org.ccsds.moims.mo.mal.structures.UShort SERVICE_SHORT_FORM = new org.ccsds.moims.mo.mal.structures.UShort(0);
  /**
   * Absolute short form for type.
   */
  public static final Long SHORT_FORM = Long.valueOf(562949970198531L);
  private static final long serialVersionUID = 562949970198531L;
  /**
   * The fully qualified unique identifier of the type.
   */
  private org.ccsds.moims.mo.com.structures.ObjectType type;
  /**
   * The combination of the object domain and object instance identifier.
   */
  private org.ccsds.moims.mo.com.structures.ObjectKey key;
  /**
   * Default constructor for ObjectId.
   */
  public ObjectId()
  {
  }

  /**
   * Constructor that initialises the values of the structure.
   * @param type The fully qualified unique identifier of the type.
   * @param key The combination of the object domain and object instance identifier.
   */
  public ObjectId(org.ccsds.moims.mo.com.structures.ObjectType type, org.ccsds.moims.mo.com.structures.ObjectKey key)
  {
    this.type = type;
    this.key = key;
  }

  /**
   * Creates an instance of this type using the default constructor. It is a generic factory method.
   * @return A new instance of this type with default field values.
   */
  public org.ccsds.moims.mo.mal.structures.Element createElement()
  {
    return new org.ccsds.moims.mo.com.structures.ObjectId();
  }

  /**
   * Returns the field type.
   * @return The field type.
   */
  public org.ccsds.moims.mo.com.structures.ObjectType getType()
  {
    return type;
  }

  /**
   * Sets the field type.
   * @param __newValue __newValue The new value.
   */
  public void setType(org.ccsds.moims.mo.com.structures.ObjectType __newValue)
  {
    type = __newValue;
  }

  /**
   * Returns the field key.
   * @return The field key.
   */
  public org.ccsds.moims.mo.com.structures.ObjectKey getKey()
  {
    return key;
  }

  /**
   * Sets the field key.
   * @param __newValue __newValue The new value.
   */
  public void setKey(org.ccsds.moims.mo.com.structures.ObjectKey __newValue)
  {
    key = __newValue;
  }

  /**
   * Compares this object to the specified object. The result is true if and only if the argument is not null and is the same type that contains the same value as this object.
   * @param obj obj the object to compare with.
   * @return true if the objects are the same; false otherwise.
   */
  public boolean equals(Object obj)
  {
    if (obj instanceof ObjectId)
    {
      ObjectId other = (ObjectId) obj;
      if (type == null)
      {
        if (other.type != null)
        {
          return false;
        }
      }
      else
      {
        if (! type.equals(other.type))
        {
          return false;
        }
      }
      if (key == null)
      {
        if (other.key != null)
        {
          return false;
        }
      }
      else
      {
        if (! key.equals(other.key))
        {
          return false;
        }
      }
      return true;
    }
    return false;
  }

  /**
   * Returns a hash code for this object.
   * @return a hash code value for this object.
   */
  public int hashCode()
  {
    int hash = 7;
    hash = 83 * hash + (type != null ? type.hashCode() : 0);
    hash = 83 * hash + (key != null ? key.hashCode() : 0);
    return hash;
  }

  /**
   * Returns a String object representing this type's value.
   * @return a string representation of the value of this object.
   */
  public String toString()
  {
    StringBuilder buf = new StringBuilder();
    buf.append('(');
    buf.append("type=");
    buf.append(type);
    buf.append(", key=");
    buf.append(key);
    buf.append(')');
    return buf.toString();
  }

  /**
   * Encodes the value of this object using the provided MALEncoder.
   * @param encoder encoder - the encoder to use for encoding.
   * @throws org.ccsds.moims.mo.mal.MALException if any encoding errors are detected.
   */
  public void encode(org.ccsds.moims.mo.mal.MALEncoder encoder) throws org.ccsds.moims.mo.mal.MALException
  {
    encoder.encodeElement(type);
    encoder.encodeElement(key);
  }

  /**
   * Decodes the value of this object using the provided MALDecoder.
   * @param decoder decoder - the decoder to use for decoding.
   * @return Returns this object.
   * @throws org.ccsds.moims.mo.mal.MALException if any decoding errors are detected.
   */
  public org.ccsds.moims.mo.mal.structures.Element decode(org.ccsds.moims.mo.mal.MALDecoder decoder) throws org.ccsds.moims.mo.mal.MALException
  {
    type = (org.ccsds.moims.mo.com.structures.ObjectType) decoder.decodeElement(new org.ccsds.moims.mo.com.structures.ObjectType());
    key = (org.ccsds.moims.mo.com.structures.ObjectKey) decoder.decodeElement(new org.ccsds.moims.mo.com.structures.ObjectKey());
    return this;
  }

  /**
   * Returns the absolute short form of this type.
   * @return The absolute short form of this type.
   */
  public Long getShortForm()
  {
    return SHORT_FORM;
  }

  /**
   * Returns the type short form of this type which is unique to the area/service it is defined in but not unique across all types.
   * @return The type short form of this type.
   */
  public Integer getTypeShortForm()
  {
    return TYPE_SHORT_FORM;
  }

  /**
   * Returns the area number of this type.
   * @return The area number of this type.
   */
  public org.ccsds.moims.mo.mal.structures.UShort getAreaNumber()
  {
    return AREA_SHORT_FORM;
  }

  /**
   * Returns the area version of this type.
   * @return The area number of this type.
   */
  public org.ccsds.moims.mo.mal.structures.UOctet getAreaVersion()
  {
    return AREA_VERSION;
  }

  /**
   * Returns the service number of this type.
   * @return The service number of this type.
   */
  public org.ccsds.moims.mo.mal.structures.UShort getServiceNumber()
  {
    return SERVICE_SHORT_FORM;
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy