public short[] getValueAsShorts() throws IllegalArgumentException {
    	if (!isOptionAsShorts(code)) {
            throw new IllegalArgumentException("DHCP option type ("+ this.code +") is not short[]");
        }
        if (this.value == null) {
            throw new IllegalStateException("value is null");
        }
        if ((this.value.length % 2) != 0)		// multiple of 2
        {
            throw new DHCPBadPacketException("option " + this.code + " is wrong size:" + this.value.length + " should be 2*X");
        }
        
        short[] shorts = new short[this.value.length / 2];
        for (int i=0, a=0; a< this.value.length; i++, a+=2) {
            shorts[i] = (short) (((this.value[a] & 0xFF)<<8) | (this.value[a+1] & 0xFF));
        }
        return shorts;
    }