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

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

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

/**
 * The ObjectKey structure combines a domain and an object instance identifier such that it identifies the instance of an object for a specific domain.
 */
public final class ObjectKey implements org.ccsds.moims.mo.mal.structures.Composite
{
  /**
   * Short form for type.
   */
  public static final Integer TYPE_SHORT_FORM = Integer.valueOf(2);
  /**
   * 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(562949970198530L);
  private static final long serialVersionUID = 562949970198530L;
  /**
   * The domain of the object instance.
   */
  private org.ccsds.moims.mo.mal.structures.IdentifierList domain;
  /**
   * The unique identifier of the object instance. Must not be '0' for values as this is the wildcard.
   */
  private Long instId;
  /**
   * Default constructor for ObjectKey.
   */
  public ObjectKey()
  {
  }

  /**
   * Constructor that initialises the values of the structure.
   * @param domain The domain of the object instance.
   * @param instId The unique identifier of the object instance. Must not be '0' for values as this is the wildcard.
   */
  public ObjectKey(org.ccsds.moims.mo.mal.structures.IdentifierList domain, Long instId)
  {
    this.domain = domain;
    this.instId = instId;
  }

  /**
   * 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.ObjectKey();
  }

  /**
   * Returns the field domain.
   * @return The field domain.
   */
  public org.ccsds.moims.mo.mal.structures.IdentifierList getDomain()
  {
    return domain;
  }

  /**
   * Sets the field domain.
   * @param __newValue __newValue The new value.
   */
  public void setDomain(org.ccsds.moims.mo.mal.structures.IdentifierList __newValue)
  {
    domain = __newValue;
  }

  /**
   * Returns the field instId.
   * @return The field instId.
   */
  public Long getInstId()
  {
    return instId;
  }

  /**
   * Sets the field instId.
   * @param __newValue __newValue The new value.
   */
  public void setInstId(Long __newValue)
  {
    instId = __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 ObjectKey)
    {
      ObjectKey other = (ObjectKey) obj;
      if (domain == null)
      {
        if (other.domain != null)
        {
          return false;
        }
      }
      else
      {
        if (! domain.equals(other.domain))
        {
          return false;
        }
      }
      if (instId == null)
      {
        if (other.instId != null)
        {
          return false;
        }
      }
      else
      {
        if (! instId.equals(other.instId))
        {
          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 + (domain != null ? domain.hashCode() : 0);
    hash = 83 * hash + (instId != null ? instId.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("domain=");
    buf.append(domain);
    buf.append(", instId=");
    buf.append(instId);
    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(domain);
    encoder.encodeLong(instId);
  }

  /**
   * 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
  {
    domain = (org.ccsds.moims.mo.mal.structures.IdentifierList) decoder.decodeElement(new org.ccsds.moims.mo.mal.structures.IdentifierList());
    instId = decoder.decodeLong();
    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