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

edu.nps.moves.dis7.IFFLayer1 Maven / Gradle / Ivy

package edu.nps.moves.dis7;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.Serializable;

/**
 *
 * @author fo
 */
public class IFFLayer1 extends Object implements Serializable {

    /**
     * Identify the entity that is the source of the emissions
     */
    protected EntityID emittingEntityId = new EntityID();

    /**
     * Contain a number generated by the issuing simulator to associate related
     * events.
     */
    protected EventIdentifier eventId = new EventIdentifier();

    /**
     * Relative location of a designated primary antenna for this IFF system
     */
    protected Vector3Float relativeAntennaLocation = new Vector3Float();

    /**
     * A specific interrogator or transponder system for the emitting system
     */
    protected SystemIdentifier systemId = new SystemIdentifier();

    /**
     * a unique decimal number assigned to this interrogator or transponder to
     * distinguish it from multiple interrogators or transponders that are
     * associated with the same entity
     */
    protected short systemDesignator;

    /**
     * variable format field containing 8 bits of data whose meaning is defined
     * for each specific system
     */
    protected short systemSpecificData;

    /**
     * Identify certain basic operational data for the IFF emitting system
     */
    protected FundamentalOperationalData fundamentalOperationalData = new FundamentalOperationalData();

    public IFFLayer1() {
    }

    public int getMarshalledSize() {
        int marshalSize = 0;

        marshalSize = marshalSize + emittingEntityId.getMarshalledSize();//emittingEntityId
        marshalSize = marshalSize + eventId.getMarshalledSize();//eventId
        marshalSize = marshalSize + relativeAntennaLocation.getMarshalledSize();//relativeAntennaLocation
        marshalSize = marshalSize + systemId.getMarshalledSize();//systemId
        marshalSize = marshalSize + 1;//systemDesignator
        marshalSize = marshalSize + 1;//systemSpecificData
        marshalSize = marshalSize + fundamentalOperationalData.getMarshalledSize();//fundamentalOperationalData
        return marshalSize;
    }

    public EntityID getEmittingEntityId() {
        return emittingEntityId;
    }

    public void setEmittingEntityId(EntityID emittingEntityId) {
        this.emittingEntityId = emittingEntityId;
    }

    public EventIdentifier getEventId() {
        return eventId;
    }

    public void setEventId(EventIdentifier eventId) {
        this.eventId = eventId;
    }

    public Vector3Float getRelativeAntennaLocation() {
        return relativeAntennaLocation;
    }

    public void setRelativeAntennaLocation(Vector3Float relativeAntennaLocation) {
        this.relativeAntennaLocation = relativeAntennaLocation;
    }

    public SystemIdentifier getSystemId() {
        return systemId;
    }

    public void setSystemId(SystemIdentifier systemId) {
        this.systemId = systemId;
    }

    public short getSystemDesignator() {
        return systemDesignator;
    }

    public void setSystemDesignator(short systemDesignator) {
        this.systemDesignator = systemDesignator;
    }

    public short getSystemSpecificData() {
        return systemSpecificData;
    }

    public void setSystemSpecificData(short systemSpecificData) {
        this.systemSpecificData = systemSpecificData;
    }

    public FundamentalOperationalData getFundamentalOperationalData() {
        return fundamentalOperationalData;
    }

    public void setFundamentalOperationalData(FundamentalOperationalData fundamentalOperationalData) {
        this.fundamentalOperationalData = fundamentalOperationalData;
    }

    public void marshal(DataOutputStream dos) {
        try {
            emittingEntityId.marshal(dos);
            eventId.marshal(dos);
            relativeAntennaLocation.marshal(dos);
            systemId.marshal(dos);
            dos.writeByte((byte) systemDesignator);
            dos.writeByte((byte) systemSpecificData);
            fundamentalOperationalData.marshal(dos);
        } // end try 
        catch (Exception e) {
            System.out.println(e);
        }
    } // end of marshal method 

    public void unmarshal(DataInputStream dis) {

        try {
            emittingEntityId.unmarshal(dis);
            eventId.unmarshal(dis);
            relativeAntennaLocation.unmarshal(dis);
            systemId.unmarshal(dis);
            systemDesignator = (short) dis.readUnsignedByte();
            systemSpecificData = (short) dis.readUnsignedByte();
            fundamentalOperationalData.unmarshal(dis);
        } // end try 
        catch (Exception e) {
            System.out.println(e);
        }
    } // end of unmarshal method 

    public void marshal(java.nio.ByteBuffer buff) {
        emittingEntityId.marshal(buff);
        eventId.marshal(buff);
        relativeAntennaLocation.marshal(buff);
        systemId.marshal(buff);
        buff.put((byte) systemDesignator);
        buff.put((byte) systemSpecificData);
        fundamentalOperationalData.marshal(buff);
    } // end of marshal method

    public void unmarshal(java.nio.ByteBuffer buff) {
        emittingEntityId.unmarshal(buff);
        eventId.unmarshal(buff);
        relativeAntennaLocation.unmarshal(buff);
        systemId.unmarshal(buff);
        systemDesignator = (short) buff.get();
        systemSpecificData = (short) buff.get();
        fundamentalOperationalData.unmarshal(buff);
    } // end of unmarshal method    

    @Override
    public boolean equals(Object obj) {

        if (this == obj) {
            return true;
        }

        if (obj == null) {
            return false;
        }

        if (getClass() != obj.getClass()) {
            return false;
        }

        return equalsImpl(obj);
    }

    public boolean equalsImpl(Object obj) {
        boolean ivarsEqual = true;

        if (!(obj instanceof IFFLayer1)) {
            return false;
        }
        final IFFLayer1 rhs = (IFFLayer1) obj;

        if (!(emittingEntityId.equals(rhs.emittingEntityId))) {
            ivarsEqual = false;
        }
        if (!(eventId.equals(rhs.eventId))) {
            ivarsEqual = false;
        }
        if (!(relativeAntennaLocation.equals(rhs.relativeAntennaLocation))) {
            ivarsEqual = false;
        }
        if (!(systemId.equals(rhs.systemId))) {
            ivarsEqual = false;
        }
        if (!(systemDesignator == rhs.systemDesignator)) {
            ivarsEqual = false;
        }
        if (!(systemSpecificData == rhs.systemSpecificData)) {
            ivarsEqual = false;
        }

        if (!(fundamentalOperationalData.equals(rhs.fundamentalOperationalData))) {
            ivarsEqual = false;
        }

        return ivarsEqual;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy