private static Object normalizeBasicTypes()

in plc4j/integrations/apache-nifi/nifi-plc4x-processors/src/main/java/org/apache/plc4x/nifi/util/Plc4xCommon.java [136:193]


	private static Object normalizeBasicTypes(final Object valueOriginal) {
		if (valueOriginal == null) 
			return null;
			
		if (valueOriginal instanceof PlcValue) {
			PlcValue value = (PlcValue) valueOriginal;
			// 8 bits
			if (value instanceof PlcBOOL && value.isBoolean())
				return value.getBoolean();
			if (value instanceof PlcBYTE && (value.isByte() || value.isShort()))
				return new byte[]{value.getByte()};
			if (value instanceof PlcCHAR && value.isShort())
				return value.getString();
			if ((value instanceof PlcSINT || value instanceof PlcUSINT) && (value.isShort() || value.isInteger()))
				return value.getShort();


			// 16 bits
			if (value instanceof PlcWORD && (value.isInteger() || value.isShort()))
				return value.getString();
			if (value instanceof PlcINT && value.isInteger())
				return value.getInteger();
			if (value instanceof PlcUINT && value.isInteger())
				return value.getInteger();
			if ((value instanceof PlcWCHAR || value instanceof PlcDWORD) && value.isInteger())
				return value.getString();

			// 32 bits
			if (value instanceof PlcREAL && value.isFloat())
				return value.getFloat();
			if ((value instanceof PlcDINT || value instanceof PlcUDINT) && value.isInteger())
				return value.getInteger();
			if (value instanceof PlcDWORD && value.isInteger())
				return value.getString();
			
			// 64 bits
			if ((value instanceof PlcLINT || value instanceof PlcULINT) && value.isLong())
				return value.getLong();
			if (value instanceof PlcLREAL && value.isDouble())
				return value.getDouble();
			if (value instanceof PlcLWORD && (value.isLong() || value.isBigInteger()))
				return value.getString();

			// Dates and time
			if (value instanceof PlcDATE && value.isDate())
				return value.getDate();
			if (value instanceof PlcDATE_AND_TIME && value.isDateTime())
				return value.getDateTime();
			if (value instanceof PlcTIME && value.isTime())
				return value.getTime();
			if (value instanceof PlcTIME_OF_DAY && value.isTime())
				return value.getTime();

			// Everything else to string
			return value.getString();
		} 
		return valueOriginal;
	}