/** * Instantiable types are primitives, {@line IsSerializable}, types with * custom serializers, and any arrays of those types. Merely * {@link Serializable} types cannot be instantiated or serialized directly * (only as super types of legacy serializable types). */ private boolean isInstantiable(Class<?> clazz) { if (clazz.isPrimitive()) { return true; } if (clazz.isArray()) { return isInstantiable(clazz.getComponentType()); } if (IsSerializable.class.isAssignableFrom(clazz)) { return true; } return SerializabilityUtil.hasCustomFieldSerializer(clazz) != null; } }
Class<?> customSerializer = hasCustomFieldSerializer(instanceType); if (customSerializer != null) { generateSerializationSignature(customSerializer, crc, policy);
private void serializeImpl(Object instance, Class<?> instanceClass) throws SerializationException { assert (instance != null); Class<?> customSerializer = SerializabilityUtil.hasCustomFieldSerializer(instanceClass); if (customSerializer != null) { // Use custom field serializer @SuppressWarnings("unchecked") CustomFieldSerializer<Object> customFieldSerializer = (CustomFieldSerializer<Object>) SerializabilityUtil.loadCustomFieldSerializer(customSerializer); if (customFieldSerializer == null) { serializeWithCustomSerializer(customSerializer, instance, instanceClass); } else { customFieldSerializer.serializeInstance(this, instance); } } else if (instanceClass.isArray()) { serializeArray(instanceClass, instance); } else if (instanceClass.isEnum()) { writeInt(((Enum<?>) instance).ordinal()); } else { // Regular class instance serializeClass(instance, instanceClass); } }
/** * Checks if the class is serializable (when the class extends from IsSerializable or Serializable, has a custom field serializer, * is a primitive or is an array which fulfills these conditions). * @param aClass class to check * @return true when the class is serializable */ private boolean isValid(Class<?> aClass) { if(aClass.isArray()) { return isValid(aClass.getComponentType()); } return aClass.isPrimitive() || Serializable.class.isAssignableFrom(aClass) || IsSerializable.class.isAssignableFrom(aClass) || SerializabilityUtil.hasCustomFieldSerializer(aClass) != null; } }
/** * Instantiable types are primitives, {@line IsSerializable}, types with * custom serializers, and any arrays of those types. Merely * {@link Serializable} types cannot be instantiated or serialized directly * (only as super types of legacy serializable types). */ private boolean isInstantiable(Class<?> clazz) { if (clazz.isPrimitive()) { return true; } if (clazz.isArray()) { return isInstantiable(clazz.getComponentType()); } if (IsSerializable.class.isAssignableFrom(clazz)) { return true; } return SerializabilityUtil.hasCustomFieldSerializer(clazz) != null; } }
/** * Instantiable types are primitives, {@line IsSerializable}, types with * custom serializers, and any arrays of those types. Merely * {@link Serializable} types cannot be instantiated or serialized directly * (only as super types of legacy serializable types). */ private boolean isInstantiable(Class<?> clazz) { if (clazz.isPrimitive()) { return true; } if (clazz.isArray()) { return isInstantiable(clazz.getComponentType()); } if (IsSerializable.class.isAssignableFrom(clazz)) { return true; } return SerializabilityUtil.hasCustomFieldSerializer(clazz) != null; } }
private boolean isInstantiable(Class<?> clazz) { if (clazz.isPrimitive()) { return true; } if (clazz.isEnum()) { return true; } if (Throwable.class.isAssignableFrom(clazz)) { return true; } if (clazz.isArray()) { return this.isInstantiable(clazz.getComponentType()); } if (IsSerializable.class.isAssignableFrom(clazz)) { return true; } if (Serializable.class.isAssignableFrom(clazz)) { return true; } return SerializabilityUtil.hasCustomFieldSerializer(clazz) != null; }
private boolean isInstantiable(Class<?> clazz) { if (clazz.isPrimitive()) { return true; } if (clazz.isEnum()) { return true; } if (Throwable.class.isAssignableFrom(clazz)) { return true; } if (clazz.isArray()) { return this.isInstantiable(clazz.getComponentType()); } if (IsSerializable.class.isAssignableFrom(clazz)) { return true; } if (Serializable.class.isAssignableFrom(clazz)) { return true; } return SerializabilityUtil.hasCustomFieldSerializer(clazz) != null; }
Class<?> customSerializer = hasCustomFieldSerializer(instanceType); if (customSerializer != null) { generateSerializationSignature(customSerializer, crc, policy);
Class<?> customSerializer = hasCustomFieldSerializer(instanceType); if (customSerializer != null) { generateSerializationSignature(customSerializer, crc, policy);
private void serializeImpl(Object instance, Class<?> instanceClass) throws SerializationException { assert (instance != null); Class<?> customSerializer = SerializabilityUtil.hasCustomFieldSerializer(instanceClass); if (customSerializer != null) { // Use custom field serializer @SuppressWarnings("unchecked") CustomFieldSerializer<Object> customFieldSerializer = (CustomFieldSerializer<Object>) SerializabilityUtil.loadCustomFieldSerializer(customSerializer); if (customFieldSerializer == null) { serializeWithCustomSerializer(customSerializer, instance, instanceClass); } else { customFieldSerializer.serializeInstance(this, instance); } } else if (instanceClass.isArray()) { serializeArray(instanceClass, instance); } else if (instanceClass.isEnum()) { writeInt(((Enum<?>) instance).ordinal()); } else { // Regular class instance serializeClass(instance, instanceClass); } }
private void serializeImpl(Object instance, Class<?> instanceClass) throws SerializationException { assert (instance != null); Class<?> customSerializer = SerializabilityUtil.hasCustomFieldSerializer(instanceClass); if (customSerializer != null) { // Use custom field serializer @SuppressWarnings("unchecked") CustomFieldSerializer<Object> customFieldSerializer = (CustomFieldSerializer<Object>) SerializabilityUtil.loadCustomFieldSerializer(customSerializer); if (customFieldSerializer == null) { serializeWithCustomSerializer(customSerializer, instance, instanceClass); } else { customFieldSerializer.serializeInstance(this, instance); } } else if (instanceClass.isArray()) { serializeArray(instanceClass, instance); } else if (instanceClass.isEnum()) { writeInt(((Enum<?>) instance).ordinal()); } else { // Regular class instance serializeClass(instance, instanceClass); } }